mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-29 15:06:26 +02:00
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:
@@ -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 non‑empty 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
|
||||
|
@@ -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
|
12
roles/svc-bkp-loc-2-usb/templates/systemctl.service.j2
Normal file
12
roles/svc-bkp-loc-2-usb/templates/systemctl.service.j2
Normal 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
|
@@ -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') }}"
|
Reference in New Issue
Block a user