Применение ролей и передача переменных роли
Подключите роль и задайте её параметры
«Применение ролей и передача переменных роли» — бесплатный урок Ansible Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ansible Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ansible Academy содержит 4 уроков всего.
Применяйте роль с помощью roles:
Самый простой способ использовать роль — ключ roles в игре. Укажите имена ролей, и Ansible выполнит их по очереди.
- hosts: web
roles:
- nginx
- firewallРоли выполняются до задач
Роли, указанные в разделе roles, выполняются до любых задач в той же игре. Помните об этом порядке, смешивая роли и задачи.
Передавайте переменные непосредственно
Чтобы настроить роль, передайте переменные непосредственно в месте её применения. Ansible передаст их роли, переопределив значения по умолчанию.
roles:
- role: nginx
nginx_port: 8080Ключ role: задаёт это явно
При передаче переменных используйте ключ role, чтобы указать роль, а затем добавьте переменные как соседние ключи под ним.
- role: postgres
db_name: shop
db_user: adminЗначения по умолчанию — резервный вариант
Если Вы не передали переменную, роль использует её значение из defaults/main.yml. Поэтому каждая роль работает сразу после установки.
Переопределяйте одну роль дважды
Вы можете применить одну роль несколько раз с разными переменными, например настроить два экземпляра базы данных с помощью одной роли.
Переменные групп доступны и ролям
Переменные из group_vars и host_vars автоматически передаются ролям, применяемым к этим узлам, поэтому передавать их непосредственно не требуется.
vars_files сохраняет чистоту игр
Вынесите настройки роли из игры в отдельный файл с помощью vars_files, чтобы плейбук оставался коротким и удобным для чтения.
vars_files:
- web_settings.ymlinclude_role запускает роль в середине игры
Нужна роль в середине списка задач? Используйте include_role как задачу, чтобы применить её динамически именно в этом месте.
- name: Set up nginx
ansible.builtin.include_role:
name: nginxДокументируйте принимаемые переменные
Хорошая роль перечисляет ожидаемые переменные в README. Понятные входные данные делают роль удобной и безопасной для повторного использования кем угодно.
Одна роль — много серверов
Применяйте одну и ту же параметризованную роль к множеству узлов, настраивая каждый из них разными переменными. Это повторное использование без переписывания ни одной задачи.
Быстрая проверка
Подумайте, как переопределить значение роли по умолчанию при её применении.
Итоги
Применяйте роли с помощью ключа roles, передавайте переменные непосредственно для переопределения значений по умолчанию и повторно используйте одну параметризованную роль на множестве узлов. 🚀
Часто задаваемые вопросы
Урок «Применение ролей и передача переменных роли» бесплатный?
Да — полный текст урока «Применение ролей и передача переменных роли» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ansible Academy, подпишись на CoddyKit PRO. Курс Ansible Academy содержит 4 уроков всего.
Чему я научусь в уроке «Применение ролей и передача переменных роли»?
Подключите роль и задайте её параметры Ты практикуешь Ansible Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ansible Academy?
Предыдущий опыт не требуется. Ansible Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Применение ролей и передача переменных роли»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ansible Academy?
Да. Каждый урок Ansible Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Зачем нужны роли: от монолита к модулям
- Анатомия каталога роли
- Создание каркаса роли с ansible-galaxy init
- Применение ролей и передача переменных роли