-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprovisioning.yml
106 lines (82 loc) · 2.35 KB
/
provisioning.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
---
- hosts: all
become: yes
vars:
NODEJS_VERSION: "16"
ansible_distribution_release: "focal"
tasks:
# Installation Tasks
- name: 1. GPG key for NodeJS LTS
apt_key:
url: "https://deb.nodesource.com/gpgkey/nodesource.gpg.key"
state: present
- name: 2. Repos for NodesJS LTS
apt_repository:
repo: "deb https://deb.nodesource.com/node_{{ NODEJS_VERSION }}.x {{ ansible_distribution_release }} main"
state: present
update_cache: yes
- name: 3. Update and upgrade apt packages
apt:
upgrade: yes
update_cache: yes
cache_valid_time: 86400
- name: 4. Install NodeJS LTS
apt:
name: nodejs
state: present
- name: 5. Install GIT
apt:
name: git
state: present
update_cache: yes
- name: 6. Install PM2
npm:
name: pm2
global: yes
# Setting the environment variable
- name: 7. Set environment variable
lineinfile:
path: "/etc/environment"
state: present
regexp: "^REACT_APP_API_URL="
line: "REACT_APP_API_URL=http://demo-app-yhernandez.westus3.cloudapp.azure.com:3001"
# Demo-WebApp provisioning tasks
# Clone code from GitHub
- name: 8. Clone demo-webapp
git:
repo: https://github.com/Yonaetworks/demo-webapp
dest: /home/demoapp/demo-webapp
clone: yes
update: yes
force: yes
# Dependency installation for Demo-APP
- name: 9. Install dependencies Demo-WebApp
shell:
cmd: npm install
chdir: /home/demoapp/demo-webapp
# Run Demo-WebApp
- name: 10. Run Demo-WebApp
pm2:
name: demo-webapp
state: started
config: /home/demoapp/demo-webapp/src/ecosystem.config.js
# Demo-API provisioning tasks
# Clone code from GitHub
- name: 11. Clone a demo-api
git:
repo: https://github.com/Yonaetworks/demo-api
dest: /home/demoapp/demo-api
clone: yes
update: yes
force: yes
# Dependency installation for Demo-API
- name: 12. Install dependencies Demo-API
shell:
cmd: npm install
chdir: /home/demoapp/demo-api
- name: 13. Run Demo-API
pm2:
name: demo-api
state: started
config: /home/demoapp/demo-api/ecosystem.config.cjs
...