-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathautostart.sh
executable file
·154 lines (134 loc) · 4.06 KB
/
autostart.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/bin/bash
mkdir backup &> /dev/null
cp main.tf backup/main.tf
cp run_later.sh backup/run_later.sh
cp server.conf backup/server.conf
if ! command -v terraform &> /dev/null
then
echo "Terraform could not be found"
echo "visit this url (https://learn.hashicorp.com/tutorials/terraform/install-cli) to install terraform-cli"
echo "Run this script once terraform is installed"
exit
fi
read -p "Do you have a terraform cloud remote backend? [y|N]: " hasTfCloud
echo
if [ "$hasTfCloud" == "y" ]; then
echo "Make sure to set the following env variables on terraform cloud
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- TF_VAR_GITHUB_TOKEN
- TF_VAR_FAUNA_DB_KEY
- TF_VAR_SSH_PUB_KEY
- TF_VAR_EMAIL_PASS
- TF_VAR_API_URL"
else
read -p "Do you want to run terraform locally? [y|N]: " runLocally
echo
if [ "$runLocally" == "y" ]; then
sed -i '9,16d' main.tf
if test -z "$AWS_ACCESS_KEY_ID"
then
read -p "AWS_ACCESS_KEY_ID: " AWS_ACCESS_KEY_ID
echo
export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
else
echo "AWS_ACCESS_KEY_ID is already set"
fi
if test -z "$AWS_SECRET_ACCESS_KEY"
then
read -s -p "AWS_SECRET_ACCESS_KEY: " AWS_SECRET_ACCESS_KEY
echo
export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
else
echo "AWS_SECRET_ACCESS_KEY is already set"
fi
if test -z "$GITHUB_TOKEN"
then
read -s -p "GITHUB_TOKEN: " GITHUB_TOKEN
echo
export GITHUB_TOKEN=$GITHUB_TOKEN
else
echo "GITHUB_TOKEN is already set"
fi
if test -z "$FAUNA_DB_KEY"
then
read -s -p "FAUNA_DB_KEY: " FAUNA_DB_KEY
echo
export FAUNA_DB_KEY=$FAUNA_DB_KEY
else
echo "FAUNA_DB_KEY is already set"
fi
if test -z "$EMAIL_PASS"
then
read -s -p "EMAIL_PASS: " EMAIL_PASS
echo
export EMAIL_PASS=$EMAIL_PASS
else
echo "EMAIL_PASS is already set"
fi
if test -z "$SSH_PUB_KEY"
then
read -p "SSH_PUB_KEY: " SSH_PUB_KEY
echo
export SSH_PUB_KEY=$SSH_PUB_KEY
else
echo "SSH_PUB_KEY is already set"
fi
if test -z "$API_URL"
then
read -p "API_URL: " API_URL
echo
export API_URL=$API_URL
else
echo "API_URL is already set"
fi
else
mv backup/main.tf.bak main.tf
mv backup/run_later.sh.bak run_later.sh
mv backup/server.conf.bak server.conf
rm -r backup
echo "Exiting!!!"
exit
fi
fi
read -p "Do you have an Elastic IP? [y|N]: " hasEip
echo
if [ " $hasEip" == "y" ]; then
read -p "Enter Elastic IP Allocation ID: " eipAllocId
echo
sed -i "s/\"eipalloc-085afc5d8993450ac\"/$eipAllocId/g" main.tf
else
sed -i "s/\"eipalloc-085afc5d8993450ac\"/aws_eip.eip.allocation_id/g" main.tf
echo "
resource \"aws_eip\" \"eip\" {
vpc = true
instance = aws_instance.webserver.id
}
output \"eip_dns\" {
value = aws_eip.eip.public_dns
}" >> main.tf
fi
echo "Enter your domain urls for ssl certificate generation"
read -p "API url: " apiUrl
echo
read -p "WEBSITE url: " appUrl
echo
sed -i "s/api.givemyresume.tech/$apiUrl/g" run_later.sh server.conf
sed -i "s/app.givemyresume.tech/$appUrl/g" run_later.sh server.conf
echo "Enter your email id for ssl certificate generation"
read -p "Email: " emailId
echo
sed -i "s/api.givemyresume.tech/$apiUrl/g" run_later.sh
terraform init
echo "All settings have been applied"
if [ "$hasTfCloud" == "y" ]; then
echo "Run `terraform login` and then run `terraform apply`"
else
echo "Run `terraform apply`"
echo "Once everything completes, visit $appUrl
Also, to revert to the default configuratons, run the below commands
mv backup/main.tf main.tf
mv backup/run_later.sh run_later.sh
mv backup/server.conf server.conf
rm -r backup
"