Объединение условий с and / or
Создавайте составные выражения when
«Объединение условий с and / or» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Несколько правил
Для реальных решений часто нужно учитывать несколько правил одновременно. Ansible позволяет объединять проверки с помощью and и or внутри одного when. 🔗
Оба условия должны быть истинными
При использовании and должны выполняться все части условия. Эта задача запускается только на узлах Debian, которые также запросили дополнительные компоненты.
when: ansible_os_family == "Debian" and install_extrasДостаточно одного условия
При использовании or достаточно любой истинной части. Условие подходит для узлов из промежуточной или тестовой среды.
when: env == "staging" or env == "test"Сокращённая запись со списком
Запись when в виде списка YAML означает, что истинным должен быть каждый элемент. Это простой и понятный способ выразить and.
when:
- ansible_os_family == "Debian"
- install_extrasГруппируйте скобками
Сочетаете and с or? Используйте скобки, чтобы явно обозначить группировку и избежать неожиданных результатов.
when: (env == "prod" or env == "staging") and backups_enabledПравила приоритета
Как и в Python, and имеет более высокий приоритет, чем or. Если сомневаетесь, используйте скобки, чтобы логика читалась именно так, как Вы задумали.
Инвертируйте группу
Поставьте not перед группой в скобках, чтобы инвертировать её целиком. В этом примере задача пропускает рабочую и промежуточную среды.
when: not (env == "prod" or env == "staging")Сочетайте факты и переменные
Условия могут объединять собранные факты с Вашими переменными, поэтому задача реагирует и на узел, и на Ваше намерение.
when: ansible_memtotal_mb > 2048 and enable_cacheКаждый элемент списка
В записи со списком каждая строка представляет собой одно выражение. Они объединяются с помощью and, поэтому для запуска задачи должны выполняться все.
Следите за типами переменных
Сравнивайте числа как числа, а строки как строки. Если заключить число в кавычки, например "9", оно станет строкой, и проверка может завершиться неправильно.
Понятная логика — надёжная логика
Используйте запись со списком для простого and, а скобки — для смешанной логики. Понятные условия легко проверять и безопасно применять. 🎯
Быстрая проверка
Давайте проверим составные условия.
Итоги
Объединяйте проверки с помощью and, or и not. Список when означает, что истинными должны быть все условия; для ясности заключайте смешанную логику в скобки. ✅
Часто задаваемые вопросы
Урок «Объединение условий с and / or» бесплатный?
Да — полный текст урока «Объединение условий с and / or» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Объединение условий с and / or»?
Создавайте составные выражения when Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Объединение условий с and / or»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Запуск задачи только при значении True
- Ветвление по сведениям о семействе ОС
- Объединение условий с and / or
- Регистрация результата и принятие решения