|
- ---
-
- - name: Ensure systemd reloaded
- service:
- daemon_reload: yes
-
- - name: Ensure Matrix services stopped
- service:
- name: "{{ item }}"
- state: stopped
- with_items: "{{ matrix_systemd_services_list }}"
-
- - name: Ensure Matrix services started
- service:
- name: "{{ item }}"
- enabled: yes
- state: started
- with_items: "{{ matrix_systemd_services_list }}"
-
- # 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)
- wait_for:
- timeout: 5
- delegate_to: 127.0.0.1
- become: false
-
- - block:
- - name: Populate service facts
- service_facts:
-
- - name: Fail if service isn't detected to be running
- 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.
- with_items: "{{ matrix_systemd_services_list }}"
- when:
- - "ansible_facts.services[item + '.service']|default(none) is none or ansible_facts.services[item + '.service'].state != 'running'"
- when: " ansible_distribution != 'Archlinux'"
-
- - block:
- # Currently there is a bug in ansible that renders is incompatible with systemd.
- # service_facts is not collecting the data successfully.
- # Therefore iterating here manually
- - name: Fetch systemd information
- systemd:
- name: "{{ item }}"
- register: systemdstatus
- with_items: "{{ matrix_systemd_services_list }}"
-
- - name: Fail if service isn't detected to be running
- fail:
- msg: >-
- {{ item.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.item }}` and `journalctl -fu {{ item.item }}` on the server to investigate.
- with_items: "{{ systemdstatus.results }}"
- when: "item.status['ActiveState'] != 'active'"
- when: "ansible_distribution == 'Archlinux'"
|