Overcame bug in current systemd

This commit is contained in:
Christian Wolf 2020-03-28 17:33:35 +01:00
parent 51c271905d
commit 3f62ff1120

View File

@ -30,6 +30,7 @@
- name: Populate service facts - name: Populate service facts
service_facts: service_facts:
when: ansible_distribution != 'Archlinux'
- name: Fail if service isn't detected to be running - name: Fail if service isn't detected to be running
fail: fail:
@ -38,4 +39,31 @@
It's possible that there's a configuration problem or another service on your server interferes with it (uses the same ports, etc.). 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. Try running `systemctl status {{ item }}` and `journalctl -fu {{ item }}` on the server to investigate.
with_items: "{{ matrix_systemd_services_list }}" 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_facts.services[item + '.service']|default(none) is none or ansible_facts.services[item + '.service'].state != 'running'"
- ansible_distribution != 'Archlinux'
# 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 }}"
when:
- ansible_distribution == 'Archlinux'
- 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 }}"
loop_control:
label: "{{ item.name }}"
when:
#- "ansible_facts.services[item + '.service']|default(none) is none or ansible_facts.services[item + '.service'].state != 'running'"
- "item.status['ActiveState'] != 'active'"
- "ansible_distribution == 'Archlinux'"