Обычный инвентарь#

Обычный инвентарь, также называемый просто инвентарем (inventory), имеет следующие особенности:

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

  • Поддерживает использование переменных Ansible и групп узлов.

Источники сведений об управляемых узлах#

Импорт сведений об управляемых узлах из внешних источников имеет следующие особенности:

  • Если в качестве источника выбран отдельный файл, импортируются узлы только из него.

  • Если в качестве источника выбран каталог, импортируются узлы из всех размещенных в нем файлов, включая дочерние каталоги.

  • Поддерживается фильтрация узлов по названию с помощью регулярных выражений. Этот фильтр применяется в последнюю очередь, после всех остальных фильтров, предоставляемых используемым расширением (plug-in) инвентаря.

    Пусть файл инвентаря содержит записи о тридцати управляемых узлах (диапазон IP-адресов от 10.1.0.1 до 10.1.0.30):

    ---
    all:
      hosts:
        # Контроллеры домена
        dc1.example.ru:
        dc2.example.ru:
        # Сервер печати
        cups.example.ru:
        # Клиенты домена
        client01.example.ru:
        client02.example.ru:
        client03.example.ru:
        # ...
        client30.example.ru:
    

    Для импорта только первых десяти клиентов домена (с client01.example.ru по client10.example.ru включительно) следует использовать регулярное выражение следующего вида:

    client([0][1-9]|10)\.example\.ru
    
  • В описании импортированных узлов указывается значение 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.ru:
    controllers:
      hosts:
        node-01.example.ru:
        node-02.example.ru:
    clients:
      hosts:
        node-[03:10].example.ru:
    production:
      children:
        controllers:
        clients:
    

    При импорте такого инвентаря будут созданы три группы – production, clients и controllers. Управляемые узлы будут связаны только с группами clients и controllers.

  • По умолчанию при повторной синхронизации инвентарного списка с источником импортированные ранее управляемые узлы, группы узлов и переменные не удаляются.

  • Поддерживается использование сценариев динамического создания инвентаря.

    Подробности о динамическом создании инвентаря см. в документации Ansible.

  • Поддерживается синхронизация с источником по расписанию.

Поддержка расширений#

Astra Automation Controller поддерживает следующие расширения инвентаря:

Тип источника

Ссылка на руководство

Amazon EC2

aws_ec2_inventory

Google Compute Engine

gcp_compute_inventory

Диспетчер ресурсов Microsoft Azure

azure_rm_inventory

VMware vCenter

vmware_vm_inventory_inventory

Red Hat Satellite 6

foreman_inventory

OpenStack

oprenstack_inventory

Виртуализация Red Hat

ovirt_inventory

Платформа автоматизации Red Hat Tower

tower_inventory

Red Hat Insights

insights_inventory