From 68a40fef1b2c87d3f612a9b8b5fd1406650842f9 Mon Sep 17 00:00:00 2001 From: uumas Date: Wed, 11 Mar 2026 22:15:34 +0200 Subject: [PATCH] Add systemd role for restarting multiple services in same transaction --- roles/systemd/README.md | 9 +++++++++ roles/systemd/defaults/main.yaml | 2 ++ roles/systemd/handlers/main.yaml | 14 ++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 roles/systemd/README.md create mode 100644 roles/systemd/defaults/main.yaml create mode 100644 roles/systemd/handlers/main.yaml diff --git a/roles/systemd/README.md b/roles/systemd/README.md new file mode 100644 index 0000000..c6a933b --- /dev/null +++ b/roles/systemd/README.md @@ -0,0 +1,9 @@ +Adds systemd-related notifiable handlers + +- Reload systemd daemon + - Reloads all systemd unit files +- Apply systemd unit restarts + - Restarts multiple systemd units in a single transaction + - Units to be restarted are defined in the `systemd_restart_units` variable of type list + - The variable should be set using `ansible.builtin.set_fact` + - The list must not be overridden, but appended (`systemd_restart_units: "{{ systemd_restart_units + ['restartme.service'] }}"` diff --git a/roles/systemd/defaults/main.yaml b/roles/systemd/defaults/main.yaml new file mode 100644 index 0000000..8e6e62a --- /dev/null +++ b/roles/systemd/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +systemd_restart_units: [] diff --git a/roles/systemd/handlers/main.yaml b/roles/systemd/handlers/main.yaml new file mode 100644 index 0000000..de1ff34 --- /dev/null +++ b/roles/systemd/handlers/main.yaml @@ -0,0 +1,14 @@ +--- +- name: Reload systemd daemon + ansible.builtin.systemd_service: + daemon_reload: true + +- name: Apply systemd unit restarts # noqa: command-instead-of-module + ansible.builtin.command: + cmd: systemctl restart {{ systemd_restart_units | join(' ') }} + changed_when: true + +- name: Reset systemd restart units + listen: Apply systemd units restart + ansible.builtin.set_fact: + systemd_restart_units: []