Konfiguriere Minion Job Queue
This commit is contained in:
parent
400b61b934
commit
2c02f0d5cb
5 changed files with 59 additions and 6 deletions
|
@ -13,3 +13,8 @@ lstu:
|
|||
path: /var/www/lstu
|
||||
contact: 'admin[at]systemausfall.org'
|
||||
|
||||
minion_service: lstu-minion
|
||||
minion_workers: 1
|
||||
minion_db: lstu-minion
|
||||
minion_db_user: lstu-minion
|
||||
minion_db_password: "{{ lookup('password', '/tmp/lstu_minion_db_pw length=42 chars=ascii_letters,digits') }}"
|
||||
|
|
|
@ -1,18 +1,28 @@
|
|||
---
|
||||
- name: "database | Erstelle Datenbank"
|
||||
ansible.builtin.mysql_db:
|
||||
name: "{{ lstu_db }}"
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
login_unix_socket: "{{ mysql_socket }}"
|
||||
login_user: root
|
||||
loop:
|
||||
- "{{ lstu_db }}"
|
||||
- "{{ minion_db }}"
|
||||
|
||||
- name: "database | Erstelle Benuzter"
|
||||
ansible.builtin.mysql_user:
|
||||
name: "{{ lstu_db_user }}"
|
||||
password: "{{ lstu_db_password }}"
|
||||
name: "{{ item.user }}"
|
||||
password: "{{ item.password }}"
|
||||
host: "{{ inventory_hostname }}"
|
||||
priv: "{{ lstu_db }}.*:ALL"
|
||||
priv: "{{ item.database }}.*:ALL"
|
||||
update_password: on_create
|
||||
state: present
|
||||
login_unix_socket: "{{ mysql_socket }}"
|
||||
login_user: root
|
||||
loop:
|
||||
- user: "{{ lstu_db_user }}"
|
||||
password: "{{ lstu_db_password }}"
|
||||
database: "{{ lstu_db }}"
|
||||
- user: "{{ minion_db_user }}"
|
||||
password: "{{ minion_db_password }}"
|
||||
database: "{{ minion_db }}"
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
path: "{{ lstu.path }}"
|
||||
state: directory
|
||||
owner: "{{ lstu_user }}"
|
||||
group: "{{ lstu_user }}"
|
||||
group: "{{ lstu_user }}"
|
||||
mode: 0755
|
||||
recurse: true
|
||||
|
||||
|
@ -44,7 +44,6 @@
|
|||
group: "{{ lstu_user }}"
|
||||
recurse: true
|
||||
|
||||
|
||||
- name: "lstu | edit config"
|
||||
ansible.builtin.lineinfile:
|
||||
path="{{ lstu.path }}/lstu.conf"
|
||||
|
@ -87,6 +86,20 @@
|
|||
mode: 0644
|
||||
notify: restart lstu
|
||||
|
||||
- name: "lstu | Kopiere systemd-Unit für minion-Worker"
|
||||
ansible.builtin.template:
|
||||
src: lstu-minion.service
|
||||
dest: "/etc/systemd/system/{{ minion_service }}@.service"
|
||||
mode: 0644
|
||||
|
||||
- name: lstu | Starte minion-Worker
|
||||
ansible.builtin.systemd:
|
||||
name: "{{ minion_service }}@{{ item }}"
|
||||
enabled: true
|
||||
state: restarted
|
||||
daemon_reload: true
|
||||
loop: "{{ range(0, minion_workers ) | list }}"
|
||||
|
||||
- name: "lstu | Prüfe Theme-Verzeichnis"
|
||||
ansible.builtin.stat:
|
||||
path: "{{ lstu.path }}/themes/{{ lstu_theme }}"
|
||||
|
|
21
templates/lstu-minion.service
Normal file
21
templates/lstu-minion.service
Normal file
|
@ -0,0 +1,21 @@
|
|||
[Unit]
|
||||
Description=Shortened URLs service job queue
|
||||
Documentation=https://framagit.org/fiat-tux/hat-softwares/lstu
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User={{ lstu_user }}
|
||||
WorkingDirectory={{ lstu.path }}
|
||||
ExecStart=/usr/bin/carton exec script/application minion worker
|
||||
|
||||
# Hardening
|
||||
CapabilityBoundingSet=
|
||||
PrivateMounts=true
|
||||
PrivateTmp=true
|
||||
ProtectControlGroups=true
|
||||
ProtectHome=true
|
||||
ProtectSystem=strict
|
||||
ReadWritePaths=-{{ lstu.path }}
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -2,3 +2,7 @@ check process lstu with pidfile {{ lstu.path }}/script/hypnotoad.pid
|
|||
start program = "/bin/systemctl start {{ lstu_service }}"
|
||||
stop program = "/bin/systemctl stop {{ lstu_service }}"
|
||||
if failed host {{ ansible_default_ipv4.address }} port 8080 with timeout 15 seconds for 3 times within 4 cycles then restart
|
||||
|
||||
check process lstu-minion matching "perl script/application minion worker"
|
||||
start program = "/bin/systemctl start {{ minion_service }}"
|
||||
stop program = "/bin/systemctl stop {{ minion_service }}"
|
||||
|
|
Loading…
Reference in a new issue