Установка и использование GLPI на CentOS 7

Обновлено и опубликовано Опубликовано:

Тематические термины: GLPI, CentOS.

GLPI project является приложением на основе PHP, поэтому мы сначала настроим веб-сервер на базе Apache + PHP7 + MariaDB (можно также использовать nginx, но в инструкции мы этого делать не будем). После приступим к развертыванию самого GLPI. Все действия выполняются на базе операционной системы CentOS 7, однако, во многом, подойдут для других дистрибутивов Linux (Ubuntu, Debian, ...) и Windows.

Пред настройка системы

Время

Установим пакет для синхронизации времени:

yum install ntpdate

Задаем часовой пояс:

\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Создадим задачу в cron для актуализации времени:

crontab -e

0 0 * * * /sbin/ntpdate ru.pool.ntp.org

Безопасность

Добавляем правило в firewalld:

firewall-cmd --permanent --add-port=80/tcp

firewall-cmd --permanent --add-port=443/tcp

firewall-cmd --reload

Отключаем SELinux:

sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

setenforce 0

Или настраиваем по инструкции правильная настройка SELinux.

Установка пакетов

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

yum install epel-release

Установим обновления:

yum update

Установка Apache

Приложение GLPI лучше всего работает на основе веб-сервера Apache (но не исключает возможности установки на NGINX). Для его установки вводим команду:

yum install httpd

После запускаем его:

systemctl enable httpd

systemctl start httpd

Открываем браузер и вводим IP-адрес сервера — мы должны увидеть тестовую страницу Apache:

Приветствие Apache

Установка PHP 7

В репозитории CentOS находится PHP версии 5.4. Для свежих версий GLPI требуется более новая версия php. Для этого установим репозиторий REMI:

rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Теперь ставим php7:

yum --enablerepo=remi-php72 install php

* на момент написания статьи последняя стабильная версия была 7.2 (ссылка на PHP: Downloads).

Apache + PHP

Открываем конфигурационный файл apache:

vi /etc/httpd/conf/httpd.conf

Редактируем строку:

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

* добавляем index.php.

Создаем виртуальный домен:

vi /etc/httpd/conf.d/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 httpd

Создаем каталог:

mkdir -p /var/www/glpi

Создаем файл со следующим содержимым:

vi /var/www/glpi/index.php

<?php phpinfo(); ?>

Открываем браузер и вводим имя виртуального домена (в нашем случае, glpi.dmosk.local) — мы должны увидеть, примерно, следующее:

phpinfo

Установка MariaDB

По умолчанию, в CentOS устанавливается mariadb версии 5. Это ранняя версия и она не подходит для последних версий GLPI.

Переходим по ссылке downloads.mariadb.org/mariadb/repositories и выбираем нашу версию операционной системы и последний стабильный релиз mariadb:

Выбираем нашу версию операционной системы и релиз mariadb

Ниже мы увидим инструкцию по добавлению репозитория в CentOS и установке СУБД:

Инструкция по установке mariadb для выбранной системы

Согласно инструкции, добавим репозиторий:

vi /etc/yum.repos.d/mariadb-10.repo

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Обновим пакеты:

yum update

Устанавливаем СУБД командой:

yum install mariadb-server

Запускаем сервер баз данных:

systemctl enable mariadb

systemctl start mariadb

Задаем пароль для суперпользователя СУБД:

mysqladmin -u root password

Устанавливаем модули php для работы с MariaDB:

yum --enablerepo=remi-php72 install php-mysql php-mysqli

Перезапускаем apache:

systemctl restart httpd

Открываем нашу страницу с phpinfo — мы должны найти информацию поддержке MySQL:

Поддержка MySQL в PHP

Установка GLPI

Создание базы данных

Подключаемся к СУБД:

mysql -uroot -p

Создаем базу данных:

> CREATE DATABASE glpi DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

* где glpi — имя базы.

Создаем пользователя с доступом к этой базе:

> GRANT ALL PRIVILEGES ON glpi.* TO glpi@localhost IDENTIFIED BY 'glpi123';

* где glpi@localhost — пользователь с логином glpi и доступом с локального сервера; glpi123 — пароль для пользователя.

Отключаемся от MariaDB:

> \q

Загрузка

Установим пакет для загрузки файлов:

yum install wget

Переходим на страницу загрузки GLPI — github.com/glpi-project/glpi/releases и копируем ссылку на новую версию пакета:

Копируем ссылку на актуальную версию GLPI

Скачиваем GLPI:

wget https://github.com/glpi-project/glpi/releases/download/9.3.0/glpi-9.3.tgz

Установка

Устанавливаем php-расширения, необходимые для GLPI:

yum --enablerepo=remi-php72 install php-mbstring php-gd php-simplexml

Устанавливаем рекомендованные php-расширения:

yum --enablerepo=remi-php72 install php-ldap php-imap php-pecl-zendopcache php-pecl-apcu php-xmlrpc php-pear-CAS

Распаковываем архив в каталог виртуального домена (настраивали в Apache):

tar -xvzf glpi-*.tgz -C /var/www/glpi --strip-components 1

Задаем владельца apache для данного каталога:

chown -R apache:apache /var/www/glpi

Запускаем браузер и снова открываем портал по имени виртуального домена. В открывшемся окне выбираем русский язык (или любой из возможных вариантов) и нажимаем OK:

Выбор языка при установке GLPI

Принимаем лицензионное соглашение и нажимаем Продолжить:

Принимаем лицензионное соглашение

Из двух вариантов (установить или обновить) выбираем Установить:

Выбираем установку GLPI

Система проверить, что наши настройки соответствуют рекомендованным. Если все хорошо, нажимаем Продолжить.

На следующем шаге вводим данные для подключения к базе данных:

Вводим данные для подключения к базе данных

Далее выбираем базу, созданную ранее:

Выбираем базу данных

Несколько раз нажимаем Продолжить и на последнем этапе Запустить GLPI.

Готово. Для первого входа используем логин и пароль по умолчанию — glpi/glpi.

Первичная настройка

1. С сервера удаляем файл установки:

\rm /var/www/glpi/install/install.php

2. В cron добавляем задание GLPI cron.php — это необходимо для автоматического запуска некоторых процедур внутри самого GLPI, в противном случае, мы получим предупреждение cron не запущен:

crontab -e

* * * * * /bin/php /var/www/glpi/front/cron.php &>/dev/null

* в данном примере скрипт /var/www/glpi/front/cron.php будет выполняться раз в минуту.

3. Переходим в Администрирование - Пользователь:

Переходим к управлению пользователями

Меняем пароль для следующих учетных записей:

  1. glpi
  2. post-only
  3. tech
  4. normal

Расположение пунктов важных настроек

Для удобства использования портала необходимо самостоятельно настроить следующее:

  • Заявки. Поддержка - Заявки - Управление шаблонами (две горизонтальные линии с разрывом) - выбираем шаблон для настройки.
  • Уведомления. Настройки - Уведомление - включить комментарии и, при необходимости, уведомления по email и браузерные оповещения. После включения оповещений можно будет перейти к настройкам шаблонов оповещений.
  • Интерфейс. Настройки - Общий - Значения по умолчанию. А также настройка вида для конкретного пользователя — кликаем по имени профиля в правом верхнем углу - Внешний вид.
  • Cron. Настройки - Автоматическое действие. Среди списка действий кликаем на нужное.
  • SLA. Настройки - Уровни обслуживания. Если уровней нет, создаем, нажав на плюсик.
  • Автоматическое назначение заявок на специалиста. Администрирование - Правила - Бизнес-правила для заявок. На самом деле, позволяет автоматизировать не только назначение на специалиста.

Установка плагинов

Функциональные возможности программы значительно расширяются за счет плагинов. Рассмотрим установку некоторых из них.

Принцип установки плагинов

Установка плагинов в GLPI выполняется по следующему алгоритму:

  1. Скачиваем плагин, версия которого совместима с установленной версией GLPI.
  2. Распаковываем скачанный архив в каталог plugins, который находится в каталоге с glpi.
  3. Заходим на портал, переходим в Настройки - Плагины. Находим нужный плагин - кликаем напротив него по Установить и затем Включить.

FusionInventory (инвентаризация ИТ-оборудования)

Устанавливаем bzip2:

yum install bzip2

Переходим на страницу загрузки плагина https://github.com/fusioninventory/fusioninventory-for-glpi/releases и копируем ссылку на последнюю версию релиза «Release FusionInventory for GLPI».

Скачиваем плагин:

wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi9.3%2B1.1/fusioninventory-9.3.1.1.tar.bz2

Распаковываем его в папку с плагинами GLPI:

tar -xvjf fusioninventory-*.tar.bz2 -C /var/www/glpi/plugins/

Заходим на портал GLPI - Настройки - Плагины. В списке плагинов должен появиться FusionInventory — необходимо его установить, затем включить:

FusionInventory в списке плагинов

На компьютеры сети устанавливаем FusionInventory Agent — скачать его под различные операционные системы можно по ссылке github.com/fusioninventory/fusioninventory-agent/releases.

Reports (отчеты)

Переходим на страницу загрузки плагина — forge.glpi-project.org/projects/reports/files. Копируем ссылку на подходящую версию (внимательно смотрим наличие поддержки установленной версии GLPI). После скачиваем на сервер плагин:

wget https://forge.glpi-project.org/attachments/download/2246/glpi-plugin-reports-1.11.3.tar.gz

Распаковываем плагин:

tar -xvzf glpi-plugin-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.

Archires (визуализация топологии сетевой инфраструктуры)

Плагин можно скачать по ссылке forge.glpi-project.org/projects/archires/files. Однако, на момент, написания инструкции, версия GLPI 9.3 еще не поддерживалась.

Ход установки аналогичный — скачиваем:

wget https://forge.glpi-project.org/attachments/download/2235/glpi-archires-2.5.1.tar.gz

Распаковываем:

tar -xvzf glpi-archires-*.tar.gz -C /var/www/glpi/plugins/

Устанавливаем через портал.

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

Заполняем поля для настройки 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=sats,DC=local). Ее мы создавали на первом этапе.
  • Пароль (пользователь для подключения) — вводим пароль для учетной записи в AD.

Нажимаем Добавить.

Переходим в подраздел Тест и проверяем подключение к каталогу. Если оно выполнится с ошибкой, подождите, минут, 15 — возможно, не прошла репликация между всеми контроллерами.

Переходим в подраздел Пользователь — заполняем поля для ассоциаций с LDAP:

Настройка ассоциация полей пользователя GLPI с полями пользователя в Active Directory

Нажимаем Сохранить.

А также:

  1. В группах можно добавить фильтр (&(objectClass=group)(objectCategory=group)).
  2. В дополнительной информации меняем часовой пояс.

Импорт пользователей

Переходим в Администрирование - Пользователь:

Переходим в администрирование пользователей

Кликаем по Связи с LDAP:

Переходим в Связь с 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/httpd/conf.d/glpi.conf

<VirtualHost *:80>
    Define root_domain test-glpi.sats.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.sats.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 в брандмауэр (если этого не было сделано при подготовке сервера):

firewall-cmd --permanent --add-port=443/tcp

firewall-cmd --reload

Устанавливаем модуль mod_ssl:

yum install mod_ssl

Перезапускаем apache:

systemctl restart httpd

HTTP/2

Для поддержки http2, добавляем новый репозиторий:

cd /etc/yum.repos.d

wget https://repo.codeit.guru/codeit.el`rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides redhat-release)`.repo

Устанавливаем модуль mod_http2:

yum install mod_http2

В конфиг виртуального домена добавим:

    Protocols h2 http/1.1

Перезапустим httpd:

systemctl restart httpd

Подробнее про настройку HTTP/2 на Apache.

А также

Упомянем еще о некоторых моментах, касающихся GLPI.

Отчеты

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

Также, возможности отчетов можно расширить с помощью плагинов, например, Reports.

Документация

Официальная база знаний и описание программного продукта доступны по ссылке wiki.glpi-project.org/doku.php?id=ru:welcome. Имеется поддержка русского языка, однако перевод есть не для всех разделов.

Обновление

Если у нас уже установлен GLPI, его можно обновить с помощью инструкции Как обновить GLPI.

Онлайн тестирование

Перед установкой портала, можно протестировать его возможности на официальном демо-портале — demo.glpi-project.org.

Аналоги GLPI

  1. OTRS.
  2. OCS Inventory (инвентаризация), однако, эти две системы, не редко, настраивают вместе, так как их возможности дополняют друг друга.
  3. osTicket.
# CentOS # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет