0Pricing
DevOps Bootcamp · Урок

Зависимости ролей в meta/main.yml

Связывайте роли, которым требуются другие роли

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

Роли, которым нужны другие роли

Некоторые роли работают только после выполнения другой роли. Например, роли приложения может потребоваться базовая роль, которая усилит защиту сервера перед развёртыванием приложения.

Знакомство с meta/main.yml

Каждая роль может содержать файл meta/main.yml. В нём хранятся метаданные роли: автор, поддерживаемые платформы и зависимости.

Ключ dependencies

Внутри meta/main.yml ключ dependencies перечисляет роли, которые должны выполниться до этой роли. Ansible автоматически применяет их первыми.

dependencies:
  - role: common
  - role: firewall

Зависимости выполняются первыми

При применении роли Ansible сначала выполняет перечисленные в её dependencies роли в указанном порядке, а затем запускает собственные задачи этой роли.

Передача переменных зависимости

Переменные можно передать зависимости прямо в списке. Базовая роль выполнится с настройками, точно соответствующими потребностям этой роли.

dependencies:
  - role: nginx
    vars:
      http_port: 8080

Настоящая цепочка зависимостей

Роль webapp зависит от nginx, а nginx — от common. Примените webapp, и вся цепочка разрешится для Вас сверху вниз.

Условные зависимости

Зависимость может содержать условие when, поэтому она будет выполняться только на подходящих узлах. Например, пропустите роль межсетевого экрана на узлах для разработки.

dependencies:
  - role: firewall
    when: env == 'prod'

Зависимости статичны

Зависимости в meta разрешаются до начала плейбука. Они не могут использовать факты времени выполнения, собранные позже, поэтому условия для них должны оставаться простыми.

Galaxy также читает meta

При установке роли из Ansible Galaxy система читает meta/main.yml и автоматически загружает все перечисленные там зависимости.

Указывайте зависимости честно

Добавляйте роль в зависимости только тогда, когда она действительно должна выполняться первой. Скрытые цепочки усложняют понимание и отладку автоматизации.

Здесь также хранится информация для Galaxy

Помимо зависимостей, в meta/main.yml хранится раздел galaxy_info: лицензия, минимальная версия Ansible и платформы. Он описывает, как следует использовать роль.

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

Вспомните, где объявляется, что одна роль должна выполняться до другой.

Итоги

Перечисляйте необходимые роли в разделе dependencies файла meta/main.yml, и Ansible сначала выполнит эту цепочку, при необходимости используя переменные и условия. 🔗

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

Урок «Зависимости ролей в meta/main.yml» бесплатный?

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

Чему я научусь в уроке «Зависимости ролей в meta/main.yml»?

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

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

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

Сколько времени занимает урок «Зависимости ролей в meta/main.yml»?

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

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

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

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

  1. Зависимости ролей в meta/main.yml
  2. defaults и vars: порядок переопределения
  3. include_role и import_role во время выполнения
  4. allow_duplicates и идемпотентность ролей
← Назад к DevOps Bootcamp