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

@@ -7,9 +7,9 @@ This role configures a systemd timer to periodically start a corresponding servi
## Overview
Optimized for automated task scheduling in a [systemd](https://en.wikipedia.org/wiki/Systemd) environment, this role:
- Generates a timer unit file for a given service (using the `service_name` variable).
- Generates a timer unit file for a given service (using the `systemctl_timer_service` variable).
- Reloads and restarts the timer using systemd to ensure that changes take effect.
- Supports dynamic configuration of scheduling parameters via variables like `on_calendar` and `RANDOMIZED_DELAY_SEC`.
- Supports dynamic configuration of scheduling parameters via variables like `systemctl_on_calendar` and `RANDOMIZED_DELAY_SEC`.
## Purpose

View File

@@ -1,15 +1,9 @@
- block:
- name: "Include sys-systemctl"
include_role:
name: sys-systemctl
when: run_once_sys_systemctl is not defined
- include_tasks: utils/run_once.yml
when: run_once_sys_timer is not defined
# run_once_sys_timer: deactivated
- name: create {{ sys_timer_file }}
template:
src: dummy.timer.j2
dest: "/etc/systemd/system/{{ sys_timer_file }}"
dest: "{{ [ PATH_SYSTEM_SERVICE_DIR, sys_timer_file ] | path_join }}"
register: dummy_timer
- name: "restart timer"
@@ -21,4 +15,3 @@
when: dummy_timer.changed or ACTIVATE_ALL_TIMERS | bool
async: "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}"
poll: "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}"

View File

@@ -1,8 +1,8 @@
[Unit]
Description=Timer to start {{ service_name }}{{ SYS_SERVICE_SUFFIX }}
Description=Timer to start {{ systemctl_timer_service }}{{ SYS_SERVICE_SUFFIX }}
[Timer]
OnCalendar={{ on_calendar }}
OnCalendar={{ systemctl_on_calendar }}
RandomizedDelaySec={{ RANDOMIZED_DELAY_SEC }}
Persistent={{ persistent | default('false') }}

View File

@@ -1 +1 @@
sys_timer_file: "{{ service_name }}{{ SYS_TIMER_SUFFIX }}"
sys_timer_file: "{{ systemctl_timer_service }}{{ SYS_TIMER_SUFFIX }}"