diff --git a/handlers/main.yml b/handlers/main.yml index 874edc4..4111f9b 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -31,6 +31,11 @@ - name: Restart changed services include_tasks: handlers/systemd_restart.yml + vars: + _systemd_service_name: "{{ services_results.item.service_name | replace(' ', '_') }}" + _systemd_service_type: "{{ (services_results.item.timer is defined) | ternary('timer', 'service') }}" + loop_label: + service_name: "{{ _systemd_service_name }}.{{ _systemd_service_type }}" listen: systemd service changed args: apply: @@ -44,5 +49,6 @@ loop: "{{ systemd_services_result.results }}" loop_control: loop_var: services_results + label: "{{ loop_label | to_json }}" tags: - systemd-service diff --git a/handlers/socket_restart.yml b/handlers/socket_restart.yml index b9c20fb..d1b8ad2 100644 --- a/handlers/socket_restart.yml +++ b/handlers/socket_restart.yml @@ -13,15 +13,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -- name: "Restart socket" +- name: "Restarting socket" systemd: name: "{{ socket.socket_name | replace(' ', '_') }}.socket" state: restarted when: - - "'socket_name' in socket" - socket.restart_changed | default(systemd_service_restart_changed) | bool - "'state' not in socket" - socket.enabled | default(systemd_service_enabled) | bool - loop: "{{ socket_results.item }}" + loop: "{{ socket_results.item | selectattr('socket_name', 'defined') }}" loop_control: loop_var: socket + label: "{{ loop_label | to_json }}" + vars: + loop_label: + name: "{{ socket.socket_name | replace(' ', '_') }}.socket" + state: restarted diff --git a/handlers/systemd_restart.yml b/handlers/systemd_restart.yml index acb0264..d7b07e5 100644 --- a/handlers/systemd_restart.yml +++ b/handlers/systemd_restart.yml @@ -13,13 +13,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -- name: "Restart service {{ services_results.item.service_name | replace(' ', '_') }}" +- name: "Restarting service" systemd: - name: >- - {{ services_results.item.service_name | replace(' ', '_') }}{{ template_argument }}.{{ - (services_results.item.timer is defined) | ternary('timer', 'service') - }} + name: "{{ _systemd_service_name }}{{ template_argument }}.{{ _systemd_service_type }}" state: restarted loop: "{{ services_results.item.template_arguments | default(['']) }}" loop_control: loop_var: template_argument + label: "{{ loop_label | to_json }}" + vars: + loop_label: + name: "{{ _systemd_service_name }}" + state: restarted + template: "{{ template_argument }}" + type: "{{ _systemd_service_type }}" diff --git a/tasks/main.yml b/tasks/main.yml index 2698b37..145e9f7 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -36,7 +36,14 @@ owner: "{{ item.systemd_user_name | default(systemd_user_name) }}" group: "{{ item.systemd_group_name | default(systemd_group_name) }}" mode: "02755" - with_items: "{{ systemd_services }}" + loop: "{{ systemd_services }}" + loop_control: + label: "{{ loop_label | to_json }}" + vars: + loop_label: + path: "{{ item.systemd_run_dir | default(systemd_run_dir) }}/{{ item.systemd_slice_name | default(systemd_slice_name) | replace(' ', '_') }}" + owner: "{{ item.systemd_user_name | default(systemd_user_name) }}" + group: "{{ item.systemd_group_name | default(systemd_group_name) }}" tags: - systemd-service @@ -47,7 +54,14 @@ owner: "{{ item.systemd_user_name | default(systemd_user_name) }}" group: "{{ item.systemd_group_name | default(systemd_group_name) }}" mode: "02755" - with_items: "{{ systemd_services }}" + loop: "{{ systemd_services }}" + loop_control: + label: "{{ loop_label | to_json }}" + vars: + loop_label: + path: "{{ item.systemd_lock_dir | default(systemd_lock_dir) }}/{{ item.systemd_slice_name | default(systemd_slice_name) | replace(' ', '_') }}" + owner: "{{ item.systemd_user_name | default(systemd_user_name) }}" + group: "{{ item.systemd_group_name | default(systemd_group_name) }}" tags: - systemd-service @@ -59,7 +73,14 @@ group: "{{ item.systemd_group_name | default(systemd_group_name) }}" mode: "02755" when: "'systemd_overrides' in item" - with_items: "{{ systemd_services }}" + loop: "{{ systemd_services }}" + loop_control: + label: "{{ loop_label | to_json }}" + vars: + loop_label: + path: "/etc/systemd/system/{{ item.service_name | replace(' ', '_') }}.service.d" + owner: "{{ item.systemd_user_name | default(systemd_user_name) }}" + group: "{{ item.systemd_group_name | default(systemd_group_name) }}" tags: - systemd-service @@ -67,10 +88,13 @@ template: src: "systemd-tmpfiles.j2" dest: "/etc/tmpfiles.d/{{ item.systemd_tempd_prefix | default(systemd_tempd_prefix) }}-{{ item.service_name | replace(' ', '_') }}.conf" - mode: "0644" - owner: "root" - group: "root" - with_items: "{{ systemd_services }}" + loop: "{{ systemd_services }}" + loop_control: + label: "{{ loop_label | to_json }}" + vars: + loop_label: + src: "systemd-tmpfiles.j2" + dest: "/etc/tmpfiles.d/{{ item.systemd_tempd_prefix | default(systemd_tempd_prefix) }}-{{ item.service_name | replace(' ', '_') }}.conf" tags: - systemd-service @@ -78,12 +102,17 @@ openstack.config_template.config_template: src: "systemd-service.j2" dest: "/etc/systemd/system/{{ item.service_name | replace(' ', '_') }}.service" - mode: "0644" - owner: "root" - group: "root" config_overrides: "{{ item.config_overrides | default(systemd_service_config_overrides) }}" config_type: "ini" - with_items: "{{ systemd_services }}" + loop: "{{ systemd_services }}" + loop_control: + label: "{{ loop_label | to_json }}" + vars: + loop_label: + src: "systemd-service.j2" + dest: "/etc/systemd/system/{{ item.service_name | replace(' ', '_') }}.service" + config_overrides: "{{ item.config_overrides | default(systemd_service_config_overrides) }}" + config_type: "ini" when: not (item.systemd_overrides_only | default(False) | bool) notify: - systemd service changed @@ -95,10 +124,13 @@ template: src: "systemd-service-overrides.j2" dest: "/etc/systemd/system/{{ item.service_name | replace(' ', '_') }}.service.d/override.conf" - mode: "0644" - owner: "root" - group: "root" - with_items: "{{ systemd_services }}" + loop: "{{ systemd_services }}" + loop_control: + label: "{{ loop_label | to_json }}" + vars: + loop_label: + src: "systemd-service-overrides.j2" + dest: "/etc/systemd/system/{{ item.service_name | replace(' ', '_') }}.service.d/override.conf" when: "'systemd_overrides' in item" notify: - systemd service changed @@ -115,7 +147,13 @@ group: "root" when: - item.timer is defined - with_items: "{{ systemd_services }}" + loop: "{{ systemd_services }}" + loop_control: + label: "{{ loop_label | to_json }}" + vars: + loop_label: + src: "systemd-timer.j2" + dest: "/etc/systemd/system/{{ item.service_name | replace(' ', '_') }}.timer" notify: - systemd service changed register: systemd_timer_result @@ -130,6 +168,12 @@ owner: "root" group: "root" loop: "{{ systemd_services | subelements('sockets', skip_missing=True) }}" + loop_control: + label: "{{ loop_label | to_json }}" + vars: + loop_label: + src: "systemd-socket.j2" + dest: "/etc/systemd/system/{{ item.1.socket_name | replace(' ', '_') }}.socket" notify: - systemd socket changed - systemd service changed @@ -148,9 +192,14 @@ - name: Including systemd_load tasks include_tasks: systemd_load.yml + vars: + _systemd_service_name: "{{ service.service_name | replace(' ', '_') }}" + loop_label: + service_name: "{{ _systemd_service_name }}" loop: "{{ systemd_services }}" loop_control: loop_var: service + label: "{{ loop_label | to_json }}" args: apply: tags: @@ -164,5 +213,12 @@ enabled: "{{ item.enabled | default(systemd_service_enabled) }}" state: "{{ item.state | default(omit) }}" loop: "{{ systemd_services | selectattr('sockets', 'defined') | map(attribute='sockets') | flatten(1) }}" + loop_control: + label: "{{ loop_label | to_json }}" + vars: + loop_label: + name: "{{ item.socket_name | replace(' ', '_') }}.socket" + enabled: "{{ item.enabled | default(systemd_service_enabled) }}" + state: "{{ item.state | default(omit) }}" tags: - systemd-service diff --git a/tasks/systemd_load.yml b/tasks/systemd_load.yml index be80558..7fa9ca1 100644 --- a/tasks/systemd_load.yml +++ b/tasks/systemd_load.yml @@ -16,9 +16,9 @@ # NOTE(noonedeadpunk): If we don't have template_arguments set, we just iterate over list with # empty string as element. This won't have any effect on the results, but # we reduce code duplication -- name: "Load service {{ service.service_name | replace(' ', '_') }}" +- name: "Load service {{ _systemd_service_name }}" systemd: - name: "{{ service.service_name | replace(' ', '_') }}{{ template_argument }}.service" + name: "{{ _systemd_service_name }}{{ template_argument }}.service" enabled: "{{ service.enabled | default(systemd_service_enabled) }}" state: "{{ (service.timer is defined) | ternary(omit, (service.state | default(omit))) }}" when: @@ -26,10 +26,16 @@ loop: "{{ service.template_arguments | default(['']) }}" loop_control: loop_var: template_argument + label: "{{ loop_label | to_json }}" + vars: + loop_label: + name: "{{ _systemd_service_name }}{{ template_argument }}.service" + enabled: "{{ service.enabled | default(systemd_service_enabled) }}" + state: "{{ (service.timer is defined) | ternary('omit', (service.state | default('omit'))) }}" -- name: "Load timer {{ service.service_name | replace(' ', '_') }}" +- name: "Load timer {{ _systemd_service_name }}" systemd: - name: "{{ service.service_name | replace(' ', '_') }}{{ template_argument }}.timer" + name: "{{ _systemd_service_name }}{{ template_argument }}.timer" enabled: "{{ service.enabled | default(systemd_service_enabled) }}" state: "{{ service.timer.state | default(omit) }}" when: @@ -37,3 +43,9 @@ with_items: "{{ service.template_arguments | default(['']) }}" loop_control: loop_var: template_argument + label: "{{ loop_label | to_json }}" + vars: + loop_label: + name: "{{ _systemd_service_name }}{{ template_argument }}.timer" + enabled: "{{ service.enabled | default(systemd_service_enabled) }}" + state: "{{ service.timer.state | default('omit') }}"