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

@@ -11,9 +11,9 @@
- name: Fail if any backup_to_usb variable is empty
assert:
that:
- backup_to_usb_mount != ""
- backup_to_usb_target != ""
- backup_to_usb_source != ""
- BACKUP_TO_USB_MOUNT != ""
- BACKUP_TO_USB_target != ""
- BACKUP_TO_USB_SOURCE != ""
fail_msg: |
One or more of the configuration variables are empty!
Please set:
@@ -22,19 +22,5 @@
- source
to nonempty values in your configuration file.
- name: Copy backup script to the scripts directory
copy:
src: svc-bkp-loc-2-usb.py
dest: "{{ backup_to_usb_script_path }}"
owner: root
group: root
mode: '0755'
- name: Copy systemd service to systemd directory
template:
src: svc-bkp-loc-2-usb.service.j2
dest: /etc/systemd/system/svc-bkp-loc-2-usb{{ SYS_SERVICE_SUFFIX }}
owner: root
group: root
mode: '0644'
notify: reload svc-bkp-loc-2-usb service
- include_role:
name: sys-systemctl

View File

@@ -1,12 +0,0 @@
[Unit]
Description=Backup to USB when mounted to {{ backup_to_usb_mount }}
Wants={{systemctl_mount_service_name}}
OnFailure=sys-ctl-alm-compose.{{ SOFTWARE_NAME }}@%n.service
[Service]
Type=oneshot
ExecStart=/bin/python {{ backup_to_usb_script_path }} {{backup_to_usb_source}} {{backup_to_usb_destination}}
ExecStartPost=/bin/systemctl start sys-ctl-cln-backups{{ SYS_SERVICE_SUFFIX }}
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,12 @@
[Unit]
Description=Backup to USB when mounted to {{ BACKUP_TO_USB_MOUNT }}
Wants={{ BACKUPS_SERVICE_MNT_NAME }}
OnFailure={{ SYS_SERVICE_ON_FAILURE_COMPOSE }}
[Service]
Type=oneshot
ExecStart=/bin/python {{ systemctl_id | get_service_script_path('py') }} {{ BACKUP_TO_USB_SOURCE }} {{ BACKUP_TO_USB_DESTINATION }}
ExecStartPost=/bin/systemctl start {{ SYS_SERVICE_CLEANUP_BACKUPS_OLD }}
[Install]
WantedBy=multi-user.target

View File

@@ -1,10 +1,9 @@
application_id: "svc-bkp-loc-2-usb"
systemctl_id: "{{ application_id }}"
backup_to_usb_script_path: "/usr/local/sbin/svc-bkp-loc-2-usb.py"
backup_to_usb_destination: '{{ backup_to_usb_mount}}{{ backup_to_usb_targed }}'
backups_folder_path: '{{ backup_to_usb_destination }}'
systemctl_mount_service_name: '{{ backup_to_usb_mount | trim(''/'') | replace(''/'',''-'') }}.mount'
BACKUP_TO_USB_DESTINATION: '{{ BACKUP_TO_USB_MOUNT}}{{ BACKUP_TO_USB_TARGET }}'
BACKUPS_SERVICE_MNT_NAME: '{{ BACKUP_TO_USB_MOUNT | trim(''/'') | replace(''/'',''-'') }}.mount'
backup_to_usb_mount: "{{ applications | get_app_conf(application_id, 'mount') }}"
backup_to_usb_targed: "{{ applications | get_app_conf(application_id, 'target') }}"
backup_to_usb_source: "{{ applications | get_app_conf(application_id, 'source') }}"
BACKUP_TO_USB_MOUNT: "{{ applications | get_app_conf(application_id, 'mount') }}"
BACKUP_TO_USB_TARGET: "{{ applications | get_app_conf(application_id, 'target') }}"
BACKUP_TO_USB_SOURCE: "{{ applications | get_app_conf(application_id, 'source') }}"