Ansible
2026-02-26 18:23 Diff

Иногда таски в Ansible нужно выполнять только при определенных условиях. Для этого используется механизм conditionals. Для этого используется ключ when с выражением на языке Python. В нем можно напрямую использовать переменные, которые мы определили в плэйбуке, а так же факты, не заворачивая их в шаблон. Рассмотрим несколько примеров:

Первая задача выполняется, только если на целевой машине установлена операционная система Debian. В условии выполняется простое сравнение значения факта ansible_os_family со строкой. Во второй задаче используется более сложная проверка с применением операторов and и or. Такая задача выполнится на CentOs версии 6 и 7.

В условии when могут использоваться переменные (обратите внимание, как в Python делается отрицание):

Условия будут работать и в циклах:

Здесь просто происходит проверка, что значение больше 5. Как видите, знание самого Python не обязательно, потому что сравнение выполняется естественным образом. Но также можно использовать и другие операторы, которые есть в Python.

Рекомендуемые программы