--- # 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)'