diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2023-08-23 18:06:40 +0200 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2023-08-23 18:11:44 +0200 |
commit | 622921151674a71fda88b405a576847e69cd3c83 (patch) | |
tree | 403cdfc0f6350174e138750ba2706bd67f77e652 | |
parent | replace systemd_requires_mounts_for with systemd_depend_mount (diff) | |
download | infra-ansible-622921151674a71fda88b405a576847e69cd3c83.tar.gz infra-ansible-622921151674a71fda88b405a576847e69cd3c83.zip |
add role systemd_depend_iface
-rw-r--r-- | roles/systemd_depend_iface/defaults/main.yml | 2 | ||||
-rw-r--r-- | roles/systemd_depend_iface/handlers/main.yml | 13 | ||||
-rw-r--r-- | roles/systemd_depend_iface/tasks/main.yml | 28 | ||||
-rw-r--r-- | roles/systemd_depend_iface/templates/override.conf.j2 | 5 |
4 files changed, 48 insertions, 0 deletions
diff --git a/roles/systemd_depend_iface/defaults/main.yml b/roles/systemd_depend_iface/defaults/main.yml new file mode 100644 index 0000000..5c6c6a4 --- /dev/null +++ b/roles/systemd_depend_iface/defaults/main.yml @@ -0,0 +1,2 @@ +#systemd_depend_iface_name: +systemd_depend_iface_services: [] diff --git a/roles/systemd_depend_iface/handlers/main.yml b/roles/systemd_depend_iface/handlers/main.yml new file mode 100644 index 0000000..2782200 --- /dev/null +++ b/roles/systemd_depend_iface/handlers/main.yml @@ -0,0 +1,13 @@ +- name: Reload systemd daemon + become: true + ansible.builtin.systemd_service: + daemon_reload: true + listen: systemd_depend_iface_restart + +- name: Restart systemd services + become: true + ansible.builtin.systemd_service: + name: '{{ item }}' + state: restarted + listen: systemd_depend_iface_restart + loop: "{{ systemd_depend_iface_result.results | selectattr('changed', 'equalto', true) | map(attribute='service') | list }}" diff --git a/roles/systemd_depend_iface/tasks/main.yml b/roles/systemd_depend_iface/tasks/main.yml new file mode 100644 index 0000000..1bc8590 --- /dev/null +++ b/roles/systemd_depend_iface/tasks/main.yml @@ -0,0 +1,28 @@ +- name: Create override directory + become: true + ansible.builtin.file: + path: '/etc/systemd/system/{{ service }}.service.d' + state: directory + owner: root + group: root + mode: '755' + loop: '{{ systemd_depend_iface_services }}' + loop_control: + loop_var: service + +- name: Create service override + become: true + ansible.builtin.template: + src: override.conf.j2 + dest: '/etc/systemd/system/{{ service }}.service.d/depend_iface_{{ systemd_depend_iface_name }}.conf' + owner: root + group: root + mode: '644' + register: systemd_depend_iface_result + notify: systemd_depend_iface_restart + loop: '{{ systemd_depend_iface_services }}' + loop_control: + loop_var: service + +- name: Restart systemd services if necessary + ansible.builtin.meta: flush_handlers diff --git a/roles/systemd_depend_iface/templates/override.conf.j2 b/roles/systemd_depend_iface/templates/override.conf.j2 new file mode 100644 index 0000000..55c4f43 --- /dev/null +++ b/roles/systemd_depend_iface/templates/override.conf.j2 @@ -0,0 +1,5 @@ +{{ ansible_managed | comment }} + +[Unit] +BindsTo=sys-devices-virtual-net-{{ systemd_depend_iface_name }}.device +After=sys-devices-virtual-net-{{ systemd_depend_iface_name }}.device |