0Pricing
DevOps Bootcamp · Урок

Ветвление по сведениям о семействе ОС

Разные шаги для Debian и RedHat

«Ветвление по сведениям о семействе ОС» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Один плейбук — много дистрибутивов

Debian использует apt, а RedHat — dnf. Благодаря фактам и when один плейбук адаптируется к каждой операционной системе. 🐧

Факт os_family

Ansible собирает факт ansible_os_family — общее обозначение, например Debian или RedHat, объединяющее родственные дистрибутивы.

when: ansible_facts["os_family"] == "Debian"

Семейство и дистрибутив

os_family — общее понятие, а ansible_distribution указывает точный дистрибутив. Ubuntu и Debian относятся к семейству Debian, но являются разными дистрибутивами.

Задача только для Debian

Ограничьте задачу с apt, чтобы она выполнялась только в семействе Debian. Узлы RedHat просто пропустят её.

- name: Install nginx (apt)
  ansible.builtin.apt:
    name: nginx
  when: ansible_os_family == "Debian"

Аналогичный вариант для RedHat

Добавьте соседнюю задачу для семейства RedHat. Теперь оба варианта охвачены одним и тем же плеем.

- name: Install nginx (dnf)
  ansible.builtin.dnf:
    name: nginx
  when: ansible_os_family == "RedHat"

Сокращённый вариант с package

Для простых установок универсальный модуль package автоматически выбирает нужный инструмент, поэтому ветвление может вообще не понадобиться.

Строки чувствительны к регистру

Названия семейств должны совпадать точно: это RedHat, а не Redhat и не redhat. Неверный регистр молча пропустит каждый узел. ⚠️

Другие полезные факты об OS

Помимо семейства доступны ansible_distribution_version и ansible_distribution_major_version, которые позволяют принимать более точные решения с учётом версии.

when: ansible_distribution_major_version == "9"

Проверьте значение перед ветвлением

Не уверены в значении? Простая задача debug выведет факт, чтобы Вы могли записать нужное точное условие.

- ansible.builtin.debug:
    var: ansible_os_family

Факты необходимо собрать

Для ветвления по фактам об OS параметр gather_facts должен быть включён. Если Вы его отключили, переменная os_family будет неопределённой.

Переносимые плейбуки — лучший выбор

Один файл, работающий с любым дистрибутивом, проще поддерживать, чем отдельные копии для каждой OS. Факты и when делают автоматизацию переносимой. 🌍

Быстрая проверка

Давайте разберём ветвление по OS.

Итоги

Используйте ansible_os_family в when, чтобы разделить Debian и RedHat. Не отключайте сбор фактов и сопоставляйте точное имя. ✅

Часто задаваемые вопросы

Урок «Ветвление по сведениям о семействе ОС» бесплатный?

Да — полный текст урока «Ветвление по сведениям о семействе ОС» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Ветвление по сведениям о семействе ОС»?

Разные шаги для Debian и RedHat Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Ветвление по сведениям о семействе ОС»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Запуск задачи только при значении True
  2. Ветвление по сведениям о семействе ОС
  3. Объединение условий с and / or
  4. Регистрация результата и принятие решения
← Назад к DevOps Bootcamp