Вложенные группы и ключевое слово children
Создавайте иерархии групп групп.
«Вложенные группы и ключевое слово children» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Группы внутри групп
Иногда требуется группа, состоящая из других групп. В Ansible это называется группой групп и создаётся с помощью ключевого слова children.
Ключевое слово children в INI
В INI заголовок вроде [prod:children] объявляет родительскую группу, участниками которой являются имена других групп, а не узлы.
[prod:children]
web
dbСначала определите дочерние группы
Дочерние группы должны существовать и иметь собственные узлы. Затем родительская группа просто ссылается на них по имени.
[web]
web1.example.com
[db]
db1.example.comУзлы объединяются в родительскую группу
Выберите prod, и Ansible подключится ко всем узлам внутри web и db. Одно имя теперь охватывает целую среду.
ansible prod -i inventory.ini --list-hostsВложенность в YAML
YAML естественным образом поддерживает вложенность: группа перечисляет другие группы под собственным ключом children, причём глубина вложенности не ограничена.
all:
children:
prod:
children:
web:
db:Создавайте настоящие иерархии
Объединяйте уровни, например регион и роль: datacenter содержит prod, а prod содержит web и db. Инвентарь отражает структуру Вашей организации.
[datacenter:children]
prod
stagingУзел наследует каждую родительскую группу
Если web — дочерняя группа prod, узел web входит и в web, и в prod, и в all. Принадлежность автоматически передаётся вверх.
Переменные передаются вниз
Задайте переменную в родительской группе, и каждый дочерний узел унаследует её, если только более конкретная группа не переопределит значение.
[prod:vars]
env=productionИзбегайте циклических дочерних групп
Группа не может быть дочерней для самой себя — напрямую или через цикл. Ansible отклоняет циклические иерархии при разборе.
Проверьте дерево
Используйте граф инвентаря, чтобы наглядно увидеть вложенность. Флаг --graph рисует родителей и их дочерние группы в виде дерева.
ansible-inventory -i inventory.ini --graphИерархия помогает управлять масштабом
Вложенные группы позволяют точно выбирать prod или web-prod. По мере роста парка машин children поддерживает как широкое, так и точечное управление.
Быстрая проверка
Вам нужна родительская группа, участниками которой являются группы web и db. Какой заголовок INI Вы используете?
Повторение
Ключевое слово children вкладывает группы в иерархии. Узлы наследуют всех родителей, а переменные групп передаются вниз по дереву. 🌳
Часто задаваемые вопросы
Урок «Вложенные группы и ключевое слово children» бесплатный?
Да — полный текст урока «Вложенные группы и ключевое слово children» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Вложенные группы и ключевое слово children»?
Создавайте иерархии групп групп. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Вложенные группы и ключевое слово children»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Файлы инвентаря INI и YAML
- Группировка узлов: web, db и app
- Вложенные группы и ключевое слово children
- Переменные узлов и групп в инвентаре