Реализация представлена в виде представления с SQL-запросом, собирающим всю необходимую информацию для последующей фильтрации.
Результатом выполнения представления является таблица со следующими параметрами:
Настройка отчёта состоит из 3-х этапов:
Для подготовки скрипта сбора данных необходимо выполнить следующие действия:
#!/bin/bash
groups=$(getent group | cut -d: -f1)
for group in $groups; do
members=$(getent group "$group" | cut -d: -f4 | tr ',' ' ')
echo "Group: $group"
echo "Members: $members"
echo ""
done
Для создания выборки необходимо выполнить следующие действия:
1. Перейти в раздел Выборки;
2. Создать новую выборку, при выборе свойств указать Имя элемента созданного скрипта;
3. В настройках выборки задать Имя в БД GroupMembers, имена свойств в БД members и group, задать всем свойствам тип String;
4. Сохранить выборку. В случае ошибки в веб-интерфейсе отобразится окно ошибки.
SELECT
computer.hostname AS hostname,
group_users."group" AS group_name,
group_users.members AS members
FROM public."GroupMembers" AS group_users
JOIN public.computer ON group_users.cid = computer.id
JOIN public.group_to_computer ON computer.id = group_to_computer.computer_id
JOIN public."group" AS gr ON gr.id = group_to_computer.group_id
WHERE gr."name" = {0}
Перейти в подраздел Столбцы представления и выставить типы для следующих колонок:
Выставить для каждой колонки отображаемые имена (колонка Имя);
Перейти из вкладки Столбцы во вкладку Условия, выставить имя Группа серверов, нажать на иконку пера;
В появившемся окне задать следующий SQL-запрос:
SELECT "group".name FROM public."group" WHERE "group".id != -1
Для применения представления необходимо выполнить следующие действия: