From c480e39e39d726be4d316365864a801ab5f81227 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Fri, 14 Mar 2025 13:10:20 +0100 Subject: [PATCH] Optimized .mds and meta/main.yml for systemd-timer --- roles/systemd-timer/README.md | 23 +++++++++++++++++++++++ roles/systemd-timer/meta/main.yml | 25 +++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 roles/systemd-timer/README.md create mode 100644 roles/systemd-timer/meta/main.yml diff --git a/roles/systemd-timer/README.md b/roles/systemd-timer/README.md new file mode 100644 index 00000000..1d980a2d --- /dev/null +++ b/roles/systemd-timer/README.md @@ -0,0 +1,23 @@ +# Systemd Timer + +## Description + +This role configures a systemd timer to periodically start a corresponding service. It uses a Jinja2 template to create a timer unit file that specifies the scheduling parameters (such as OnCalendar and RandomizedDelaySec) and then restarts the timer service accordingly. + +## 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). +- 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`. + +## Purpose + +The primary purpose of this role is to provide a reusable mechanism for scheduling recurring tasks on a system. By creating and managing a systemd timer unit, the role ensures that specified services are automatically started at defined intervals, enhancing system automation and reliability. + +## Features + +- **Dynamic Timer Configuration:** Uses a Jinja2 template to create a timer unit file based on provided variables. +- **Automated Service Management:** Automatically reloads the systemd daemon and restarts the timer when changes are detected. +- **Flexible Scheduling:** Supports configuration of parameters such as OnCalendar and RandomizedDelaySec for precise control over task timing. +- **Persistent Timers:** Optionally enables persistent timer behavior to ensure missed activations are handled. diff --git a/roles/systemd-timer/meta/main.yml b/roles/systemd-timer/meta/main.yml new file mode 100644 index 00000000..c3dd5a5d --- /dev/null +++ b/roles/systemd-timer/meta/main.yml @@ -0,0 +1,25 @@ +--- +galaxy_info: + author: "Kevin Veen-Birkenbach" + description: "Configures a systemd timer to periodically start a specified service. This role automates the creation, reloading, and restarting of systemd timer units for recurring tasks." + license: "CyMaIS NonCommercial License (CNCL)" + license_url: "https://s.veen.world/cncl" + company: | + Kevin Veen-Birkenbach + Consulting & Coaching Solutions + https://www.veen.world + min_ansible_version: "2.9" + platforms: + - name: Linux + versions: + - all + galaxy_tags: + - systemd + - timer + - automation + - scheduling + - configuration + repository: "https://s.veen.world/cymais" + issue_tracker_url: "https://s.veen.world/cymaisissues" + documentation: "https://s.veen.world/cymais" +dependencies: []