54 lines
1.6 KiB
YAML
54 lines
1.6 KiB
YAML
---
|
|
# 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 statemnets 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
|
|
|
|
|