From 2b3a22fdbaab32cb581c6cfbf7b3c7285c415c29 Mon Sep 17 00:00:00 2001 From: Tim Whittington Date: Fri, 26 Aug 2016 04:52:52 +1200 Subject: [PATCH] Document when clause list of conditions (#17206) The 'when' clause supports a list of conditions, applying a logical 'and' to the conditions (i.e. requiring all of them to be true). This can be useful for legibility sometimes, allowing distinct conditions to be listed on separate lines. --- docsite/rst/playbooks_conditionals.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docsite/rst/playbooks_conditionals.rst b/docsite/rst/playbooks_conditionals.rst index cf6ed50a37..4db99fb6fa 100644 --- a/docsite/rst/playbooks_conditionals.rst +++ b/docsite/rst/playbooks_conditionals.rst @@ -38,6 +38,15 @@ You can also use parentheses to group conditions:: when: (ansible_distribution == "CentOS" and ansible_distribution_major_version == "6") or (ansible_distribution == "Debian" and ansible_distribution_major_version == "7") +Multiple conditions that all need to be true (a logical 'and') can also be specified as a list:: + + tasks: + - name: "shut down CentOS 6 systems" + command: /sbin/shutdown -t now + when: + - ansible_distribution == "CentOS" + - ansible_distribution_major_version == "6" + A number of Jinja2 "filters" can also be used in when statements, some of which are unique and provided by Ansible. Suppose we want to ignore the error of one statement and then decide to do something conditionally based on success or failure::