Do not delete and re-create Synapse worker configs needlessly
We had checks to avoid stopping/deleting systemd services for workers that used to exist and will continue to exist, but we were deleting config files for workers each time.. Only to recreate them again later. This lead to: - too many misleading "changed" tasks - too much unnecessary work - potential failures during playbook execution possibly leaving the system in a bad state (no worker config files)
This commit is contained in:
parent
2e7b5c7b02
commit
c37cf42427
|
@ -7,12 +7,16 @@
|
||||||
use_regex: true
|
use_regex: true
|
||||||
register: matrix_synapse_workers_current_config_files
|
register: matrix_synapse_workers_current_config_files
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
matrix_synapse_enabled_worker_names: "{{ matrix_synapse_workers_enabled_list | map(attribute='name') }}"
|
||||||
|
|
||||||
# This also deletes some things which we need. They will be recreated below.
|
# This also deletes some things which we need. They will be recreated below.
|
||||||
- name: Ensure previous worker configs are cleaned
|
- name: Ensure unnecessary worker configs are cleaned
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: absent
|
state: absent
|
||||||
with_items: "{{ matrix_synapse_workers_current_config_files.files }}"
|
with_items: "{{ matrix_synapse_workers_current_config_files.files }}"
|
||||||
|
when: "not ansible_check_mode and (item.path | basename | replace ('worker.', '') | replace('.yaml', '')) not in matrix_synapse_enabled_worker_names"
|
||||||
|
|
||||||
- name: Determine current worker systemd services
|
- name: Determine current worker systemd services
|
||||||
ansible.builtin.find:
|
ansible.builtin.find:
|
||||||
|
@ -27,13 +31,14 @@
|
||||||
state: stopped
|
state: stopped
|
||||||
enabled: false
|
enabled: false
|
||||||
with_items: "{{ matrix_synapse_workers_current_systemd_services.files }}"
|
with_items: "{{ matrix_synapse_workers_current_systemd_services.files }}"
|
||||||
when: "not ansible_check_mode and item.path | basename not in devture_systemd_service_manager_services_list | map(attribute='name')"
|
when: "not ansible_check_mode and (item.path | basename | replace('.service', '')) not in matrix_synapse_enabled_worker_names"
|
||||||
|
|
||||||
- name: Ensure unnecessary worker systemd services are cleaned
|
- name: Ensure unnecessary worker systemd services are cleaned
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: absent
|
state: absent
|
||||||
with_items: "{{ matrix_synapse_workers_current_systemd_services.files }}"
|
with_items: "{{ matrix_synapse_workers_current_systemd_services.files }}"
|
||||||
|
when: "not ansible_check_mode and (item.path | basename | replace('.service', '')) not in matrix_synapse_enabled_worker_names"
|
||||||
|
|
||||||
- name: Ensure creation of worker systemd service files and configuration files
|
- name: Ensure creation of worker systemd service files and configuration files
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/synapse/workers/util/setup_files_for_worker.yml"
|
ansible.builtin.include_tasks: "{{ role_path }}/tasks/synapse/workers/util/setup_files_for_worker.yml"
|
||||||
|
|
Loading…
Reference in a new issue