Обычный инвентарь#
Обычный инвентарь, также называемый просто инвентарем (inventory), имеет следующие особенности:
Сведения об управляемых узлах могут быть добавлены вручную или импортированы из внешнего источника, в том числе из файлов инвентаря Ansible, добавленных в проект.
Поддерживает использование переменных Ansible и групп узлов.
Источники сведений об управляемых узлах#
Импорт сведений об управляемых узлах из внешних источников имеет следующие особенности:
Если в качестве источника выбран отдельный файл, импортируются узлы только из него.
Если в качестве источника выбран каталог, импортируются узлы из всех размещенных в нем файлов, включая дочерние каталоги.
Поддерживается фильтрация узлов по названию с помощью регулярных выражений. Этот фильтр применяется в последнюю очередь, после всех остальных фильтров, предоставляемых используемым расширением (plug-in) инвентаря.
Пусть файл инвентаря содержит записи о тридцати управляемых узлах (диапазон IP-адресов от
10.1.0.1
до10.1.0.30
):--- all: hosts: # Контроллеры домена dc1.example.com: dc2.example.com: # Сервер печати cups.example.com: # Клиенты домена client01.example.com: client02.example.com: client03.example.com: # ... client30.example.com:
Для импорта только первых десяти клиентов домена (с
client01.example.com
поclient10.example.com
включительно) следует использовать регулярное выражение следующего вида:client([0][1-9]|10)\.example\.com
В описании импортированных узлов указывается значение imported.
Это значение можно изменить, добавив в файл инвентаря поле
_awx_description
для нужных узлов, например:--- domain-controllers: hosts: dc1.example.com: _awx_description: Primary domain controller dc2.example.com: _awx_description: First replica of domain controller
Если в файле инвентаря узел принадлежит одной или нескольким группам, в контроллере эти группы будут автоматически созданы, а узел включен в каждую из них.
Пусть файл инвентаря имеет следующий вид:
--- domain-controllers: # Контроллеры домена hosts: dc1.example.com: dc2.example.com: clients: # Клиенты домена hosts: client-1.example.com: client-2.example.com: client-3.example.com: client-4.example.com:
При импорте инвентаря в нем будут автоматически созданы группы
domain-controllers
иclients
, содержащие контроллеры домена и клиенты домена соответственно.Если в источнике группы узлов организованы иерархически, структура групп будет воссоздана при импорте.
Важно
Узлы дочерних групп не связываются с родительской группой автоматически – их нужно добавлять вручную.
Например, пусть есть инвентарь следующего вида:
--- all: hosts: node-[01:10].example.com: controllers: hosts: node-01.example.com: node-02.example.com: clients: hosts: node-[03:10].example.com: production: children: controllers: clients:
При импорте такого инвентаря будут созданы три группы –
production
,clients
иcontrollers
. Управляемые узлы будут связаны только с группамиclients
иcontrollers
.По умолчанию при повторной синхронизации инвентарного списка с источником импортированные ранее управляемые узлы, группы узлов и переменные не удаляются.
Поддерживается использование сценариев динамического создания инвентаря.
Подробности о динамическом создании инвентаря см. в документации Ansible.
Поддерживается синхронизация с источником по расписанию.
Поддержка расширений#
Automation Controller поддерживает следующие расширения инвентаря:
Тип источника |
Ссылка на руководство |
Amazon EC2 |
|
Google Compute Engine |
|
Диспетчер ресурсов Microsoft Azure |
|
VMware vCenter |
|
Red Hat Satellite 6 |
|
OpenStack |
|
Виртуализация Red Hat |
|
Платформа автоматизации Red Hat Tower |
|
Red Hat Insights |