From a46e0f97882feb2aa43d0548eb48f9803716768f Mon Sep 17 00:00:00 2001 From: lwade Date: Fri, 9 Aug 2013 13:24:48 +0100 Subject: [PATCH] Modified playbooks2.rst to include conditional boolean example. --- docsite/latest/rst/playbooks2.rst | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docsite/latest/rst/playbooks2.rst b/docsite/latest/rst/playbooks2.rst index 517ca1db69f..23113359d28 100644 --- a/docsite/latest/rst/playbooks2.rst +++ b/docsite/latest/rst/playbooks2.rst @@ -338,8 +338,27 @@ Tip: Sometimes you'll get back a variable that's a string and you'll want to do - shell: echo "only on Red Hat 6, derivatives, and later" when: ansible_os_family == "RedHat" and ansible_lsb.major_release|int >= 6 +Note the above example requires the lsb_release package on the target host in order to return the ansible_lsb.major_release fact. + Variables defined in the playbooks or inventory can also be used. +An example may be the execution of a task based on a variable's boolean value:: + + vars: + epic: true + +Then a conditional execution with action on the boolean value of epic being True:: + + tasks: + - shell: echo "This certainly is epic!" + when: epic + +With a boolean value of False:: + + tasks: + - shell: echo "This certainly isn't epic!" + when: not epic + If a required variable has not been set, you can skip or fail using Jinja2's `defined` test. For example::