Механизм условных выражений when в Ansible работает следующим образом: условное выражение принимает логическое выражение в качестве аргумента. 1 Если выражение оценивается как истинное, задача из плейбука выполняется, в противном случае — пропускается. 1
Условие может быть основано на факте Ansible, объявленной переменной или зарегистрированной переменной, которая хранит вывод предыдущей задачи. 1
При запуске задачи или плейбука Ansible оценивает тест для всех хостов. 5 На любом хосте, где тест проходит (возвращает значение True), Ansible выполняет эту задачу. 5
Например, можно использовать факт «ansible_distribution» для условной выполнения задачи в зависимости от операционной системы целевых хостов. 2
Также для создания более сложных выражений в условиях можно использовать логические операторы «and», «or» и «not». 2