0Pricing
Ansible Academy · Урок

Анатомия каталога роли

tasks, handlers, templates, defaults, vars

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

Роль — это дерево папок

Роль — это всего лишь каталог с фиксированным набором вложенных папок. Ansible знает каждую папку по имени и автоматически загружает её содержимое.

roles/
  nginx/
    tasks/
    handlers/
    templates/

tasks/main.yml — точка входа

Файл tasks/main.yml содержит основной список задач роли. Это первое, что Ansible запускает при применении роли.

tasks/main.yml:
- name: Install nginx
  ansible.builtin.package:
    name: nginx

handlers/ хранит логику перезапуска

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

templates/ для файлов Jinja2

Помещайте файлы шаблонов .j2 в templates/. Модуль шаблонов находит их там по имени, поэтому полный путь не требуется.

templates/
  nginx.conf.j2

files/ для статических файлов

Папка files хранит обычные файлы, которые копируются без изменений. Модуль копирования находит их автоматически, как и шаблоны.

defaults/ задаёт переменные низкого приоритета

Файл defaults/main.yml содержит переменные с самым низким приоритетом, поэтому пользователи могут легко переопределить их за пределами роли.

defaults/main.yml:
nginx_port: 80

vars/ задаёт переменные высокого приоритета

Файл vars/main.yml содержит переменные с более высоким приоритетом. Используйте его для значений, от которых зависит роль и которые должны меняться редко.

meta/main.yml описывает роль

Файл meta/main.yml содержит сведения об авторе роли, лицензии, поддерживаемых платформах и зависимостях роли.

main.yml — особое имя

В папках задач, обработчиков, переменных и значений по умолчанию Ansible автоматически загружает файл с именем main.yml. Именно это соглашение об именовании связывает всё воедино.

Нужно только то, что Вы используете

Роли не нужны все папки. Если шаблонов нет, просто не создавайте каталог templates. Ansible игнорирует отсутствующие необязательные папки.

tests/ и README для качества

Зрелые роли дополнительно содержат README и папку tests, чтобы другие могли понять и проверить Вашу автоматизацию перед использованием.

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

Вспомните, где находится основной список задач роли.

Итоги

Роль — это дерево папок, в котором для задач, обработчиков, шаблонов, файлов, значений по умолчанию, переменных и метаданных предусмотрено отдельное фиксированное место, а всё основано на main.yml. 📁

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

Урок «Анатомия каталога роли» бесплатный?

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

Чему я научусь в уроке «Анатомия каталога роли»?

tasks, handlers, templates, defaults, vars Ты практикуешь Ansible Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

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

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

Сколько времени занимает урок «Анатомия каталога роли»?

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

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

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

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

  1. Зачем нужны роли: от монолита к модулям
  2. Анатомия каталога роли
  3. Создание каркаса роли с ansible-galaxy init
  4. Применение ролей и передача переменных роли
← Назад к Ansible Academy