From aeb8685d4861c6da1f5bd444c7a1ab4ba96a2f24 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Wed, 23 Aug 2023 18:35:25 +0200 Subject: systemd_depend_*: don't restart missing services --- roles/systemd_depend_iface/handlers/main.yml | 11 +++++++---- roles/systemd_depend_iface/handlers/service.yml | 6 ++++++ roles/systemd_depend_mount/handlers/main.yml | 11 +++++++---- roles/systemd_depend_mount/handlers/service.yml | 6 ++++++ 4 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 roles/systemd_depend_iface/handlers/service.yml create mode 100644 roles/systemd_depend_mount/handlers/service.yml diff --git a/roles/systemd_depend_iface/handlers/main.yml b/roles/systemd_depend_iface/handlers/main.yml index 2782200..813a651 100644 --- a/roles/systemd_depend_iface/handlers/main.yml +++ b/roles/systemd_depend_iface/handlers/main.yml @@ -4,10 +4,13 @@ daemon_reload: true listen: systemd_depend_iface_restart +- name: Collect installed services + ansible.builtin.service_facts: + listen: systemd_depend_iface_restart + - name: Restart systemd services - become: true - ansible.builtin.systemd_service: - name: '{{ item }}' - state: restarted + ansible.builtin.include_tasks: service.yml listen: systemd_depend_iface_restart loop: "{{ systemd_depend_iface_result.results | selectattr('changed', 'equalto', true) | map(attribute='service') | list }}" + loop_control: + loop_var: service diff --git a/roles/systemd_depend_iface/handlers/service.yml b/roles/systemd_depend_iface/handlers/service.yml new file mode 100644 index 0000000..10ead91 --- /dev/null +++ b/roles/systemd_depend_iface/handlers/service.yml @@ -0,0 +1,6 @@ +- name: 'Restart {{ service }}' + become: true + ansible.builtin.systemd_service: + name: '{{ service }}' + state: restarted + when: service in ansible_facts.services diff --git a/roles/systemd_depend_mount/handlers/main.yml b/roles/systemd_depend_mount/handlers/main.yml index 81bae32..207c203 100644 --- a/roles/systemd_depend_mount/handlers/main.yml +++ b/roles/systemd_depend_mount/handlers/main.yml @@ -4,10 +4,13 @@ daemon_reload: true listen: systemd_depend_mount_restart +- name: Collect installed services + ansible.builtin.service_facts: + listen: systemd_depend_mount_restart + - name: Restart systemd services - become: true - ansible.builtin.systemd_service: - name: '{{ item }}' - state: restarted + ansible.builtin.include_tasks: service.yml listen: systemd_depend_mount_restart loop: "{{ systemd_depend_mount_result.results | selectattr('changed', 'equalto', true) | map(attribute='service') | list }}" + loop_control: + loop_var: service diff --git a/roles/systemd_depend_mount/handlers/service.yml b/roles/systemd_depend_mount/handlers/service.yml new file mode 100644 index 0000000..10ead91 --- /dev/null +++ b/roles/systemd_depend_mount/handlers/service.yml @@ -0,0 +1,6 @@ +- name: 'Restart {{ service }}' + become: true + ansible.builtin.systemd_service: + name: '{{ service }}' + state: restarted + when: service in ansible_facts.services -- cgit v1.2.3