-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.sh
executable file
·185 lines (134 loc) · 5.02 KB
/
setup.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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#!/usr/bin/env bash
sudo echo
ENV=$1
configure_virtualenv(){
if [ ! -d "$HOME/.virtualenv" ]; then
mkdir -p $HOME/.virtualenv
fi
virtualenv $HOME/.virtualenv/Nomad
}
configure_nginx(){
sudo systemctl stop nginx 2>/dev/null
sudo killall -9 nginx 2>/dev/null
sudo rm -f /etc/nginx/sites-enabled/default
sudo rm -f /etc/nginx/sites-available/default
sudo rm -f /etc/nginx/sites-enabled/nomad
sudo rm -f /etc/nginx/sites-available/nomad
sudo cp ./server_setup/etc/nginx/sites-available/nomad /etc/nginx/sites-available/nomad
sudo ln -sfnv /etc/nginx/sites-available/nomad /etc/nginx/sites-enabled/nomad
sudo sed -i -e "s/<USER>/$USER/g" /etc/nginx/sites-available/nomad
}
configure_mongodb(){
sudo killall mongod 2>/dev/null
sudo rm -f /etc/mongod.conf
sudo addgroup --quiet mongod 2>/dev/null
sudo adduser --quiet --system --no-create-home --ingroup redis --disabled-login --disabled-password mongod
sudo rm -f /etc/systemd/system/mongod.service
sudo rm -f /lib/systemd/system/mongod.service
case "$ENV" in
dev)
sudo cp ./config/mongodb_dev.conf /etc/mongod.conf
;;
prod)
sudo cp ./config/mongodb_prod.conf /etc/mongod.conf
;;
esac
sudo cp ./server_setup/etc/systemd/system/mongod.service /etc/systemd/system/mongod.service
}
configure_redis(){
sudo killall redis 2>/dev/null
sudo killall redis-server 2>/dev/null
sudo rm -f /etc/redis/redis.conf
sudo rm -f /etc/redis/redis-server.conf
sudo rm -f /etc/init.d/redis-server
sudo rm -f /etc/systemd/system/redis-server.service
sudo rm -f /lib/systemd/system/redis-server.service
sudo mkdir -p /etc/redis/
sudo mkdir -p /var/log/redis/
sudo mkdir -p /var/run/redis/
sudo addgroup --quiet redis 2>/dev/null
sudo adduser --quiet --system --no-create-home --ingroup redis --disabled-login --disabled-password redis
sudo chown -R redis:redis /var/log/redis/
sudo chown -R redis:redis /etc/redis/
sudo chown -R redis:redis /var/run/redis/
case "$ENV" in
dev)
sudo cp ./config/redis_dev.conf /etc/redis/redis.conf
;;
prod)
sudo cp ./config/redis_prod.conf /etc/redis/redis.conf
;;
esac
sudo cp ./server_setup/etc/systemd/system/redis-server.service /etc/systemd/system/redis-server.service
}
configure_uwsgi(){
sudo systemctl stop nomad 2>/dev/null
sudo killall -9 uwsgi 2>/dev/null
sudo rm -f /tmp/uwsgi.ini
sudo rm -f /tmp/nomad.sock
sudo rm -f /tmp/nomad.pid
sudo rm -f /etc/systemd/system/nomad.service
sudo mkdir -p /var/log/uwsgi/
sudo touch /var/log/uwsgi/uwsgi.log
sudo cp ./config/uwsgi.ini /tmp/uwsgi.ini
sudo sed -i -e "s/<USER>/$USER/g" /tmp/uwsgi.ini
sudo chown -R www-data:www-data /tmp/uwsgi.ini
sudo chown -R www-data:www-data /var/log/uwsgi/
sudo setfacl -m u:www-data:rwx ~/Nomad/logs/
sudo cp ./server_setup/etc/systemd/system/nomad.service /etc/systemd/system/nomad.service
sudo sed -i -e "s/<USER>/$USER/g" /etc/systemd/system/nomad.service
case "$ENV" in
prod)
sudo sed -i -e '$a\' /tmp/uwsgi.ini
sudo /bin/bash -c "echo 'env=ENV=prod' >> /tmp/uwsgi.ini"
;;
esac
}
configure_elasticsearch(){
sudo systemctl stop elasticsearch 2>/dev/null
sudo killall elasticsearch 2>/dev/null
sudo rm -f /etc/elasticsearch/elasticsearch.yml
sudo rm -f /etc/default/elasticsearch
sudo addgroup --quiet elasticsearch 2>/dev/null
sudo adduser --quiet --system --no-create-home --ingroup elasticsearch --disabled-login --disabled-password elasticsearch
sudo mkdir -p /var/log/elasticsearch/
sudo mkdir -p /etc/elasticsearch/
sudo chown -R elasticsearch:elasticsearch /var/log/elasticsearch/
sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch/
sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/
sudo chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/
sudo cp ./config/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
sudo cp ./config/elasticsearch /etc/default/elasticsearch
}
echo "Installing Python dependencies"
pip install virtualenv
echo "Configuring Virtualenv"
configure_virtualenv
source ~/.virtualenv/Nomad/bin/activate && pip install -r requirements.txt
echo "Configuring Nginx"
configure_nginx
echo "Configuring MongoDB"
configure_mongodb
echo "Configuring Redis"
configure_redis
echo "Configuring uWSGI"
configure_uwsgi
echo "Configuring ElasticSearch"
configure_elasticsearch
sudo systemctl daemon-reload
echo "Starting MongoDB"
sudo systemctl start mongod
echo "Starting Redis"
sudo systemctl start redis-server
echo "Installing NPM dependencies"
npm install
echo "Installing Bower dependencies"
./node_modules/bower/bin/bower install
echo "Starting ElasticSearch"
sudo systemctl start elasticsearch
echo "Starting Virtualenv"
source $HOME/.virtualenv/Nomad/bin/activate
echo "Starting Nomad"
sudo systemctl start nomad
echo "Starting Nginx"
sudo systemctl start nginx