Defining a change
Similar to defining a task failure, it is also possible to define what constitutes a changed task result. This capability is particularly useful with the command
family of modules (command
, shell
, raw
, and script
). Unlike most other modules, the modules of this family do not have an inherent idea of what a change may be. In fact, unless otherwise directed, these modules only result in failed, changed, or skipped. There is simply no way for these modules to assume a changed condition versus unchanged.
The changed_when
condition allows a playbook author to instruct a module how to interpret a change. Just like failed_when
, changed_when
performs a test to generate a Boolean result. Frequently, the tasks used with changed_when
are commands that will exit nonzero to indicate that no work is needed to be done, so often authors will combine changed_when
and failed_when
to fine-tune the task result evaluation. In our previous example, the failed_when
condition caught the case where...