Запуск задачи только при значении True
Ограничивайте запуск задач логическим условием
«Запуск задачи только при значении True» — бесплатный урок Ansible Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ansible Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ansible Academy содержит 4 уроков всего.
Задачи, принимающие решения
Иногда задача должна выполняться только в определённых случаях. Ключевое слово when запускает задачу при выбранном Вами условии. 🚦
Ключевое слово when
Добавьте when в любую задачу. Если выражение истинно, задача запускается; если ложно, Ansible пропускает её и продолжает работу.
- name: Reboot the box
ansible.builtin.reboot:
when: reboot_requiredФигурные скобки не нужны
Внутри when записывается выражение без дополнительных символов. В отличие от строк, двойные фигурные скобки не нужны, поскольку when уже задаёт контекст Jinja2.
when: ansible_distribution == "Ubuntu"Переменные, принимающие значение true
Простая логическая переменная работает непосредственно. Если install_extras имеет значение true, задача выполняется, иначе её молча пропускают.
- name: Add extra tools
ansible.builtin.package:
name: htop
when: install_extrasСравнения
Условия могут сравнивать значения. Операторы ==, !=, < и > позволяют запускать задачи в зависимости от чисел и строк. ⚖️
when: app_version == "2.0"Пропуск и ошибка — не одно и то же
Пропущенная задача не является ошибкой. В выводе запуска вместо ok или changed отображается skipping, а плей продолжается.
Отрицание условия
Используйте not, чтобы инвертировать проверку. Эта задача выполняется только тогда, когда служба ещё не установлена.
when: not service_installedОпределена переменная или нет
Можно проверить, существует ли переменная. Проверка is defined защищает от ошибок, вызванных неопределёнными переменными.
when: custom_port is definedwhen выполняется для каждого узла
Каждый узел проверяется отдельно. В одном и том же плее условие может быть истинным на одном сервере и ложным на другом.
Сохраняйте условия простыми
Понятные условия надёжнее. Если условие when становится длинным, разделите логику или используйте переменную, описывающую её назначение.
Условный, а не императивный подход
when сохраняет декларативность плейбуков: Вы описываете условие, а Ansible принимает решение для каждого узла. Блоки if и разветвляющиеся сценарии не нужны. 🎯
Быстрая проверка
Проверим, как работает when.
Итоги
Ключевое слово when запускает задачу, только если её выражение истинно. Ложное выражение означает пропуск, а не ошибку; проверка выполняется для каждого узла. ✅
Часто задаваемые вопросы
Урок «Запуск задачи только при значении True» бесплатный?
Да — полный текст урока «Запуск задачи только при значении True» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ansible Academy, подпишись на CoddyKit PRO. Курс Ansible Academy содержит 4 уроков всего.
Чему я научусь в уроке «Запуск задачи только при значении True»?
Ограничивайте запуск задач логическим условием Ты практикуешь Ansible Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ansible Academy?
Предыдущий опыт не требуется. Ansible Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Запуск задачи только при значении True»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ansible Academy?
Да. Каждый урок Ansible Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Запуск задачи только при значении True
- Ветвление по сведениям о семействе ОС
- Объединение условий с and / or
- Регистрация результата и принятие решения