--- # this is a demo of conditional executions using 'when' statements, which can skip # certain tasks on machines/platforms/etc where they do not apply. - hosts: all user: root vars: favcolor: "red" dog: "fido" cat: "whiskers" ssn: 8675309 # These are the types of when statements available # when_set: $variable_name # when_unset: $variable_name # when_str: $x == "test" # when_int: $y > 2 # when_float: $z => 2.3 # # when using 'when', take care to make sure any variables given are surrounded by spaces # as an example, $z>3 will not do what you want, use "$z > 3" # # note, if you are doing comparisons to variables that are stored as hashes or lists, # you will need to use the older 'only_if', which is more free form. # see conditionals_part_3.yml tasks: - name: "do this if my favcolor is blue, and my dog is named fido" action: shell /bin/false when_string: $favcolor == 'blue' and $dog == 'fido' - name: "do this if my favcolor is not blue, and my dog is named fido" action: shell /bin/true when_string: $favcolor != 'blue' and $dog == 'fido' - name: "do this if my SSN is over 9000" action: shell /bin/true when_integer: $ssn > 9000 - name: "do this if I have one of these SSNs" action: shell /bin/true when_integer: $ssn in [ 8675309, 8675310, 8675311 ] - name: "do this if a variable named hippo is NOT defined" action: shell /bin/true when_unset: $hippo - name: "do this if a variable named hippo is defined" action: shell /bin/true when_set: $hippo