Local account group members from servers
Описание реализации
Реализация представлена в виде представления с SQL-запросом, собирающим всю необходимую информацию для последующей фильтрации.
Описание вывода
Результатом выполнения представления является таблица со следующими параметрами:
- hostname - Имя компьютера;
- group_name - Имя локальной группы;
- members - Члены локальной группы.
Действия по настройке отчёта
Настройка отчёта состоит из 3-х этапов:
- Подготовка скрипта сбора данных;
- Подготовка выборки;
- Подготовка представления.
Подготовка скрипта сбора данных
Для подготовки скрипта сбора данных необходимо выполнить следующие действия:
- Создать директиву, включающую элемент Shell сбора данных с текстом скрипта:
#!/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
- Во вкладке Настройки указать требуемое расписание запуска скрипта, включить сбор статистики и результата. В свойствах добавить записи Group, Members;
- Назначить с помощью ассоциации созданную директиву на группу с целевыми компьютерами;
Подготовка выборки
Для создания выборки необходимо выполнить следующие действия:
1. Перейти в раздел Выборки;
2. Создать новую выборку, при выборе свойств указать Имя элемента созданного скрипта;
3. В настройках выборки задать Имя в БД GroupMembers, имена свойств в БД members и group, задать всем свойствам тип String;
4. Сохранить выборку. В случае ошибки в веб-интерфейсе отобразится окно ошибки.
Подготовка представления
- В разделе Zodiac'а Представления создать новое представление с именем "Local account group members from servers" со следующим SQL-запросом:
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}
-
Перейти в подраздел Столбцы представления и выставить типы для следующих колонок:
- hostname - String;
- group_name - String;
- members - String.
-
Выставить для каждой колонки отображаемые имена (колонка Имя);
-
Перейти из вкладки Столбцы во вкладку Условия, выставить имя Группа серверов, нажать на иконку пера;
-
В появившемся окне задать следующий SQL-запрос:
SELECT "group".name FROM public."group" WHERE "group".id != -1
- Во вкладке окна Конфигурация и предпросмотр задать Тип условия: Одиночное значение, Возвращаемое значение: name, Отображаемое значение: name.
- Нажать Применить, сохранить созданное представление. В случае некорректной настройки появится предупреждение об ошибке.
Действия по применению
Для применения представления необходимо выполнить следующие действия:
- Открыть в веб-интерфейсе Zodiac'а раздел Представления;
- Открыть представление Local account group members from servers;
- Выбрать группу с серверами
- Выбрать опцию Экспорт, задать имя файла;
- Получить файл-отчёт формата .xlsx.