Установка и использование GLPI на Ubuntu
Тематические термины: GLPI, Ubuntu.
GLPI project является приложением на основе PHP, поэтому мы сначала настроим веб-сервер на базе Apache + PHP + MariaDB (можно также использовать nginx, но в инструкции мы этого делать не будем). После приступим к развертыванию самого GLPI. Все действия выполняются на базе операционной системы Ubuntu (протестировано на версии 22.04), однако, во многом, подойдут для других дистрибутивов Linux на базе Deb.
Подготовка системы
Установка пакетов
Настройка времени
Настройка безопасности
Установка Apache
Установка PHP
Настройка связки Apache + PHP
Установка MariaDB
Установка GLPI
Загрузка портала
Установка
Первичная настройка
Где искать основные настройки
Установка плагинов
Принцип установки
FusionInventory
Reports
Barcode
Archires
TelegramBot
OCS Inventory
Где искать плагины
Аутентификация в AD
Настройка связи с LDAP
Импорт пользователей
Настройка https
А также
Отчеты
Документация
Обновление
Онлайн тестирование
Аналоги GLPI
Предварительная настройка системы
Прежде чем начать развертывание системы, выполним предварительные действия.
Установка пакетов
Обновим кэш репозитория:
apt update
apt install tar wget
Время
Установим пакет для синхронизации времени:
apt install chrony
Задаем часовой пояс:
timedatectl set-timezone Europe/Moscow
Безопасность
Если мы пользуемся брандмауэром, открываем порты 80 и 443:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Для сохранения используем пакет iptables-persistent:
apt install iptables-persistent
netfilter-persistent save
Установка Apache
Приложение GLPI лучше всего работает на основе веб-сервера Apache (но не исключает возможности установки на NGINX). Для его установки вводим команду:
apt install apache2
Открываем браузер и вводим IP-адрес сервера — мы должны увидеть тестовую страницу Apache:
Разрешаем модуль:
a2enmod rewrite
И перезапускаем сервис:
systemctl restart apache2
Установка PHP
Прежде чем устанавливать PHP, изучаем системные требования GLPI. На момент обновления данной инструкции, для самой свежей версии нам нужен был PHP 7.4 - 8.2.
Проверяем, какая версия будет установлена из системного репозитория:
apt search --names-only '^php[.0-9]{3}$'
а) Если версия подходит, устанавливаем PHP и необходимые расширения:
apt install php libapache2-mod-php php-dom php-fileinfo php-json php-simplexml php-xmlreader php-xmlwriter php-curl php-gd php-intl php-mysqli php-ldap php-bz2 php-zip php-mbstring
После задаем переменную:
PHP_VER=8.1
* где 8.1 — версия установленного PHP.
б) Если версия не подходит, устанавливаем нужную с помощью инструкции Установка разных версий PHP на Linux Ubuntu. После чего задаем переменную:
PHP_VER=8.1
* где 8.1 — версия установленного PHP.
... и устанавливаем расширения:
apt install libapache2-mod-php${PHP_VER} php${PHP_VER}-dom php${PHP_VER}-fileinfo php${PHP_VER}-json php${PHP_VER}-simplexml php${PHP_VER}-xmlreader php${PHP_VER}-xmlwriter php${PHP_VER}-curl php${PHP_VER}-gd php${PHP_VER}-intl php${PHP_VER}-mysqli php${PHP_VER}-ldap php${PHP_VER}-bz2 php${PHP_VER}-zip php${PHP_VER}-mbstring
PHP установлен. Выполним настройки.
Откроем конфигурационный файл:
vi /etc/php/${PHP_VER}/apache2/php.ini
Редактируем следующие настройки:
upload_max_filesize = 256M
...
post_max_size = 256M
...
date.timezone = "Europe/Moscow"
...
session.cookie_httponly = on
Apache + PHP
Открываем конфигурационный файл apache:
vi /etc/apache2/mods-available/dir.conf
Редактируем строку:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
* добавляем index.php.
Создаем виртуальный домен:
vi /etc/apache2/sites-enabled/glpi.conf
<VirtualHost *:80>
Define root_domain glpi.dmosk.local
Define root_path /var/www/glpi
ServerName ${root_domain}
DocumentRoot ${root_path}
</VirtualHost>
* мы создали виртуальный домен glpi.dmosk.local, при обращении на который apache будет искать файлы в каталоге /var/www/glpi.
Перезапускаем apache:
systemctl restart apache2
Создаем каталог:
mkdir -p /var/www/glpi
Создаем файл со следующим содержимым:
vi /var/www/glpi/index.php
<?php phpinfo(); ?>
Открываем браузер и вводим имя виртуального домена (в нашем случае, glpi.dmosk.local) — мы должны увидеть, примерно, следующее:
Установка MariaDB и создание базы
Устанавливаем СУБД командой:
apt install mariadb-server
Подключаемся к ней:
mysql
Создаем базу данных:
> CREATE DATABASE glpi DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
* где glpi — имя базы.
Создаем пользователя с доступом к этой базе:
> CREATE USER 'glpi'@'localhost' IDENTIFIED BY 'glpi123';
> GRANT ALL PRIVILEGES ON glpi.* TO glpi@localhost;
* где glpi@localhost — пользователь с логином glpi и доступом с локального сервера; glpi123 — пароль для пользователя.
Отключаемся от MariaDB:
> quit
Установка GLPI
Загрузка
Установим пакет для загрузки файлов:
yum install wget
Переходим на страницу загрузки GLPI — github.com/glpi-project/glpi/releases и копируем ссылку на новую версию пакета:
Скачиваем GLPI:
wget https://github.com/glpi-project/glpi/releases/download/10.0.9/glpi-10.0.9.tgz
Установка
Распаковываем архив в каталог виртуального домена (настраивали в Apache):
tar -xzf glpi-*.tgz -C /var/www/glpi --strip-components 1
Задаем владельца apache для данного каталога:
chown -R www-data:www-data /var/www/glpi
Запускаем браузер и снова открываем портал по имени виртуального домена. В открывшемся окне выбираем русский язык (или любой из возможных вариантов) и нажимаем OK:
Принимаем лицензионное соглашение и нажимаем Продолжить:
Из двух вариантов (установить или обновить) выбираем Установить:
Система проверить, что наши настройки соответствуют рекомендованным. Если все хорошо, нажимаем Продолжить.
На следующем шаге вводим данные для подключения к базе данных:
* вводим логин и пароль для пользователя, которого мы создали, когда устанавливали СУБД (в нашем примере, glpi и glpi123, соответственно).
Далее выбираем базу, созданную ранее:
Несколько раз нажимаем Продолжить и на последнем этапе Запустить GLPI.
Готово. Для первого входа используем логин и пароль по умолчанию — glpi/glpi.
Первичная настройка
Выполним небольшие настройки, прежде чем начать пользоваться GLPI.
1. С сервера удаляем файл установки:
rm -f /var/www/glpi/install/install.php
2. В cron добавляем задание GLPI cron.php — это необходимо для автоматического запуска некоторых процедур внутри самого GLPI, в противном случае, мы получим предупреждение cron не запущен:
crontab -e
* * * * * /usr/bin/php /var/www/glpi/front/cron.php &>/dev/null
* в данном примере скрипт /var/www/glpi/front/cron.php будет выполняться раз в минуту.
3. Переходим в Администрирование - Пользователь:
Меняем пароль для следующих учетных записей:
- glpi
- post-only
- tech
- normal
Расположение пунктов важных настроек
Для удобства использования портала необходимо самостоятельно настроить следующее:
- Заявки. Поддержка - Заявки - Управление шаблонами (две горизонтальные линии с разрывом) - выбираем шаблон для настройки.
- Уведомления. Настройки - Уведомление - включить комментарии и, при необходимости, уведомления по email и браузерные оповещения. После включения оповещений можно будет перейти к настройкам шаблонов оповещений.
- Интерфейс. Настройки - Общий - Значения по умолчанию. А также настройка вида для конкретного пользователя — кликаем по имени профиля в правом верхнем углу - Внешний вид.
- Cron. Настройки - Автоматическое действие. Среди списка действий кликаем на нужное.
- SLA. Настройки - Уровни обслуживания. Если уровней нет, создаем, нажав на плюсик.
- Автоматическое назначение заявок на специалиста. Администрирование - Правила - Бизнес-правила для заявок. На самом деле, позволяет автоматизировать не только назначение на специалиста.
Установка плагинов
Функциональные возможности программы значительно расширяются за счет плагинов. Рассмотрим установку некоторых из них.
Принцип установки плагинов
Установка плагинов в GLPI выполняется по следующему алгоритму:
- Скачиваем плагин, версия которого совместима с установленной версией GLPI.
- Распаковываем скачанный архив в каталог plugins, который находится в каталоге с glpi.
- Заходим на портал, переходим в Настройки - Плагины. Находим нужный плагин - кликаем напротив него по Установить и затем Включить.
FusionInventory (инвентаризация ИТ-оборудования)
Устанавливаем bzip2:
apt install bzip2
Переходим на страницу загрузки плагина https://github.com/fusioninventory/fusioninventory-for-glpi/releases и копируем ссылку на последнюю версию релиза «Release FusionInventory for GLPI».
Скачиваем плагин:
wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi10.0.6%2B1.1/fusioninventory-10.0.6+1.1.tar.bz2
Распаковываем его в папку с плагинами GLPI:
tar -xjf fusioninventory-*.tar.bz2 -C /var/www/glpi/plugins/
Заходим на портал GLPI - Настройки - Плагины. В списке плагинов должен появиться FusionInventory — необходимо его установить, затем включить:
На компьютеры сети устанавливаем FusionInventory Agent — скачать его под различные операционные системы можно по ссылке github.com/fusioninventory/fusioninventory-agent/releases.
Reports (отчеты)
Переходим на страницу загрузки плагина — plugins.glpi-project.org/#/plugin/reports. Переходим по ссылке загрузки плагина (внимательно смотрим наличие поддержки установленной версии GLPI) — мы попадем на GitHub. Копируем ссылку для загрузки архива. Скачиваем на сервер плагин:
wget https://github.com/yllen/reports/releases/download/v1.16.0/glpi-reports-1.16.0.tar.gz
Распаковываем плагин:
tar -xvzf glpi-reports-*.tar.gz -C /var/www/glpi/plugins/
На портале переходим в Настройки - Плагины - напротив Reports кликаем Установить и Включить.
Barcode (генератор баркодов)
Копируем ссылку на плагин — github.com/pluginsGLPI/barcode/releases. Распаковываем:
tar -xvjf glpi-barcode-*.tar.bz2 -C /var/www/glpi/plugins/
Заходим в управление плагинами на портале и устанавливаем Barcode.
TelegramBot
Скачиваем (github.com/pluginsGLPI/telegrambot/releases):
wget https://github.com/pluginsGLPI/telegrambot/releases/download/2.0.0/glpi-telegrambot-2.0.0.tar.bz2
Распаковываем:
tar -xvjf glpi-telegrambot-*.tar.bz2 -C /var/www/glpi/plugins/
Устанавливаем через портал.
OCS Inventory
Скачиваем (github.com/pluginsGLPI/ocsinventoryng/releases):
wget https://github.com/pluginsGLPI/ocsinventoryng/releases/download/1.5.0/glpi-ocsinventoryng-1.5.0.tar.gz
Распаковываем:
tar -xvzf glpi-ocsinventoryng-*.tar.gz -C /var/www/glpi/plugins/
Устанавливаем через портал.
Другие плагины
Полный список плагинов можно найти по ссылке plugins.glpi-project.org.
Доменная аутентификация (Active Directory)
Если в нашей сети есть сервер с установленной ролью контроллера домена, мы можем выполнять аутентификацию на основе ldap. Настройка выполняется в два этапа — настройка связи с LDAP и импорт пользователей из каталога.
Настройка связи с LDAP
Для начала, создаем учетную запись в каталоге Active Directory для настройки связывания с GLPI. У нее должны быть минимальные права.
Теперь создаем каталог LDAP. Для этого переходим в Настройки - Аутентификация:
Кликаем по LDAP каталог и нажимаем Добавить:
Заполняем поля для настройки LDAP:
* где:
- Наименование — произвольное имя каталога, например, dmosk.local.
- Сервер — сервер с ролью ldap-сервера. В данном примере указан весь домен, по которому могут отзываться все серверы.
- Фильтр соединений — фильтр объектов, которые мы извлекаем. Для Active Directory работает (&(objectClass=user)(objectCategory=person)).
- База поиска (baseDN) — контейнер или организационный юнит, с которого начинается поиск объектов. В нашем случае, OU=Users,DC=dmosk,DC=local.
- Поле имени пользователя — поле LDAP, по которому будет ассоциироваться имя пользователя (samaccountname).
- Сервер по умолчанию и Активен переводим в Да.
- rootDN (пользователь для подключения) — учетная запись в AD DS, у которой есть права на чтение каталога (CN=glpi,CN=Users,DC=dmosk,DC=local). Ее мы создавали на первом этапе.
- Пароль (пользователь для подключения) — вводим пароль для учетной записи в AD.
Нажимаем Добавить.
Переходим в подраздел Тест и проверяем подключение к каталогу. Если оно выполнится с ошибкой, подождите, минут, 15 — возможно, не прошла репликация между всеми контроллерами.
Переходим в подраздел Пользователь — заполняем поля для ассоциаций с LDAP:
Нажимаем Сохранить.
А также:
- В группах можно добавить фильтр (&(objectClass=group)(objectCategory=group)).
- В дополнительной информации меняем часовой пояс.
Импорт пользователей
Переходим в Администрирование - Пользователь:
Кликаем по Связи с LDAP:
Затем Импорт новых пользователей - Поиск. Среди найденных результатов отмечаем всех или необходимых пользователей - Действие - Импорт.
После импорта, пользователь может входить на портал под своей доменной учетной записью.
Защищенное соединение (https)
Для настройки https нам нужен сертификат. Его можно создать с помощью внутреннего центра сертификации, купить, получить бесплатно у Let's Encrypt или, в качестве тестового варианта, создать самозаверенный сертификат командами:
mkdir /etc/httpd/ssl/
openssl req -new -x509 -days 1461 -nodes -out /etc/httpd/ssl/cert.pem -keyout /etc/httpd/ssl/cert.key -subj "/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=test.dmosk.local/CN=test"
Добавляем виртуальный домен:
vi /etc/apache2/sites-enabled/glpi.conf
<VirtualHost *:80>
Define root_domain test-glpi.dmosk.local
Define root_path /var/www/glpi
ServerName ${root_domain}
DocumentRoot ${root_path}
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
Define root_domain test-glpi.dmosk.local
Define root_path /var/www/glpi
ServerName ${root_domain}
DocumentRoot ${root_path}
SSLEngine on
SSLCertificateFile ssl/cert.pem
SSLCertificateKeyFile ssl/cert.key
</VirtualHost>
* в данном примере мы добавили виртуальный домен для 443 порта и добавили правило перенаправления всех запросов с http (80) на https (443).
Добавляем порт 443 в брандмауэр (если этого не было сделано при подготовке сервера):
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
netfilter-persistent save
Устанавливаем модуль mod_ssl:
a2enmod ssl
Перезапускаем apache:
systemctl restart httpd
А также
Упомянем еще о некоторых моментах, касающихся GLPI.
Отчеты
Позволяют увидеть все, что происходит в системе, получить статистику и информацию по инвентаризации. Для открытия кликаем по Инструменты - Отчет - выбираем необходимый тип отчета.
Также, возможности отчетов можно расширить с помощью плагинов, например, Reports.
Документация
Официальная база знаний и описание программного продукта доступны по ссылке wiki.glpi-project.org/doku.php?id=ru:welcome. Имеется поддержка русского языка, однако перевод есть не для всех разделов.
Обновление
Если у нас уже установлен GLPI, его можно обновить с помощью инструкции Как обновить GLPI.
Онлайн тестирование
Перед установкой портала, можно протестировать его возможности на официальном демо-портале — myaccount.glpi-network.cloud/register.php (потребуется регистрация).
Аналоги GLPI
- OTRS.
- OCS Inventory (инвентаризация), однако, эти две системы, не редко, настраивают вместе, так как их возможности дополняют друг друга.
- osTicket.