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: []