Apologies if this is a FAQ, but I haven't found been able to find it anywhere.

I keep wanting a pattern where something happens if a variable is true and something positively doesn't happen if the variable is false (or unset). For example having a service running or not running. Is there any way to achieve this other than having pairs of tasks with inverted when clauses?

e.g:

- name: be sure openais is running and enabled
  service: name=openais state=running enabled=yes
  when: enable_service_address is defined and enable_service_address

- name: be sure openais is NOT running and NOT enabled
  service: name=openais state=stopped enabled=no
  when: enable_service_address is not defined or not enable_service_address

Or, as an other example, creating or removing a marker file (which seems to be further complicated by needing 'copy' for create and 'file' for remove):

- name: Set standalone marker file
  copy: content='' dest=/var/role-standalone
  when: '"standalone" in group_names'

- name: Unset standalone marker file
  file: path=/var/role-standalone state=absent
  when: '"standalone" not in group_names'

Jon.

--
Jon Warbrick
Information Systems Manager, University of Cambridge Information Services

Reply via email to