Refactor systemctl services and timers

- Unified service templates into generic systemctl templates
- Introduced reusable filter plugins for script path handling
- Updated path variables and service/timer definitions
- Migrated roles (backup, cleanup, repair, etc.) to use systemctl role
- Added sys-daemon role for core systemd cleanup
- Simplified timer handling via sys-timer role

Note: This is a large refactor and some errors may still exist. Further testing and adjustments will be needed.
This commit is contained in:
2025-08-18 21:22:16 +02:00
parent 3a839cfe37
commit 2569abc0be
219 changed files with 618 additions and 1104 deletions

View File

@@ -1,5 +0,0 @@
- name: restart sys-ctl-rpr-docker-soft service
systemd:
name: sys-ctl-rpr-docker-soft{{ SYS_SERVICE_SUFFIX }}
state: restarted
daemon_reload: yes

View File

@@ -3,30 +3,8 @@
name: sys-lock
when: run_once_sys_lock is not defined
- name: "create {{heal_docker}}"
file:
path: "{{heal_docker}}"
state: directory
mode: "0755"
- name: create sys-ctl-rpr-docker-soft.py
template:
src: sys-ctl-rpr-docker-soft.py.j2
dest: "{{heal_docker}}sys-ctl-rpr-docker-soft.py"
notify: restart sys-ctl-rpr-docker-soft service
- name: create sys-ctl-rpr-docker-soft{{ SYS_SERVICE_SUFFIX }}
template:
src: sys-ctl-rpr-docker-soft.service.j2
dest: /etc/systemd/system/sys-ctl-rpr-docker-soft{{ SYS_SERVICE_SUFFIX }}
notify: restart sys-ctl-rpr-docker-soft service
- name: "set 'service_name' to '{{ role_name }}'"
set_fact:
service_name: "{{ role_name }}"
- name: "include role for sys-timer for {{ service_name }}"
include_role:
name: sys-timer
- include_role:
name: sys-systemctl
vars:
on_calendar: "{{SYS_SCHEDULE_REPAIR_DOCKER_SOFT}}"
systemctl_on_calendar: "{{SYS_SCHEDULE_REPAIR_DOCKER_SOFT}}"
systemctl_timer_enabled: true

View File

@@ -39,10 +39,11 @@ def main(base_directory):
blocker_running = True
while blocker_running:
try:
bash("systemctl is-active --quiet sys-ctl-bkp-docker-2-loc{{ SYS_SERVICE_SUFFIX }}")
bash("systemctl is-active --quiet update-docker{{ SYS_SERVICE_SUFFIX }}")
print("Backup is running.")
try:
{% for manipulation_service in SYS_SERVICE_GROUP_MANIPULATION %}
bash("systemctl is-active --quiet {{ manipulation_service }}")
{% endfor %}
print("Manipulation service is running.")
print(f"Trying again in {waiting_time} seconds.")
time.sleep(waiting_time)
except:

View File

@@ -1,8 +0,0 @@
[Unit]
Description=restart unhealthy docker containers
OnFailure=sys-ctl-alm-compose.{{ SOFTWARE_NAME }}@%n.service
[Service]
Type=oneshot
ExecStartPre=/bin/sh -c '/usr/bin/python {{ PATH_SYSTEM_LOCK_SCRIPT }} {{ SYS_SERVICE_GROUP_MANIPULATION | join(' ') }} --ignore {{SYS_SERVICE_GROUP_CLEANUP| join(' ') }} sys-ctl-rpr-docker-soft --timeout "{{SYS_TIMEOUT_HEAL_DOCKER}}"'
ExecStart=/bin/sh -c '/bin/python {{heal_docker}}sys-ctl-rpr-docker-soft.py {{ PATH_DOCKER_COMPOSE_INSTANCES }}'

View File

@@ -0,0 +1,8 @@
[Unit]
Description=restart unhealthy docker containers
OnFailure={{ SYS_SERVICE_ON_FAILURE_COMPOSE }}
[Service]
Type=oneshot
ExecStartPre=/bin/sh -c '/usr/bin/python {{ PATH_SYSTEM_LOCK_SCRIPT }} {{ SYS_SERVICE_GROUP_MANIPULATION | join(' ') }} --ignore {{ SYS_SERVICE_GROUP_CLEANUP| join(' ') }} sys-ctl-rpr-docker-soft --timeout "{{ SYS_TIMEOUT_HEAL_DOCKER }}"'
ExecStart=/bin/sh -c '/bin/python {{ systemctl_id | get_service_script_path('py') }} {{ PATH_DOCKER_COMPOSE_INSTANCES }}'

View File

@@ -1,2 +1 @@
heal_docker: '{{ PATH_ADMINISTRATOR_SCRIPTS }}sys-ctl-rpr-docker-soft/'
systemctl_id: sys-ctl-rpr-docker-soft