GLPI — аббревиатура для Gestionnaire libre de parc informatique (Свободный менеджер ИТ-инфраструктуры), является системой работы с заявками и инцидентами, а также для инвентаризации компьютерного оборудования (компьютеры, программное обеспечение, принтеры и т.д.). Имеет расширенные функции, такие как работа системы отслеживания почты с уведомлением и методы, для создания базы данных с основной информацией о топологии сети.
GLPI это веб-приложение, разрабатывающееся на PHP. GLPI включает возможности:
- Инвентаризацию компьютеров, периферийного оборудования, сетевых принтеров и связанных компонентов через интерфейс с OCS Inventory или FusionInventory.
- Управление заявками и инцидентами
- Управление лицензиями, договорами (по стандарту ITIL)
- Связывание пользователей и групп по географическому положению
- Управление деловой и финансовой информацией (договоры)
- Управление статусом объектов
- Поддержка базы знаний и Часто задаваемых вопросов (FAQ)
- Генераторы отчетов
- Поддерживаются базы данных MySQL/MariaDB
- Поддержка UTF8
- Система оповещения о событиях
GLPI позволяет увеличивать функциональность с помощью подключения плагинов.
Предварительные настройки
1. В терминале (Alt+t) переходим под root
sudo su
Установим необходимые для работы пакеты
sudo apt -y install gnupg wget tar chrony apt-transport-https ca-certificates
2. Добавим репозиторий Astra Linux 1.8:
cat << EOF > /etc/apt/sources.list
deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free non-free-firmware
deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-extended/ 1.8_x86-64 main contrib non-free non-free-firmware
EOF
Подразумеваем, что изначально ОС Astra Linux обновлена, если нет, то выполняем
apt update
astra-update -r -A -T
После обновления перегружаемся по требованию
sudo reboot
Удалим устаревшие и неиспользуемые пакеты:
sudo apt autoremove -fy
3. Вначале установим имя хоста системы на доменное имя (FQDN), которое мы будем использовать
hostnamectl set-hostname glpi.entnet.ru
4. В файл hosts добавим имя хоста:
Определим ip адрес:
ifconfig | grep "inet" | grep "broadcast" | awk '{print $2}'
Отредактируем /etc/hosts:
mcedit /etc/hosts
Установим имя нашего сервера в файле конфигурации hosts:
192.168.1.XXX glpi.entnet.ru glpi
где 192.168.1.XXX — IP-адрес нашего сервера; glpi — имя сервера; entnet.ru — наш домен, если используется.
5. Установка необходимых пакетов
apt install mariadb-server mariadb-client apache2 php php-mysql libapache2-mod-php php-json php-gd php-curl php-mbstring php-cas php-xml php-cli php-imap php-ldap php-zip php-bz2 php-intl php-apcu -fy
6. Включим сервисы вебсервера и базы данных
sudo systemctl enable apache2.service --now
sudo systemctl enable mariadb.service --now
7. Установим пакет для синхронизации времени:
apt install chrony
Задаем часовой пояс:
timedatectl set-timezone Europe/Moscow
8. Настроим параметры безопасности нашей БД:
sudo 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): enter
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.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] n
... skipping.
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] y
... Success!
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!
9. Теперь нам необходимо создать базу данных.
Создадим ее с названием glpi для пользователя glpi и с паролем entnet:
# sudo mysql
MariaDB [(none)]> CREATE DATABASE glpi;
MariaDB [(none)]> CREATE USER 'glpi'@'localhost' IDENTIFIED BY 'entnet';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glpi.* TO 'glpi'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit;
10. Закачаем содержимое веб-приложения от разработчика.
wget -O /tmp/glpi.tgz https://github.com/glpi-project/glpi/releases/download/10.0.17/glpi-10.0.17.tgz
Распакуем
tar -C /var/www/html -zxvf /tmp/glpi.tgz
Присвоим владельца папке с приложением
chown -R www-data:www-data /var/www/html/glpi
11. Настройка веб приложения.
Сначала выключим режим режим Astra
sudo echo "AstraMode off" >> /etc/apache2/apache2.conf
12. Поднастроим параметры php
mcedit /etc/php/8.2/apache2/php.ini
Заменим в нем значения пяти параметров:max_execution_time = 120
memory_limit = 512M
post_max_size = 80M
upload_max_filesize = 80M
session.cookie_httponly = on
Создадим и отредактируем файл конфигурации сайта в настройках веб сервера
mcedit /etc/apache2/sites-available/glpi.conf
<VirtualHost *:80>
ServerName glpi.entnet.ru
DocumentRoot /var/www/html/glpi/public
# If you want to place GLPI in a subfolder of your site (e.g. your virtual host is serving multiple applications),
# you can use an Alias directive. If you do this, the DocumentRoot directive MUST NOT target the GLPI directory itself.
# Alias "/glpi" "/var/www/html/glpi/public"
<Directory /var/www/html/glpi/public>
Require all granted
RewriteEngine On
# Ensure authorization headers are passed to PHP.
# Some Apache configurations may filter them and break usage of API, CalDAV, ...
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect all requests to GLPI router, unless file exists.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
</VirtualHost>
Естественно, перезагрузим веб-сервер и сервер базы данных:
systemctl restart mysql apache2
13. Включаем модуль rewritel для нашего вновь созданного сайта GLPI и включаем веб-сервер:
sudo a2enmod rewrite
sudo a2ensite glpi.conf
отключим сайт по умолчанию и перезапустим базу данных и веб-приложение:
sudo a2dissite 000-default.conf
sudo systemctl restart apache2
Ну вот и готово, Вы можете перейти на страницу GLPI по указанному в файле конфигурации адресу (в нашем случае glpi.entnet.ru), и начать установку движка по образцу на следующих картинках:
xdg-open http://glpi.entnet.ru
Сначала нас встречает окно выбора локализации:
Затем мы соглашаемся с лицензией:
Начинаем процесс новой установки:
Первый этап - это система заявляет нам о готовности к установке
В следующем окне - мы вводим установочные данные для подключения к базе данных, которые указали в п. 9
Ждем сообщения об успешном соединении приложения с сервером БД, выбираем созданную нами уже в п.9 базу данных (по желанию можете создать новую):
Ожидаем инициализации БД
Ждем такого получения сообщения об успешной инициализации БД:
На Ваш выбор, отправлять или не отправлять статистику использования:
Также Вы можете оформить предложенную платную подписку по ссылке, указанной в следующем окне:
Ну, в целом, если мы дошли до следующего окна - можно считать, что установка завершена, о чем Вам и сообщет итогове окно установщика:
На всякий случай:
glpi/glpi для учётной записи администратора
tech/tech для технической учётной записи
normal/normal для обычной учётной записи
post-only/postonly только для подачи заявок
В итоге, после нажатия на кнопку "Запустить GLPI", Вас встречает окно авторизации:
Зайдем в систему, указав параметры учетной записи, которые были указаны выше, в последнем окне установщика, но тут мы видим предупреждения.
После успешной установки в итоге попадаем на главную страницу нашего приложения, но на нем будут предупреждения о том, что необходимо удалить файл установки install.php и о необходимости изменить пароли штатных учеток:
В терминале удаляем вышеуказанный файл командой
rm /var/www/html/glpi/install/install.php
Заменяем штатные пароли, и вот - главное окно встречает нас:
Далее установим плагин инвентаризации
Скачаем его у производителя:
wget -O /tmp/glpi-glpiinventory-1.4.0.tar.bz2 https://github.com/glpi-project/glpi-inventory-plugin/releases/download/1.4.0/glpi-glpiinventory-1.4.0.tar.bz2
Распакуем в каталог plugins нашего веб-приложения GLPI
tar -C /var/www/html/glpi/plugins -xvjf /tmp/glpi-glpiinventory-1.4.0.tar.bz2
Ну и, конечно же, назначим каталогу владельца
chown -R www-data:www-data /var/www/html/glpi/plugins
Затем перезапустим веб-сервер и перейдем в раздел Настройки -> Плагины и видим там в списке наш плагин инвентаризации.
Нам необходимо его установить, для этого жмем на папку с плюсиком и устанавливаем:
Несколько секунд видим в окне прогресс установки:
Затем видим, что плагин установлен, но не включен:
Конечно же включаем и получаем подтверждение:
Кроме того, нам, собственно, нужно включить саму инвентаризацию, для этого переходим в раздел Администрирование -> Оборудование:
Установка Агента GLPI на ноды.
GLPI Agent для Linux
Скачиваем приложение Appimage
wget -O /tmp/glpi-agent-1.7-x86_64.AppImage https://github.com/glpi-project/glpi-agent/releases/download/1.7/glpi-agent-1.7-x86_64.AppImage
Задаем файлу права на исполнение:
chmod +x /tmp/glpi-agent-1.7-x86_64.AppImage
Устанавливаем агента, указав путь к плагину на сервере:
sudo /tmp/glpi-agent-1.7-x86_64.AppImage --install --server http://glpi.entnet.ru/plugins/glpiinventory/
Проверяем сервер в файле конфигурации агента, должно быть так:
mcedit /etc/glpi-agent/conf.d/00-install.cfg
server = http://glpi.entnet.ru/plugins/glpiinventory/
Также мы можем для проверки добавить строку и уменьшить время задержки, но не забудьте потом эту строку удалить или закомментировать.
delaytime = 5
Перезапустим службу агента на ноде:
systemctl restart glpi-agent
И ожидаем появления в панели управления GLPI
GLPI Agent для Windows:
Скачиваем тут
Как устанавливать и настраивать, там интуитивно понятно.
Единственное, сервер также рекомендую указать в виде http://glpi.entnet.ru/plugins/glpiinventory/
В целом, мы протестировали на 2 машинах, получилось пока вот как-то так:
Это только верхушка надводной части айсберга.