Browse Source

Systemd `systemctl show` workaround

`systemctl show` would exit with RC=1 for non-existent services in v231.
This caused the Ansible systemd module to exit with a failure of running the
`systemctl show` command instead of exiting stating the service was not found.

This change catches both failures on either older or newer versions of systemd.

The change in systemd exit status could be resolved in systemd v232.
https://github.com/systemd/systemd/commit/3dced37b7c2c9a5c733817569d2bbbaa397adaf7
Russell Teague 8 years ago
parent
commit
c1ad62d179

+ 1 - 1
roles/os_firewall/tasks/firewall/firewalld.yml

@@ -13,7 +13,7 @@
     - iptables
     - ip6tables
   register: task_result
-  failed_when: "task_result|failed and 'Could not find' not in task_result.msg"
+  failed_when: "task_result|failed and 'could not' not in task_result.msg|lower"
 
 - name: Start and enable firewalld service
   systemd:

+ 1 - 1
roles/os_firewall/tasks/firewall/iptables.yml

@@ -7,7 +7,7 @@
     enabled: no
     masked: yes
   register: task_result
-  failed_when: "task_result|failed and 'Could not find' not in task_result.msg"
+  failed_when: "task_result|failed and 'could not' not in task_result.msg|lower"
 
 - name: Install iptables packages
   package: name={{ item }} state=present