Реализация представлена в виде представления с SQL-запросом, собирающим всю необходимую информацию для последующей фильтрации.
Результатом выполнения представления является таблица со следующими параметрами:
- hostname - Имя компьютера;
- bios_version - Версия BIOS;
- is_password - Установлен ли пароль;
- boot_order - Последовательность загрузки устройств в виде идентификаторов;
- boot_current - Устройство, с которого загружена система;
- list_device - Список сопоставления идентификаторов и устроуств
Настройка отчёта состоит из 3-х этапов:
- Подготовка скрипта сбора данных;
- Подготовка выборки;
- Подготовка представления.
Для подготовки скрипта сбора данных необходимо выполнить следующие действия:
- Создать директиву, включающую элемент Shell сбора данных с текстом скрипта:
#!/bin/bash
isPassword=$(dmidecode -t 24 | grep Administrator | awk '{ print $3, $4 }')
echo $isPassword
efiboot_output=$(efibootmgr)
boot_entries=()
id_dev=0000
increment_id() {
id_dev=$(printf "%04d" $((10#$id_dev + 1)))
}
while IFS= read -r line; do
if [[ $line =~ ^Boot[0-9]{4}\* ]]; then
entry="${line#* }"
boot_entries+=("$id_dev:$entry,")
increment_id
elif [[ $line =~ (^BootCurrent) || $line =~ (^BootOrder) ]]; then
echo $line
fi
done <<< "$efiboot_output"
ListDevice=$(echo "${boot_entries[*]}" | sed 's/.$//')
echo "ListDevice: $ListDevice"
- Во вкладке Настройки указать требуемое расписание запуска скрипта, включить сбор статистики и результата. В свойствах добавить записи BootCurrent, BootOrder, ListDevice, Status;
- Назначить с помощью ассоциации созданную директиву на группу с целевыми компьютерами;
Для создания выборки необходимо выполнить следующие действия:
- Перейти в раздел Выборки;
- Создать новую выборку, при выборе свойств указать BIOS->Версия, Имя элемента созданного скрипта;
- В настройках выборки задать Имя в БД bios_info, имена свойств в БД sc_1, sc_2, sc_3, sc4, задать всем свойствам тип String;
- Сохранить выборку. В случае ошибки в веб-интерфейсе отобразится окно ошибки.
- В разделе Zodiac'а Представления создать новое представление с именем "Параметры BIOS" со следующим SQL-запросом:
SELECT co.hostname, bi.version AS bios_version, bi.sc_1 AS Is_Password, bi.sc_2 AS Boot_Order, bi.sc_3 AS Boot_Current, bi.sc_4 AS list_device
FROM public.bios_info AS bi JOIN public.computer AS co ON bi.cid = co.id
-
Перейти в подраздел Столбцы представления и выставить типы для следующих колонок:
- hostname - String;
- bios_version - String;
- is_password - String;
- boot_order - String;
- boot_current - String;
- list_device - String
-
Выставить для каждой колонки отображаемые имена (колонка Имя);
-
Сохранить созданное представление. В случае некорректной настройки появится предупреждение об ошибке.
Для применения представления необходимо выполнить следующие действия:
- Открыть в веб-интерфейсе Zodiac'а раздел Представления;
- Открыть представление Параметры BIOS;
- При помощи фильтра выставить ограничения на соответствующие поля;
- Выбрать опцию Экспорт, задать имя файла;
- Получить файл-отчёт формата .xlsx.
- Для корректной отработки скрипта на компьютере должен быть установлен пакет efibootmgr;
- Для корректной отработки скрипта операционная система компьютера должна запускаться при помощи UEFI.