This repository has been archived by the owner on Feb 24, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstart_backend.yml
63 lines (63 loc) · 2.2 KB
/
start_backend.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
- name: Start backend
hosts: backend_webservers
vars_files:
- vars/webserver.yml
vars:
project_path: /var/www/nkcyberweb
roles:
- geerlingguy.nodejs
- geerlingguy.git
- geerlingguy.firewall
tasks:
- name: Install pm2
command: npm install pm2 -g
- name: Set some variable
set_fact:
release_path: "{{ project_path }}/releases/{{ lookup('pipe','date +%Y%m%d%H%M%S') }}"
current_path: "{{ project_path }}/current"
- name: Retrieve current release folder
command: readlink -f current
register: current_release_path
ignore_errors: yes
args:
chdir: "{{ project_path }}"
- name: Create new folder
file:
dest={{ release_path }}
mode=0755
recurse=yes
state=directory
- name: Clone the repository
git:
repo: git@github.com:JArlinghaus/NKCyber-Website.git
dest: "{{ release_path }}"
key_file: ~/deploykey
accept_hostkey: true
- name: Install npm dependencies
npm:
path={{ release_path }}/server
- name: Update symlink
file:
src={{ release_path }}
dest={{ current_path }}
state=link
- name: Generate self-signed HTTPS cert
shell: openssl req -x509 -newkey rsa:4096 -days 365 -nodes -batch -keyout {{ release_path }}/server/server.key -out {{ release_path }}/server/server.cert
when: HTTPS
- name: Obtain LDAPS cert from LDAP server
shell: openssl s_client -showcerts -connect {{ LDAP_BIND_IP }}:{{ LDAP_BIND_PORT }} </dev/null 2>/dev/null|openssl x509 -outform PEM > {{ release_path }}/server/DC.pem
when: LDAPS
- name: Create pm2 configuration file
template:
src: ./backendtemplate.js
dest: "{{ current_path }}/server/nkcyber.config.js"
- name: Delete old pm2 process
command: pm2 delete nkcyber-backend
ignore_errors: yes
- name: Start pm2
shell: |
cd {{ current_path }}/server
pm2 start nkcyber.config.js --env production
- name: Delete old dir
shell: rm -rf {{ current_release_path.stdout }}/
when: current_release_path.stdout != current_path