Динамические группы¶
Динамические группы — это инструмент, позволяющий объединять устройства по заданным параметрам. Группировку можно выполнять на основе фактов Ansible, с использованием SQL-запросов или по результатам фильтра устройств
Подсказка
Страница «Динамические группы» доступна только при использовании локального сервера Управление конфигурациями (UEM)
Подсказка
По умолчанию на сервере уже есть пять предустановленных динамических групп, которые покрывают типовые сценарии:
Семейство OS — группировка по семейству ОС (Windows, Linux, macOS и т.д.) на основе факта
ansible_os_familyТип OS — группировка по дистрибутиву и его версии (например, «Ubuntu 22.04», «Windows 10») на основе фактов
ansible_distributionиansible_distribution_versionПодсеть — группировка устройств по принадлежности к одной подсети (
/24)Устройства Active Directory — группировка устройств, импортированных из Active Directory, по их месту в дереве AD
Устройства ОС — группировка устройств по парам факт-значений из инвентаризации (например, по марке, модели, версии установленного ПО)
Как это работает¶
В отличие от обычных групп, состав которых задаётся вручную, динамические группы формируются автоматически на основе данных самих устройств. Это позволяет получать актуальные группировки без ручного сопровождения
Группа описывается выражением, которое выполняется на сервере и возвращает список устройств. Поддерживаются три типа выражений:
Маска— Ansible-выражение, использующее факты устройств (ОС, подсеть, версия, пользовательские факты и т.д.)SQL запрос— SQL-запрос к базе данных сервера, возвращающий идентификаторы устройств и значение для группировкиГруппа из фильтра— фиксированный набор условий, заданный фильтром на странице Устройства
Результат выполнения выражения может быть сгруппирован по значению — тогда из одной записи «Динамической группы» автоматически создаётся набор «Загруженных динамических групп» (например, по одной на каждую найденную подсеть или версию ОС). Загруженные группы используются для запуска политик, фильтрации устройств, в области действия задач и в формах учётных записей пользователей
Важно
Состав загруженных динамических групп пересчитывается во время инвентаризации устройств:
при ручном нажатии на кнопку Проверить и загрузить динамические группы в свойствах группы — сервер запускает инвентаризацию на устройствах и по её результатам обновляет группировки;
при выполнении политики Инвентаризация устройств — после сбора фактов с устройства сервер пересчитывает его принадлежность к динамическим группам всех трёх типов.
Запуск других политик (установка ПО, выполнение команд и т.д.) не пересчитывает динамические группы — пока на устройстве не отработала инвентаризация, новые устройства в загруженные группы не попадают, а удалённые продолжают в них числиться
Чувствительность к регистру¶
Имена загруженных динамических групп сравниваются с учётом регистра. Если выражение возвращает значения, отличающиеся только регистром символов, сервер создаёт разные загруженные группы для каждого варианта написания
Важно
Например, если в одной из подсетей одно устройство называется office-pc01, второе — Office-PC01, а третье — OFFICE-PC01, и выражение группирует устройства по hostname, на вкладке Загруженные динамические группы появятся три отдельные группы с этими именами — по одному устройству в каждой. Политика, привязанная к одной из них, на остальные применяться не будет
Подсказка
Чтобы избежать расхождения, приводите значения к единому регистру прямо в выражении:
в
Маска— Ansible-фильтром| lower, например{{ ansible_hostname | lower }}в
SQL запрос— функциейLOWER(), напримерLOWER(hostname) AS hostname_keyв
Группа из фильтра— приводя само поле фильтра к нужному виду в карточке устройства
После изменения выражения нажмите Проверить и загрузить динамические группы и при необходимости удалите устаревшие загруженные группы вручную
Описание страницы¶
На странице «Динамические группы» отображено:
Кнопка Добавить Динамическую группу
Массовые действия
Таблица с возможностью настройки отображаемых столбцов
Добавление динамической группы¶
При нажатии на кнопку Добавить Динамическую группу откроется страница добавления динамической группы со следующими вкладками:
Основная информацияПоле Название группы — наименование динамической группы
Поле Тип группы — способ формирования группы:
Маска— на основе переменных и фактов AnsibleSQL запрос— на основе SQL-запроса к базе данных сервераГруппа из фильтра— на основе условий фильтра, заданного на странице «Устройства»Подсказка
Тип
Группа из фильтраустанавливается автоматически при создании динамической группы из применённого фильтра на странице Устройства — вручную выбрать его в выпадающем списке нельзяЧтобы создать такую группу: примените на странице «Устройства» нужные фильтры, затем нажмите кнопку Создать динамическую группу — откроется окно ввода названия. После сохранения текущий набор условий фильтра запишется в выражение группы, а её тип автоматически станет Группа из фильтра
Поле Выражение для создания динамической группы — выражение для создания динамической группы может быть представлено в виде набора переменных Ansible или SQL-запроса
Кнопка Проверить и загрузить динамические группы — кнопка служит для выполнения Ansible-выражений или SQL-запросов для группировки устройств
Загруженные динамические группыЭта вкладка содержит таблицу с результатами загрузки группы:
Название группы— имя загруженной (дочерней) динамической группыКоличество компьютеров— количество устройств, входящих в загруженную группу
Подсказка
При нажатии на количество устройств произойдёт переход на страницу Устройства с активным фильтром по выбранной загруженной группе
Массовые действия¶
Доступные действия:
Удалить выбранные динамические группы — удаляет выбранные динамические группы из таблицы
Экспортировать выбранные динамические группы — позволяет экспортировать в файл выбранные динамические группы
Примечание
После выбора данного действия нужно выбрать необходимый формат файла
Важно
В зависимости от прав действия могут отсутствовать
Для выполнения действия необходимо нажать на кнопку Выполнить
Удаление динамических групп¶
Для массового удаления динамических групп необходимо:
Отметить необходимые динамические группы в таблице
Выбрать действие Удалить выбранные динамические группы
Нажать на кнопку Выполнить
На открывшейся странице будет отображаться информация, какие динамические группы будут удалены
Нажать на кнопку Да, я уверен
Можно отменить данную операцию, нажав на кнопку Нет, отменить и вернуться к выбору
Выбранные динамические группы будут удалены
Экспорт динамических групп¶
Для массового экспорта динамических групп необходимо:
Отметить необходимые динамические группы в таблице
Выбрать действие Экспортировать выбранные динамические группы
Выбрать необходимый формат файла
Нажать на кнопку Выполнить
Файл будет загружен на устройство
Таблица¶
Таблица разбита по столбцам:
Название группы— показывает имя динамической группы
Тип группы— показывает тип группы: Маска, SQL запрос или Группа из фильтра
Выражение для создания динамической группы— Ansible-выражение, тело SQL-запроса или сохранённый набор правил фильтра в зависимости от типа группы
Операции¶
При нажатии на кнопку с правого края таблицы открывается контекстное меню
Доступные действия:
Редактировать— при выборе этого пункта откроются свойства динамической группы
Удалить— при выборе этого пункта динамическая группа будет удалена
История изменений— при выборе этого пункта будет отображена история динамической группы: создание/редактирование и пользователь, который выполнил данные операции
Свойства динамических групп¶
Редактирование¶
При нажатии на кнопку Редактировать откроется страница свойств
После чего откроется страница со свойствами динамической группы для изменения. Подробнее о вкладках и полях
Меню действий¶
Имеет следующие возможности:
Сохранить — производит сохранение внесенных изменений и перенаправляет на страницу «Динамические группы»
Сохранить и продолжить — производит сохранение внесенных изменений и позволяет остаться на странице редактирования для выполнения дальнейших операций
Удалить — производит удаление динамической группы и перенаправляет на страницу «Динамические группы»
Примечание
После нажатия на кнопку Удалить откроется страница подтверждения удаления динамической группы
После подтверждения удаления динамической группы произойдет переход на страницу «Динамические группы» и появится уведомление Динамическая группа «НАЗВАНИЕ_ГРУППЫ» была успешно удалена
История изменений — отображает все изменения, выполненные для этой динамической группы
Пример¶
Маска¶
Пример создания динамической группы для разделения устройств по подсетям на основе Ansible-фактов
Для создания динамической группы необходимо:
Нажать на кнопку Добавить Динамическую группу
Заполнить поля:
Поле Название группы — Группировка по подсетям
Поле Тип группы — Маска
Поле Выражение для создания динамической группы:
{{ ansible_facts | ip_subnet_filter | regex_replace('[/\.]', '_') }}Нажать на кнопку Проверить и загрузить динамические группы
После этого откроется окно загрузки динамических групп, и начнется процесс их создания
После завершения загрузки динамических групп необходимо нажать на кнопку Закрыть
Автоматически откроется вкладка «Загруженные динамические группы», где будут отображены динамические группы и количество устройств в них
SQL запрос¶
Пример создания динамической группы для разделения устройств по подсетям на основе SQL-запроса
Для создания динамической группы необходимо:
Нажать на кнопку Добавить Динамическую группу
Заполнить поля:
Поле Название группы — Группировка по подсетям
Поле Тип группы — SQL-запрос
Поле Выражение для создания динамической группы:
SELECT network(set_masklen(split_part(addr, ':', 1)::INET, 24)) AS subnet, ARRAY_AGG(id) AS device_ids FROM peers_server GROUP BY subnet;
Нажать на кнопку Проверить и загрузить динамические группы
После этого откроется окно загрузки динамических групп, и начнется процесс их создания
После завершения загрузки динамических групп необходимо нажать на кнопку Закрыть
Автоматически откроется вкладка «Загруженные динамические группы», где будут отображены динамические группы и количество устройств в них
Пример создания динамической группы для разделения устройств по версии клиента RuDesktop на основе SQL-запроса
Для создания динамической группы необходимо:
Нажать на кнопку Добавить Динамическую группу
Заполнить поля:
Поле Название группы — Группировка по версии клиента
Поле Тип группы — SQL-запрос
Поле Выражение для создания динамической группы:
SELECT version AS value, array_agg(id) AS servers FROM peers_server GROUP BY version;
Нажать на кнопку Проверить и загрузить динамические группы
После этого откроется окно загрузки динамических групп, и начнется процесс их создания
После завершения загрузки динамических групп необходимо нажать на кнопку Закрыть
Автоматически откроется вкладка «Загруженные динамические группы», где будут отображены динамические группы и количество устройств в них