Replace matrix-common-after systemd service management with com.devture.ansible.role.systemd_service_manager

This commit is contained in:
Slavi Pantaleev
2022-11-23 10:14:28 +02:00
parent eec5de7aba
commit 93d4f8d425
12 changed files with 150 additions and 219 deletions

View File

@ -1,15 +1,5 @@
---
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/start.yml"
when: run_start | bool
tags:
- start
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/stop.yml"
when: run_stop | bool
tags:
- stop
- ansible.builtin.import_tasks: "{{ role_path }}/tasks/run_docker_prune.yml"
tags:
- run-docker-prune

View File

@ -1,48 +0,0 @@
---
- name: Ensure systemd is reloaded
ansible.builtin.service:
daemon_reload: true
- name: Ensure Matrix services are stopped
ansible.builtin.service:
name: "{{ item.name }}"
state: stopped
with_items: "{{ matrix_systemd_services_list | sort (attribute='priority,name', reverse=true) }}"
when: not ansible_check_mode
- name: Ensure Matrix services are started
ansible.builtin.service:
name: "{{ item.name }}"
state: started
enabled: "{{ matrix_systemd_services_autostart_enabled }}"
with_items: "{{ matrix_systemd_services_list | sort (attribute='priority,name') }}"
when: not ansible_check_mode
# If we check service state immediately, we may succeed,
# because it takes some time for the service to attempt to start and actually fail.
#
# Waiting too long (30s) may not work for a similar reason,
# as we may run into systemd's automatic restart logic retrying the service.
- name: Wait a bit, so that services can start (or fail)
ansible.builtin.wait_for:
timeout: "{{ matrix_common_after_systemd_service_start_wait_for_timeout_seconds }}"
delegate_to: 127.0.0.1
become: false
- block:
- name: Populate service facts
ansible.builtin.service_facts:
- name: Fail if service isn't detected to be running
ansible.builtin.fail:
msg: >-
{{ item }} was not detected to be running.
It's possible that there's a configuration problem or another service on your server interferes with it (uses the same ports, etc.).
Try running `systemctl status {{ item }}` and `journalctl -fu {{ item }}` on the server to investigate.
If you're on a slow or overloaded server, it may be that services take a longer time to start and that this error is a false-positive.
You can consider raising the value of the `matrix_common_after_systemd_service_start_wait_for_timeout_seconds` variable.
See `roles/custom/matrix-common-after/defaults/main.yml` for more details about that.
with_items: "{{ matrix_systemd_services_list | map(attribute='name') }}"
when:
- "item.endswith('.service') and (ansible_facts.services[item] | default(none) is none or ansible_facts.services[item].state != 'running')"

View File

@ -1,7 +0,0 @@
---
- name: Ensure Matrix services stopped
ansible.builtin.service:
name: "{{ item.name }}"
state: stopped
with_items: "{{ matrix_systemd_services_list | sort (attribute='priority,name', reverse=true) }}"