Added role node/server

wip
Felix Stupp 5 years ago
parent a74f532394
commit 0dab3bdad2
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -0,0 +1,19 @@
---
# domain: "example.com"
service_name: "{{ domain }}.service"
# TODO Socket
# app_port
# repo
# system_user: "nodejs"
user_directory: "{{ global_webservers_directory }}/{{ domain }}"
src: "{{ user_directory }}/server"
database_user: "{{ system_user | regex_replace('[^a-zA-Z]', '_') }}"
# database_pass from mysql/database
# database_name from mysql/database
install_command: "sudo -u {{ system_user | quote }} sh -c 'npm i && npm audit fix'"
reload_command: "{{ install_command }} && systemctl restart {{ service_name | quote }}"

@ -0,0 +1,8 @@
---
- name: restart {{ domain }}
systemd:
daemon_reload: yes
enabled: yes
name: "{{ service_name }}"
state: restarted

@ -0,0 +1,20 @@
---
allow_duplicates: yes
dependencies:
- role: node/application
- role: misc/system_user
# system_user
# user_directory
- role: mysql/database
# database_user
- role: git_auto_update
# repo
dest: "{{ src }}"
owner: "{{ system_user }}"
repo_name: "{{ domain }}"
# reload_command
- role: nginx/proxy
# domain
backend_port: "{{ app_port }}"

@ -0,0 +1,14 @@
---
- name: Run install command
shell: "{{ install_command }}"
args:
chdir: "{{ src }}"
creates: "{{ src }}/node_modules"
executable: /bin/sh
- name: Register service for node server
template:
src: node.service
dest: "/etc/systemd/system/{{ service_name }}"
notify: "restart {{ domain }}"

@ -0,0 +1,33 @@
[Unit]
Description=node.js on {{ domain }}
After=syslog.target
After=network.target
Requires=mariadb.service
[Service]
Type=simple
User={{ system_user }}
Group={{ system_user }}
WorkingDirectory={{ src }}
ExecStart=/usr/bin/npm start
Environment="USER={{ system_user }}"
Environment="HOME={{ user_directory }}"
Environment="NODE_ENV=production"
Environment="PORT={{ app_port }}"
Environment="DOMAIN={{ domain }}"
Environment="DATABASE_HOST=127.0.0.1"
Environment="DATABASE_PORT=3306"
Environment="DATABASE_USERNAME={{ database_user }}"
Environment="DATABASE_PASSWORD={{ database_pass }}"
Environment="DATABASE_NAME={{ database_name }}"
TimeoutStartSec=2s
TimeoutStopSec=10s
Restart=always
RestartSec=2s
StartLimitInterval=60s
StartLimitBurst=5
[Install]
WantedBy=multi-user.target
Loading…
Cancel
Save