Перейти к основному содержанию

GLPI — инвентаризация vCenter и ESXi через GLPI Inventory

GLPI

GLPI (Gestionnaire Libre de Parc Informatique) – это open-source ITSM система для работы с заявками и инцидентами, а также для инвентаризации оборудования и программного обеспечения.

GLPI поддерживает:

  • Инвентаризацию компьютеров, периферийного оборудования, сетевых принтеров и связанных компонентов через плагины
  • Управление заявками и инцидентами
  • Управление лицензиями, договорами (ITIL)
  • Связывание пользователей и групп по географическому положению
  • Управление деловой и финансовой информацией (договоры)
  • Управление статусом объектов
  • Поддержка базы знаний и Часто задаваемых вопросов (FAQ)
  • Генераторы отчетов
  • Поддерживаются базы данных MySQL/MariaDB
  • Поддержка UTF8
  • Система оповещения о событиях

Функциональность GLPI может быть расширена с помощью плагинов. Может использоваться в качестве CMDB.

glpi-project.org

github.com/glpi-project/glpi/releases

glpi

Сегодня нас интересует автоматизация инвентаризации vCenter, хостов ESXi и виртуальных машин.

Раньше для этих целей использовался плагин FusionInventory, теперь вместо него GLPI Inventory. Следует знать, что плагин glpiinventory — это форк плагина fusioninventory, который был создан и поддерживается командой ядра GLPI для совместимости со старыми приложениями. Вероятно, когда все функции плагина GLPI Inventory будут перенесены в GLPI, плагин перестанет существовать. Возможно, именно поэтому нет никакой документации для GLPI Inventory.

github.com/glpi-project/glpi-inventory-plugin

GLPI Inventory поддерживает выполнение задач:

  • Сетевое обнаружение и инвентаризация (SNMP)
  • Развёртывание ПО
  • Удалённая инвентаризация VMWare ESX хостов
  • Сбор данных (файлы, реестр Windows, WMI)

Сразу отметим важную вещь. Плагин GLPI Inventory выполняет задачи через агента GLPI Agent. Т.е. сервер GLPI будет коннектиться к какому-то агенту (я буду использовать агент на самом сервере GLPI) и давать ему указания выполнить ту или иную задачу. Соответственно, агент должен уметь работать в VMware. Для этого понадобится можно скачать для агента дополнительный пакет для задачи ESX

github.com/glpi-project/glpi-agent

glpi

Скачиваю для своей версии агента на GLPI нужный пакет glpi-agent-task-esx_1.7.3-1_all.deb и устанавливаю.

dpkg -i glpi-agent-task-esx_1.7.3-1_all.deb
service glpi-agent restart

Перезапускаем агент и форсируем обмен данными с GLPI:

service glpi-agent restart
glpi-agent --force

Подразумевается, что у нас всё установлено, настроено и работает. Агент мониторится.

glpi

Устанавливаем плагин GLPI. Заметим, что сначала я поставил FusionInventory, но он не захотел работать:

This plugin requires GLPI >= 10.0.6 and < 10.0.7.

glpi

Конфигурируем плагин. Активируем модуль VMware host remote inventory.

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

glpi

Переходим к настройке агента, который мы будем использовать для инвентаризации vCenter. GLPI Inventory → General → Agents management.

glpi

Находим агент.

glpi

Убеждаемся, что агент поддерживает сканирование ESXi. В разделе Agents в блоке Supported Tasks должна стоять галка:

  • ESX Remote Inventory.

glpi

Переключаемся в раздел Agents modules и включаем галку:

  • VMware host remote inventory

Сохраняем конфигурацию, Update.

glpi

Создаем в vCenter локального пользователя, например, glpi-vcenter. Даём ему права на чтение.

glpi

GLPI Inventory → Networking → Authentication for remote devices (VMware). Добавляем пользователя для аутентификации, которого мы создали. Указываем логин (он будет glpi-vcenter@vsphere.local) и пароль.

glpi

GLPI Inventory → Networking → Remote devices to inventory (VMware). Добавляем vCenter (или хост ESXi).

glpi

Понадобится указать IP и пользователя, под которым логиниться.

glpi

ДОСТУПЫ: Агенту GLPI, который мы будем использовать, потребуется доступ к vCenter по TCP 443.

GLPI Inventory → Tasks → Task management. Создаём задачу.

glpi

Указываем в разделе Task management название и поля:

  • Permit to re-prepare task after run — включаем
  • Active — включаем
  • Schedule start — не указываем
  • Schedule end — не указываем
  • Preparation timeslot — временно не указываем, потом настроите как вам нужно
  • Execution timeslot — временно не указываем, потом настроите как вам нужно
  • Agent wakeup interval (in minutes — 1 минута
  • Number of agents to wake up — 1

Save.

glpi

В разделе Job configuration добавляем:

  • Module method — VMware host remote inventory
  • Targets — выбираем добавленный vCenter или ESXi хост
  • Actors — выбираем агента, который мы будем использовать для инвентаризации vCenter

Update.

glpi

Возвращаемся в раздел Task management: Force start.

Переходим в раздел Job Executions. Сначала наша задача висит в Not done yet в статусе Prepared.

glpi

Для выполнение задачи нужно, чтобы агент GLPI синхронизировался с сервером GLPI. Можно его пнуть:

glpi-agent --force

Агент начнёт выполнять задачу ESX.

glpi

Задача в статусе Running.

glpi

Минут через N-дцать задача выполнится, Successful.

glpi

Мы инвентаризировали vCenter, хосты и виртуалки в полуручном режиме. Осталось настроить слоты времени, с этим сами справитесь, я пока сам до конца не разобрался как лучше сделать.

Доработки

Вот эту галку надо: "Re-prepare successful jobs". Save.

glpi

Автоматизация

Создаём временные слоты.

glpi

Сначала создадим временный слот для подготовки, когда будем "взводить" задачу на сканирование.

  • vCenter Prepare Time slot

glpi

Второй слот для выполнения.

  • vCenter Execute Time slot

glpi

Редактируем задачу. Указываем наши слоты в полях:

  • Preparation timeslot — vCenter Prepare Time slot
  • Execution timeslot — vCenter Execute Time slot

glpi

Запуск, естественно, будет выполняться в тот момент времени, когда произойдёт синхронизация агента.

Ну и самое главное, GLPI должен уметь выполнять задачи по расписанию, нужно настроить CRONTAB!

sudo -u www-data crontab -e

И добавляем ежеминутный запуск крона, путь свой укажите:

* * * * * php /var/www/html/glpi/front/cron.php

glpi

 

Похожие материалы

ESXi-Customizer — утилита для добавление драйверов в образ ESXi

ESXi-Customizer — отличный помощник для добавления сторонних драйверов в ISO образ ESXi. Представлен в двух видах: Графическая утилита ESXi-Customizer для старых версий ESXi. Powershell скрипт ESXi-Customizer-PS. Работает с версиями ESXi 5.0 - 6.7.