Умный инвентарь#

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

Предупреждение

Умный инвентарь считается устаревшим и не поддерживается. В одной из следующих версий Astra Automation Controller этот тип инвентаря станет недоступным для применения. В качестве замены следует использовать сборный инвентарь.

Умный инвентарь имеет следующие особенности:

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

  • Группы узлов импортируются из источников, но доступны только для просмотра – создать новые группы или изменить существующие нельзя.

Базовые настройки фильтрации узлов#

В самом простом случае запрос на выборку узлов формируется путем одновременного применения одного или нескольких фильтров из указанного списка:

  • enabled (Enabled / Подключен) – фильтр по статусу управляемого узла.

    Если значение фильтра равно true, отбираются только узлы со статусом Вкл (On).

  • group__name__icontains (Group / Группа) – фильтр по названию группы узлов.

    Отбираются узлы, которые принадлежат группе, в названии которой есть указанная подстрока. Поиск группы по названию производится без учета регистра.

  • instance_id (Instance ID / Идентификатор узла контроллера) – фильтр по идентификаторам узлов контроллера.

  • inventory_id (Inventory ID / Идентификатор инвентаря) – фильтр по идентификаторам инвентарных списков.

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

  • last_job (Last Job / Последнее задание) – фильтр по идентификатору последнего выполненного на узле задания.

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

  • name__icontains (Name / Название) – фильтр по названию узла.

    Отбираются узлы, в названии которых есть указанная подстрока. Поиск подстроки производится без учета регистра.

Пусть имеется следующий список управляемых узлов:

---
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:

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

  • Создать умный инвентарь с фильтром name__icontains со значением client-.

  • Создать умный инвентарь с фильтром group__name__icontains со значением clients.

  • Создать умный инвентарь сразу с двумя указанными выше фильтрами.

Расширенные настройки фильтрации узлов#

Умный инвентарь поддерживает расширенные настройки фильтрации узлов. В этом случае выражение поиска строится по следующей схеме:

<type>__<key>__<search_type> <value>

Здесь:

  • <type> – способ обработки нескольких условий фильтрации.

    Поддерживаются следующие значения:

    • or – это необязательное условие;

    • and – это обязательное условие.

  • <key> – название поля в свойствах узла или одного из связанных с ним ресурсов.

    Поддерживаются следующие значения:

    • ad_hoc_command_events – название событий, произошедших на управляемых узлах при выполнении специальных (ad-hoc) команд.

    • ad_hoc_commands – название специальной команды.

    • ansible_facts_modified – дата и время последнего обновления фактов Ansible.

      Совет

      Как правило, факты Ansible об управляемом узле обновляются при выполнении заданий.

    • ansible_facts – факт Ansible.

    • created_by – имена пользователей, создавших записи об управляемых узлах.

    • created – дата и время создания записи об управляемом узле.

    • description – описание управляемого узла.

    • enabled – выбор узлов по статусу в Astra Automation Controller.

    • groups – названия групп узлов.

    • id – идентификатор управляемого узла.

    • inventory_sources – источник инвентаря.

    • inventory – идентификатор инвентаря, из которого должны быть выбраны управляемые узла.

    • jobs – список идентификаторов заданий, выполненных на управляемом узле.

    • last_job_host_summary – статус выполнения последнего задания, выполненного на управляемом узле.

    • last_job – идентификатор последнего задания, выполненного на управляемом узле.

    • modified_by – имена пользователей, последними изменявших данные об управляемом узле.

    • modified – дата и время последнего изменения записи об управляемом узле.

    • name – название управляемого узла.

    • smart_inventories – названия умных инвентарных списков.

    • variables – фильтр узлов по названиям указанных в их данных переменных.

  • <search_type> – обработка значения, используемого в качестве фильтра.

    Поддерживаются следующие способы обработки указанного значения:

    • exact – точное совпадение с учетом регистра.

      Это значение используется по умолчанию.

    • gt – проверка условия «больше чем», >.

    • gte – проверка условия «больше или равно», ≥.

    • in – проверка на присутствие в указанном списке.

    • iregex – поиск по регулярному выражению без учета регистра.

    • isnull – проверка на пустое значение.

    • lt – проверка условия «меньше чем», <.

    • lte – проверка условия «меньше или равно», ≤.

    • regex – поиск по регулярному выражению с учетом регистра.

  • <value> – значение, используемое в качестве фильтра.

    Особенности ввода значений фильтрации:

    • Для ввода дробных чисел в качестве разделителя следует использовать символ точки, например, 3.1415926.

    • Для ввода дат следует использовать формат YYYY-MM-DD, где:

      • YYYY – четырехзначное значение года, например, 2024.

      • MM – двузначеное значение месяца. Отсчет месяцев начинается с 01.

      • DD – двузначное значение числа. Отсчет чисел начинается с 01.

    • Для ввода времени следует использовать формат HH:MM:ssuuuuuuTZ, где:

      • HH – двузначное значение часа в 24-часовом формате, например, 07.

      • MM – двузначное значение минут, от 00 до 59.

      • (опционально) ss – двузначное значение секунд, от 00 до 59.

      • (опционально) uuuuuu – микросекунды.

      • (опционально) TZ – название временной зоны.