c37cf42427
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)
48 lines
2 KiB
YAML
48 lines
2 KiB
YAML
---
|
|
|
|
- name: Determine current worker configs
|
|
ansible.builtin.find:
|
|
path: "{{ matrix_synapse_config_dir_path }}"
|
|
patterns: "worker.*.yaml"
|
|
use_regex: true
|
|
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.
|
|
- name: Ensure unnecessary worker configs are cleaned
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
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
|
|
ansible.builtin.find:
|
|
path: "{{ devture_systemd_docker_base_systemd_path }}"
|
|
patterns: "matrix-synapse-worker.*.service"
|
|
use_regex: true
|
|
register: matrix_synapse_workers_current_systemd_services
|
|
|
|
- name: Ensure unnecessary worker systemd services are stopped and disabled
|
|
ansible.builtin.service:
|
|
name: "{{ item.path | basename }}"
|
|
state: stopped
|
|
enabled: false
|
|
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 unnecessary worker systemd services are cleaned
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
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
|
|
ansible.builtin.include_tasks: "{{ role_path }}/tasks/synapse/workers/util/setup_files_for_worker.yml"
|
|
with_items: "{{ matrix_synapse_workers_enabled_list }}"
|
|
loop_control:
|
|
loop_var: matrix_synapse_worker_details
|