47 lines
1.5 KiB
YAML
47 lines
1.5 KiB
YAML
---
|
|
# this is a demo of conditional executions using 'only_if', which can skip
|
|
# certain tasks on machines/platforms/etc where they do not apply.
|
|
|
|
- hosts: all
|
|
user: root
|
|
|
|
vars:
|
|
favcolor: "red"
|
|
ssn: 8675309
|
|
|
|
# Below we're going to define some expressions.
|
|
#
|
|
# Not only can we assign variables for reuse, but we can also assign conditional
|
|
# expressions. By keeping these in 'vars', the task section remains
|
|
# extraordinarily clean, and not littered with programming language
|
|
# constructs -- so it's easily skimmed by humans.
|
|
#
|
|
# Remember to quote any variables if they are not numbers!
|
|
#
|
|
# Interesting fact: aside from the $variables, these expressions are actually
|
|
# tiny bits of Python. They are evaluated in the context of each host, so different
|
|
# steps can be skipped on different hosts! They should evaluate to either True
|
|
# or False
|
|
|
|
is_favcolor_blue: "'$favcolor' == 'blue'"
|
|
is_centos: "'$facter_operatingsystem' == 'CentOS'"
|
|
|
|
# NOTE:
|
|
#
|
|
# facter and ohai variables can be used in only_if statements too
|
|
# ex: "'$facter_operatingsystem' == 'CentOS'", which bubble up automatically
|
|
# from the managed machines
|
|
#
|
|
# this example won't do that though, as you might not have facter or ohai,
|
|
# but you get the idea...
|
|
|
|
tasks:
|
|
|
|
- name: "do this if my favcolor is blue"
|
|
action: shell /bin/false
|
|
only_if: '$is_favcolor_blue'
|
|
|
|
- name: "do this if my favcolor is not blue"
|
|
action: shell /bin/true
|
|
only_if: 'not ($is_favcolor_blue)'
|
|
|