0Pricing
Ansible Academy · Урок

Каталоги group_vars и host_vars

Организуйте переменные по узлам и группам

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

Не встраивайте переменные в код

Если прятать значения внутри плейбуков, быстро возникает беспорядок. Вместо этого Ansible автоматически загружает переменные из каталогов group_vars и host_vars. 🗂️

Как загружается group_vars

Файл в group_vars, названный в честь группы, применяется ко всем хостам этой группы — вручную подключать его не нужно.

# group_vars/webservers.yml
http_port: 80
worker_processes: 4

Группа all

Специальный файл group_vars/all.yml задаёт значения по умолчанию для каждого хоста в Вашем инвентаре и отлично подходит для настроек всей организации.

# group_vars/all.yml
timezone: UTC
ntp_server: pool.ntp.org

Как загружается host_vars

Файлы в host_vars получают имя отдельного хоста и применяются только к этой машине, что идеально подходит для индивидуальных переопределений серверов.

# host_vars/web01.example.com.yml
server_id: 1
backup_disk: /dev/sdb

Имя должно совпадать

Имя файла должно точно совпадать с именем группы или хоста в инвентаре, иначе Ansible молча не загрузит этот файл.

Файлы или каталоги

Каждый элемент может быть отдельным файлом .yml или каталогом с множеством файлов. Ansible объединяет все файлы внутри каталога.

group_vars/
  webservers/
    network.yml
    tuning.yml

Хост важнее группы

Если одна и та же переменная указана в обоих местах, host_vars имеет приоритет над group_vars. Более конкретная область действия всегда переопределяет более общую.

Приоритет дочерней группы

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

Относительно инвентаря

Сначала Ansible ищет эти каталоги рядом с файлом инвентаря, а также рядом с запускаемым плейбуком.

Ссылайтесь на них как обычно

Внутри задач Вы используете эти переменные так же, как любые другие, с синтаксисом {{ }}. Источник переменной задаче не виден.

- name: Open the web port
  debug:
    msg: "Port is {{ http_port }}"

Более понятные плейбуки

Когда данные вынесены отдельно, Ваши плейбуки описывают, что делать, а group_vars и host_vars хранят значения для отдельных окружений. 🎯

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

Переменная задана и в group_vars, и в host_vars. Какое значение будет использовано?

Повторение

Вы узнали, как group_vars и host_vars автоматически загружаются по имени, почему хост важнее группы, а дочерняя группа — родительской. Выносите данные отдельно и сохраняйте плейбуки чистыми. ✅

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

Урок «Каталоги group_vars и host_vars» бесплатный?

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

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

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

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

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

Сколько времени занимает урок «Каталоги group_vars и host_vars»?

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

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

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

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

  1. Рекомендуемая структура каталогов
  2. Каталоги group_vars и host_vars
  3. Разделение плейбуков с помощью import и include
  4. Именование, комментарии и стиль для масштабирования
← Назад к Ansible Academy