mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2024-11-10 06:18:38 +00:00
eec5de7aba
These are not even caused by Archlinux, but by running buggy Ansible on old Ubuntu while targeting modern servers (like Archlinux, but also others, ..). We shouldn't employ ugly workarounds like this. We should tell people to avoid running buggy Ansible or bad distros like Ubuntu, even.
49 lines
2.2 KiB
YAML
49 lines
2.2 KiB
YAML
---
|
|
|
|
- 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')"
|