GLPI p11

Материал из ALT Linux Wiki
(перенаправлено с «Участник:Polipoki»)

Ссылка на устаревшую версию статьи по glpi: https://www.altlinux.org/GLPI_(старая_версия)

Примечание: Ниже представлена краткая обновленная инструкция по развертыванию GLPI на p11 для обеспечения инвентаризации оборудования и программного обеспечения клиентских узлов через плагин glpi-inventory.

Вводные


Сервер GLPI: Альт Сервер 11.0 (ip: 192.168.100.42, версия ядра: 6.12.45-6.12-alt1);
Клиентские узлы:

  • Альт Рабочая станция 11.0;
  • Windows 10;
  • Ubuntu 24.04.3 LTS;
  • CentOS Stream 9.

glpi: glpi-10.0.20
glpi-inventory: glpi-glpiinventory-1.5.0
glpi-agent: glpi-agent-1.12

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

# apt-get update
# apt-get dist-upgrade
# update-kernel
# reboot

Установка GLPI и настройка БД MariaDB на Альт Сервер 11.0


  • Выполним установку следующих пакетов:
# apt-get install glpi glpi-apache2 glpi-php8.4 apache2-mod_php8.4 mariadb-server

После включим и добавим в автозагрузку следующие службы: mysqld (mariadb) и httpd2 (apache).

# systemctl enable --now mysqld
# systemctl enable --now httpd2
  • Далее необходимо выполнить запуск скрипта /usr/bin/mysql_secure_installation для первоначальной настройки сервера MariaDB.

Он требует интерактивного взаимодействия, в связи с чем можно написать простой скрипт (например, mysql_secure.sh) для более упрощенной работы с ним, заранее указав готовые ответы.

# cd /usr/local/bin/
# touch mysql_secure.sh
# chmod +x  mysql_secure.sh

Содержимое скрипта mysql_secure.sh:

#!/usr/bin/expect -f

set timeout -1
set PASSWD "Password"

spawn /usr/bin/mysql_secure_installation
expect "Enter current password for root (enter for none):" 
send "\r"

expect {
	"Enable unix_socket authentication?" { send "y\r" }
	"Switch to unix_socket authentication" { send "y\r" }
}

expect "Change the root password?"
send "y\r"

expect "New password:"
send "$PASSWD\r"

expect "Re-enter new password:"
send "$PASSWD\r"

expect "Remove anonymous users?"
send "y\r"

expect "Disallow root login remotely?"
send "n\r"

expect "Remove test database and access to it?"
send "y\r"

expect "Reload privilege tables now?"
send "y\r"

expect eof

Выполним запуск скрипта:

# mysql_secure.sh
spawn /usr/bin/mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

Enable unix_socket authentication? [Y/n] y
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
  • После выполним создание базы данных glpi, соответствующего пользователя и назначим ему необходимые привилегии для доступа и управления созданной базой.
# cd /usr/local/bin/
# touch mysql_create_db.sh
# chmod +x mysql_create_db.sh

Содержимое скрипта mysql_create_db.sh:

#!/bin/bash

PASSWD="Password"

CREATE_DATABASE="CREATE DATABASE IF NOT EXISTS glpi;"
CREATE_USER="DROP USER IF EXISTS 'dbuser'@'%'; CREATE USER dbuser@'%' IDENTIFIED BY '$PASSWD';"
GRANT_PRIV="GRANT ALL PRIVILEGES ON glpi.* TO 'dbuser'@'%'; FLUSH PRIVILEGES;"

mysql -u root -p"$PASSWD" -e "$CREATE_DATABASE$CREATE_USER$GRANT_PRIV"

Выполним запуск скрипта:

# mysql_create_db.sh
  • Дополнительно необходимо предоставить возможность удаленного клиентского доступа к серверу mariadb. По умолчанию прослушивает только unix_socket. Порт 3306 закрыт.
# ss -lnp | grep mysql
u_str LISTEN 0      80                                    /mysql.sock 11511                  * 0    users:(("mysqld",pid=4499,fd=3))

Чтобы это исправить, необходимо внести в конфигурационный файл /etc/my.cnf.d/server.cnf следующие изменения:

# sed -i '/^skip-networking/s/^/#/' /etc/my.cnf.d/server.cnf
# sed -i '/^bind-address/s/^/#/' /etc/my.cnf.d/server.cnf

либо выполнить следующую команду:

# control mysqld server

После перезапустим службу:

# systemctl restart mysqld.service
  • Удостоверимся, что настройки применились корректно и доступ к базе происходит успешно:
# cat /etc/my.cnf.d/server.cnf | grep -E "bind-address|skip-net"
#skip-networking
#bind-address=192.168.100.1
# ss -lnp | grep mysql
u_str LISTEN 0      80                                    /mysql.sock 14981                  * 0    users:(("mysqld",pid=5435,fd=5))                                                                                                                                      
tcp   LISTEN 0      80                                        0.0.0.0:3306             0.0.0.0:*    users:(("mysqld",pid=5435,fd=3))                                                                                                                                      
tcp   LISTEN 0      80                                           [::]:3306                [::]:*    users:(("mysqld",pid=5435,fd=4))
# mysql -u dbuser -p'Password' glpi
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.11.14-MariaDB-alt1 (ALT p11)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [glpi]> exit
Bye
# mysql -u dbuser -p'Password' -h 127.0.0.1 glpi
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.11.14-MariaDB-alt1 (ALT p11)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [glpi]> exit
Bye

Инсталляция GLPI через командную строку


Примечание: GLPI предоставляет возможность выполнить инсталляцию через веб - интерфейс (http://<ip_address_server>/glpi/) либо через командную строку. Ниже приведен пример инсталляции GLPI через CLI.
  • Перед инсталляцией glpi необходимо отредактировать конфигурационный файл /etc/php/8.4/apache2-mod_php/php.ini, внеся следующие изменения для обеспечения минимальной безопасности в сеансовых файлах cookie:
# sed -i '/session.cookie_httponly/s/^;\|#\+//' /etc/php/8.4/apache2-mod_php/php.ini
# sed -i 's|session.cookie_httponly =|session.cookie_httponly = on|g' /etc/php/8.4/apache2-mod_php/php.ini

где:

  • session.cookie_secure - директива php, которая должна быть установлена в значение “on”, если доступ к GLPI осуществляется по протоколу HTTPS;
  • session.cookie_httponly - директива php, которая должна быть установлена в значение “on”, чтобы предотвратить доступ скрипта на стороне клиента к значениям cookie.

Удостоверимся, что внесенные изменения применились.

# cat /etc/php/8.4/apache2-mod_php/php.ini | grep -E session.cookie_httponly
session.cookie_httponly = on

Выполним перезапуск службы httpd2:

# systemctl restart httpd2.service
  • Произведем инсталляцию glpi.

Выполнить инсталляцию можно через веб-интерфейс GLPI, введя в строке браузера https://<ip_address_server>/glpi/ либо через командную строку. Ниже приведен пример инсталляции через CLI.

# su -s /bin/sh -c  "php /var/www/webapps/glpi/bin/console db:install --default-language=ru_RU --db-name=glpi --db-user=dbuser --db-password='Password' --db-host=127.0.0.1 --no-telemetry -n" apache2
Примечание: Инсталляцию необходимо производить от имени пользователя apache2, иначе будут сбиты разрешения на доступ к определенным файлам и каталогам и доступ к веб-интерфейсу glpi будет отсутствовать либо пользователь будет иметь ограниченные права.


Для доступа к веб-интерфейсу glpi необходимо ввести следующий url в строку браузера http://192.168.100.42/glpi/

Auth glpi.png
Примечание:

По умолчанию логины / пароли:

  • glpi/glpi для учетной записи администратора;
  • tech/tech для технической учетной записи;
  • normal/normal для обычной учетной записи;
  • post-only/postonly только для подачи заявок.

Внешний вид веб-интерфейса GLPI:

Веб интерфейс glpi.png

Инсталляция GLPI через веб интерфейс


Как ранее было сказано, инсталляцию GLPI также можно произвести через веб - интерфейс, введя в строке браузера следующий адрес: http://<ip_address_server>/glpi. Если инсталляция ранее не выполнялась, то произойдет автоматический redirect на страницу инсталляции http://<ip_address_server>/glpi/install/install.php.
Ниже приведен пример инсталляции glpi через веб-интерфейс.

Glpi setup - выбор языка.png


Glpi setup - лицензия.png


Glpi setup - начало установки.png

На следующей странице представлена проверка окружения на совместимость с GLPI.

Glpi setup - проверка окружения1.png
Glpi setup - проверка окружения2.png

Далее необходимо произвести установку соединения с базой данных.

Glpi setup - установка соединения с БД.png

Соединение с БД успешно установлено. Далее необходимо выбрать уже ранее созданную базу данных.

Glpi setup - выбор БД.png

На следующем шаге производится инициализация базы данных.

Glpi setup - инициализация БД.png

Если инициализация пройдет успешно, будет выведено соответствующее сообщение.

Glpi setup - статус инициализации БД.png


Glpi setup - сбор данных.png


Glpi setup - шаг 5.png

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

Glpi setup - окончание установки.png

Установка glpi-inventory-plugin На Альт Сервер 11.0


На текущий момент для возможности производить инвентаризацию аппаратного и программного обеспечения необходимо установить в систему плагин glpi-inventory. https://plugins.glpi-project.org/#/plugin/glpiinventory

Примечание: В данном случае мы выполним установку версии glpi-glpiinventory-1.5.0 , которая совместима с версиями glpi ~ 10.0.11 и в данном случае подходит для нашей версии glpi.

Скачаем архив плагина, после чего распакуем его в каталог, в котором хранятся все плагины GLPI.

# wget https://github.com/glpi-project/glpi-inventory-plugin/releases/download/1.5.0/glpi-glpiinventory-1.5.0.tar.bz2
# tar -xjf glpi-glpiinventory-1.5.0.tar.bz2 -C /var/www/webapps/glpi/plugins/
Примечание: Инсталляция и активация будет производиться через веб-интерфейс. Возможности настройки glpi через CLI ограничены, в связи с чем если выполнить данные действия через командную строку, у пользователя glpi в веб-интерфейсе будут ограничены права для работы с данным плагином.

После выполним инсталляцию и активацию плагина через веб-интерфейс под пользователем glpi.
Главная → Настройки → Плагины

Страница плагины glpi.png
Плагин glpi inventory.png
Plugin glpi inventory activ.png

Настройка плагина GLPI Inventory


Для настройки плагина далее необходимо перейти в раздел Администрирование → GLPI Inventory → Настройки → Модули агента и включить следующие модули: Сетевая инвентаризация (SNMP), Сетевое обнаружение, - нажав на кнопку “Обновление” для каждого модуля.

Настройки "модули агента".png
Настройки модули агента 2 часть.png

Далее перейдем в раздел “Администрирование”“Оборудование”, включим инвентаризацию и после сохраним изменения (кнопка в нижней части экрана).

Включение инвентаризации.png
Информационное окно.png

Настройка glpi-agent на клиентском узле Альт Рабочая Станция 11.0

На клиентском узле необходимо установить пакет glpi-agent:

# apt-get install glpi-agent

Внести изменения в конфигурационный файл /etc/glpi-agent/agent.cfg, добавив следующую строку:

server = http://<ip_address_server_glpi>/glpi/plugins/glpiinventory/

После чего выполнить запуск службы:

# systemctl enable --now glpi-agent.service

По умолчанию инвентаризация будет запущена через 1 час после запуска службы. Этот параметр можно изменить, указав необходимое значение в секундах в строке delaytime в конфигурационном файле /etc/glpi-agent/agent.cfg.

Для ручного запуска инвентаризации на клиенте можно использовать следующую команду:

# glpi-agent -f --conf-file=/etc/glpi-agent/agent.cfg

После выполнения вышеперечисленных действий на сервере появится информация о клиенте:

Обновление списка компьютеров для инвентаризации.png
Общая информация о рабочей станции.png
Компоненты рабочей станции.png

Настройка glpi-agent на клиентском узле Ubuntu 24.04.3 LTS


Для установки glpi-agent на клиентский узел Ubuntu необходимо скачать файл-установщик glpi-agent-1.12-linux-installer.pl, запустить его, после чего вручную отправить данные на сервер для инвентаризации.

$ sudo apt update
$ sudo apt install wget perl -y
$ wget https://github.com/glpi-project/glpi-agent/releases/download/1.12/glpi-agent-1.12-linux-installer.pl
$ sudo perl glpi-agent-1.12-linux-installer.pl --type=all --install --server=http://192.168.100.42/glpi/plugins/glpiinventory/
Installing glpi-agent v1.12...
Applying configuration...
Enabling glpi-agent service...
$ sudo glpi-agent --force
[info] target server0: server http://192.168.100.42/glpi/plugins/glpiinventory/
[info] sending prolog request to server0
[info] server0 answer shows it supports GLPI Agent protocol
[info] running task ESX
[info] No ESX job enabled or ESX support disabled server side.
[info] running task Deploy
[info] No Deploy job enabled or Deploy support disabled server side.
[info] running task Inventory
[info] New inventory from ubuntu24-2025-09-21-17-11-36 for server0
[info] running task Collect
[info] No Collect job enabled or Collect support disabled server side.

Обновленная информация на сервере glpi:

Добавление ubuntu в список компьютеров.png
Общая информация - ubuntu.png

Настройка glpi-agent на клиентском узле Windows 10


Для установки glpi-agent на Windows 10 необходимо скачать и запустить следующий файл: GLPI-Agent-1.12-x64.msi

Glpi agent windows.png

Процесс установки:

Glpi agent for windows setupwizard.png
Glpi agent for windows setup wizard license.png
Glpi agent for windows setup wizard dest folder.png

Выберем “Complete”

Glpi agent for windows setup type.png

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

Glpi agent for windows setup choose targets.png

Выполним окончательную установку:

Glpi agent for windows install.png
Glpi agent for windows install finish.png

Веб-интерфейс glpi-agent доступ по следующему адресу: http://localhost:62354.

Веб интерфейс glpi agent windows.png

Для передачи данных на glpi сервер, необходимо нажать на “Force an inventory”

Glpi agent windows передача данных.png

После через некоторое время (~2-5 минут) информация о данном клиентском узле отобразиться в веб-интерфейсе glpi-сервера:

Добавление windows в список компьютеров.png
Общая информация - windows.png

Настройка glpi-agent на клиентском узле CentOS Stream 9


Установка glpi-agent на CentOS аналогична установке на Ubuntu (см. выше). Ниже приведенные действия выполняются под суперпользователем (su -).

# dnf update
# dnf install wget perl -y

Подключенные репозитории по умолчанию(при инсталляции glpi-agent будут автоматически добавлены дополнительные репо):

# dnf repolist 
идентификатор репозитория                                  имя репозитория
appstream                                                  CentOS Stream 9 - AppStream
baseos                                                     CentOS Stream 9 - BaseOS
extras-common                                              CentOS Stream 9 - Extras packages
# wget https://github.com/glpi-project/glpi-agent/releases/download/1.12/glpi-agent-1.12-linux-installer.pl
# perl glpi-agent-1.12-linux-installer.pl --type=all --install --server=http://192.168.100.42/glpi/plugins/glpiinventory/
Installing glpi-agent v1.12...
Installing EPEL 9 repository...
Applying configuration...
Enabling glpi-agent service...

Обновленный список репо:

# dnf repolist 
идентификатор репозитория                 имя репозитория
appstream                                 CentOS Stream 9 - AppStream
baseos                                    CentOS Stream 9 - BaseOS
crb                                       CentOS Stream 9 - CRB
epel                                      Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264                       Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
epel-next                                 Extra Packages for Enterprise Linux 9 - Next - x86_64
extras-common                             CentOS Stream 9 - Extras packages

Отправка данных на сервер glpi:

# sudo glpi-agent --force

Обновленный список узлов:

Добавление CentOS в список компьютеров.png

Возможные ошибки


  • При выборе языка и переходе на страницу ознакомления с лицензией может высветиться ошибка: "Действие недоступно. Возврат к предыдущей странице".

Она может возникать из-за ошибок в работе браузера. Например в версии: chromium-136.0.7103.113.

В более ранних и поздних версиях браузера данная ошибка не возникает.

Glpi - ошибка "Действие недоступно".png
  • Дополнительно если доступ к веб-интерфейсу glpi осуществляется по протоколу http и дополнительно включен параметр session.cookie_secure = on в /etc/php/8.4/apache2-mod_php/php.ini, после авторизации будут также выводиться ошибка "Действие недоступно. Возврат к предыдущей странице" либо "Недопустимое использование ID сеанса" (в зависимости от используемого браузера).
Glpi ошибка2 - Недопустимое использование ID сеанса.png
  • При инсталляции glpi на этапе “Проверка окружения на совместимость с GLPI”, может высветиться предупреждение, приведенное на следующем скриншоте, если директива session.cookie_httponly закомментирована либо не установлена в значение “on” в файле /etc/php/8.4/apache2-mod_php/php.ini.
Glpi предупреждение1 - session cookie.png
  • Если не выполнить соответствующую настройку MariaDB, включив прослушивание на порту tcp/ip, то при инсталляции glpi может возникнуть ошибка (по умолчанию прослушивается только unix socket): "Невозможно соединиться с базой данных".
Glpi ошибка3 - подключение к БД.png