-
Notifications
You must be signed in to change notification settings - Fork 2
/
playbook.yml
116 lines (114 loc) · 3.37 KB
/
playbook.yml
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
- hosts: all
become: yes
remote_user: ubuntu
vars:
NODEJS_VERSION: '10'
tasks:
-
name: 'Updating packages'
apt: 'update_cache=yes'
-
name: 'Upgrading packages'
command: |
apt-get -y upgrade
-
name: 'Installing nginx'
apt: 'name=nginx update_cache=yes'
-
name: 'Starting nginx on boot'
service: 'name=nginx enabled=yes state=started'
-
name: 'Remove nginx default file'
file:
path: /etc/nginx/sites-enabled/default
state: absent
-
name: 'Add custom nginx file'
file:
path: /etc/nginx/sites-available/customconfig
state: touch
-
name: 'create an nginx reverse proxy'
command: |
bash -c 'cat > /etc/nginx/sites-available/customconfig <<EOF
server {
listen 80;
location / {
proxy_pass http://localhost:3000;
}}
EOF'
-
name: 'create a symlink for custom config in sites-enabled'
file:
src: /etc/nginx/sites-available/customconfig
dest: /etc/nginx/sites-enabled/customconfig
state: link
-
name: 'start the nginx service'
shell: |
sudo systemctl start nginx
-
name: 'Add Nodejs''s official GPG Key...'
apt_key:
url: 'https://deb.nodesource.com/gpgkey/nodesource.gpg.key'
state: present
-
name: 'Add Nodejs 10.x Source repository...'
apt_repository:
repo: 'deb https://deb.nodesource.com/node_10.x bionic main'
state: present
update_cache: yes
-
name: 'install nodejs...'
apt:
name: nodejs
state: present
-
name: 'clone app repo from github...'
git:
repo: 'https://github.com/mariamiah/Store-Manager-React.git'
dest: '/home/ubuntu/Store-Manager-React'
clone: yes
- name: 'install application dependencies...'
shell:
cmd: |
cd /home/ubuntu/Store-Manager-React
sudo npm install
-
name: 'set environment variable in .env'
shell:
cmd: |
cd /home/ubuntu/Store-Manager-React
sudo touch .env
echo "BASE_URL='https://storemanager15.herokuapp.com'" > .env
-
name: 'Run the build'
shell:
cmd: |
cd /home/ubuntu/Store-Manager-React
sudo npm run build
-
name: 'Add systemd service file'
file:
path: /etc/systemd/system/store.service
state: touch
-
name: 'Edit systemd file'
blockinfile:
dest: /etc/systemd/system/store.service
block: |
[Unit]
Description=StoreService
[Service]
ExecStart=/usr/bin/node /home/ubuntu/Store-Manager-React/server.js
User=ubuntu
Restart=on-failure
[Install]
WantedBy=multi-user.target
-
name: 'Enable systemd service on start'
shell:
cmd: |
sudo systemctl daemon-reload
sudo systemctl start /etc/systemd/system/store.service
sudo systemctl enable /etc/systemd/system/store.service