На этой странице описан порядок действий при установке GLPI на Ubuntu22. Ubuntu настраивается в виде ВМ на Hyper-V Windows Server 2019. GLPI планируется использовать только как Hekp Desk внутри локальной сети. Устанавливается версия 10.0.16.
GLPI – (Gestionnaire libre de parc informatique ) — cвободный менеджер ИТ-инфраструктуры, является системой для инвентаризации оргтехники, программ, ведения проектов, базы знаний предприятия и обслуживания заявок по тех.поддержке. Бесплатное ПО с платными дополнительными функциями и при необходимости, платной тех.поддержкой. Официальный сайт.
Содержание.
Настройка удаленного подключения.
Мастер первоначальной настройки.
Устранение проблем безопасности.
В организации работает гипервизор на Windows Server 2019. Одной из его виртуальных машин планируется GLPI.
Создаем новую ВМ.
Проходим по мастеру. Параметры как на картинке ниже. Выбираем установить ОС позже. Нажимаем кнопку «Готово».
В параметрах созданной ВМ:
-отключаем безопасную загрузку;
-добавляем количество ядер процессора; (можно назначить резерв ресурса %)
-изменяем объем динамической ОЗУ;
-назначаем сетевой адаптер;
-добавляем DVD-дисковод и загружаем в него образ UBUNTU;(последнюю версию Ubuntu можно скачать с официального сайта бесплатно )
Еще можно назначить автозапуск после включения гипервизора.
Настройка через командную строку PowerShell (запуск от имени администратора).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Создание ВМ с именем GLPISERVER, 2-поколения, ОЗУ 8Гб, HDD 100Гб. New-VM -Name "GLPISERVER" -Path D:\HYPER-V -Generation 2 -MemoryStartupBytes 8GB -NewVHDPath "D:\HYPER-V\GLPISERVER\Virtual Hard Disks\GLPISERVER.vhdx" -NewVHDSizeBytes 100GB # Подключение виртуального дисковода и ISO образа. Add-VMDvdDrive -VMName GLPISERVER -Path D:\ISO\ubuntu-22.04.4-desktop-amd64.iso # Отключение безопасной загрузки. Set-VMFirmware "GLPISERVER" -EnableSecureBoot Off # Назначим переменные для порядка загрузки и первым поставим виртуальный дисковод $LAN = Get-VMNetworkAdapter -VMName GLPISERVER $HDD = Get-VMHardDiskDrive -VMName GLPISERVER $DVD = Get-VMDvdDrive -VMName GLPISERVER Set-VMFirmware -VMName GLPISERVER -BootOrder $DVD, $HDD, $LAN # Установка двух ядер для виртуального процессора. Set-VMProcessor GLPISERVER -Count 2 # Активация и настройка динамической памяти (мин 4Гб макс 8Гб, стартовая 4Гб) Set-VMMemory GLPISERVER -DynamicMemoryEnabled $True -MaximumBytes 8GB -MinimumBytes 4GB -StartupBytes 4GB |
Настройка сети.
1 2 3 4 5 |
# Подключение сетевого адаптера. # Выводим список физических сетевых адаптеров. Get-NetAdapter -Name * -Physical # Подключаем нужный адаптер. (вставить имя нужного) Add-VMNetworkAdapter -VMName GLPISERVER -Name "SW-LAN1" |
Если в гипервизоре еще нет виртуального коммутатора, то его нужно создать.
1 2 |
# Создание виртуального коммутатора. (вписать имя адаптера) New-VMSwitch "SW1" -NetAdapterName "Ethernet Connection 1" |
Запускаем ВМ.
Выбираем «Try or Install Ubuntu».
Выбираем язык English.
Выбираем английскую раскладку клавиатуры.
Выбираем обычную установку.
Диск, на который планируется установка установка, будет полностью стерт.
Подтверждаем это.
Выбираем часовой пояс.
Указываем имя компьютера, учетную запись и пароль.
Ожидаем установку.
Система установлена. Вводим указанный ранее логин и пароль и попадаем на рабочий стол.
ВМ подключена в сеть. IP-адрес присвоился по DHCP. Доступ в Интернет обязателен.
Запускаем терминал Ctrl+Alt+T.
Входим с правами root.
1 |
sudo su - root |
Вводим пароль админа. Ввод пароля не отображается.
Далее все действия в терминале выполняются с правами root!
Обновляем систему.
1 |
apt-get update |
1 |
apt-get upgrade |
После второй команды начнется обновление всех установленных пакетов. Это может происходить продолжительное время.
Работы будут выполняться в локальной сети. Подключение будет происходить от ПК с Windows 10 к ПК с Ubuntu 22 по RDP.
Вводим команды в терминале.
1 |
apt install xrdp -y |
Проверка статуса
1 |
systemctl status xrdp |
Подключаемся по RDP из Windows на IP-адрес ПК с Ubuntu.
Предварительно пользователь на Ubuntu должен выйти из системы, чтоб удаленный пользователь из Windows вошел.
Переходим на ПК с Windows. Открываем RDP.
Win+R >> mstsc.
Вводим IP-адрес. Подключаемся.
Вводим логин и пароль (без указания домена).
Попадаем на рабочий стол Ubuntu.
Если дополнительно появится окно аутентификации, то нужно ввести пароль и подтвердить.
Установка.
Для работы GLPI потребуются следующие компоненты:
Apache
PHP
MYSQL
Устанавливаем apach2 и модуль работы с php.
1 |
apt-get install apache2 -y |
1 |
apt-get install libapache2-mod-php -y |
Включаем автозапуск.
1 |
systemctl enable apache2 |
Запускаем службу
1 |
systemctl start apache2 |
Проверяем статус
1 |
systemctl status apache2 |
Active (running) – значит работает.
Можно посмотреть страницу приветствия перейдя в браузере по адресу:
1 |
http://localhost |
Планируется установка GLPIv10. Проверяем системные требования к PHP для этой версии по ссылке.
Информация о пакете php.
1 |
apt show php |
(текущая версия 8.1)
Установка.
1 |
apt-get install php8.1 |
Установка дополнительных модулей. Какие модули нужно устанавливать написано в системных требованиях GLPI PHP.
1 |
apt-get install php php-dom php-fileinfo php-filter php-libxml php-json php-simplexml php-xmlreader php-xmlwriter php-curl php-gd php-intl php-mysqli php-session php-zlib php-bz2 php-Phar php-zip php-exif php-ldap php-openssl php-Zend OPcache |
Многие модули уже изначально присутствуют в php8.1.
Проверка работы php.
В командной строке создаем файл info.php с помощью редактора nano.
1 |
nano /var/www/html/info.php |
Содержание файла
1 |
<?php phpinfo(); ?> |
Выходим из редактора — нажимаем Ctrl+X, потом y (yes).
(сохранить и закрыть)
В браузере проверяем ссылку.
1 |
http://localhost/info.php |
Если видим эту страницу, значит все сделано правильно и php работает.
Проверяем системные требования. На данный момент они такие.
1 |
apt-get install mysql-server -y |
Добавление в автозагрузку и старт
1 2 |
systemctl enable mysql systemctl start mysql |
Проверка статуса.
1 |
systemctl status mysql.service |
Проверка версии mysql
1 |
mysqld –version |
Результат.
1 |
/usr/sbin/mysqld Ver 8.0.39-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu)) |
Создадим базу данных.
Заходим в mysql с правами root.
1 |
mysql -u root |
Создаем БД с названием glpi.
1 |
create database glpi; |
Создаем пользователя для доступа к базе данных.
Имя пользователя: glpi.
Пароль: password.
1 |
create user glpi@localhost identified by 'password'; |
Назначаем привилегии.
1 |
grant all privileges on glpi.* to glpi@localhost; |
Перечитываем конфигурацию.
1 |
flush privileges; |
Выходим.
1 |
exit; |
Скачиваем и устанавливаем.
Переходим во временную папку.
1 |
cd /tmp |
Скачиваем последнюю актуальную версию ПО.
1 |
wget https://github.com/glpi-project/glpi/releases/download/10.0.16/glpi-10.0.16.tgz |
Чтоб узнать ссылку на новую версию нужно перейти на страницу GLPI нажать правой кнопкой мыши «Копировать адрес ссылки».
Распаковываем архив.
1 |
tar -xzvf glpi-10.0.16.tgz |
Копируем glpi из tmp в apache
1 |
cp -r /tmp/glpi/ /var/www/html |
Назначаем владельца
1 |
chown www-data:www-data -R /var/www/html/glpi |
(www-data:www-data это пользователь и группа которой мы даем права на папку glpi. Этого пользователя apache (в Ubuntu) использует по умолчанию для нормальной работы.)
Создаем файл конфигурации виртуального домена.
1 |
touch /etc/apache2/sites-available/glpi.conf |
Редактируем файл.
1 |
nano /etc/apache2/sites-available/glpi.conf |
Образец конфигурации виртуального домена так же есть на этой странице.
1 2 3 4 5 6 7 8 9 10 11 12 |
<VirtualHost *:80> ServerName glpi DocumentRoot /var/www//html/glpi/public CustomLog ${APACHE_LOG_DIR}/glpi_access.log combined ErrorLog ${APACHE_LOG_DIR}/glpi_error.log <Directory /var/www/html/glpi/public> Require all granted RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] </Directory> </VirtualHost> |
Сохраняем и выходим. (Ctrl+X yes)
<VirtualHost *:80> порт, на котором работает веб-сервер
ServerName glpi – имя сервера (можно указать IP-адрес)
DocumentRoot /var/www//html/glpi/public – корневая директория расположения файлов.
Начиная с версии 10.0.6 разработчик рекомендует размещать корень в директории public если есть другие сайты на этом сервере
CustomLog ${APACHE_LOG_DIR}/glpi_access.log combined – { переменная среды расположения логов apache} и файл сбора логов доступа glpi
ErrorLog ${APACHE_LOG_DIR}/glpi_error.log – {переменная среды расположения логов apache}и файл сбора логов ошибок glpi (переменная ведет в /var/log/apache2)
Allow from all = Require all granted – (первое устаревший вариант второго), это разрешение на доступ к веб-серверу всем пользователям. Вместо all можно указать конкретного пользователя или группу.
RewriteEngine On – включение компонента веб-сервера RewriteEngine, который позволяет выполнить дополнительные действия при обработке URL-адресов. Например, конвертирование очень длинных URL в более воспринимаемые, перенаправление.
RewriteRule – перенаправление между URL указанных в условиях после команды.
RewriteCond %{REQUEST_FILENAME} !-f – выполнить изменение URL, если выполняется указанное условие: запрошенное имя файла не является обычным файлом, который существует.
RewriteRule ^(.*)$ index.php [QSA,L] – представить имя файла запроса как значение параметра для index.php и добавить строку запроса из исходного url, затем остановить обработку файла.
Перезапускаем apach2
1 |
systemctl restart apache2 |
Если apache2 не запускается, то нужно выполнить такую команду.
1 |
a2enmod rewrite |
Мастер первоначальной настройки.
Переходим в браузере по адресу:
1 |
192.168.1.19/glpi |
Откроется мастер первоначальной настройки.
Выбираем язык >> ОК.
Читаем лицензию. Нажимаем кнопку «Продолжить».
Выбираем «Установить».
Проверяем модули. Чего недостает — доустанавливаем. Например, отсутствует модуль intl, хотя он устанавливался.
Устанавливаем повторно и перезапускаем apache2.
1 |
apt-get install php-intl |
1 |
systemctl restart apache2 |
Проверяем ошибки дальше. Корневой каталог мы уже перенесли в директорию public поэтому можем игнорировать эти два предупреждения.
Следующее предупреждение.
Проверяем. Для кого это актуально – исправляем. Примерно строчка 1400.
1 |
nano /etc/php/8.1/apache2/php.ini |
Перезапускам apache2
1 |
systemctl restart apache2 |
Проверяем установку. Ошибка пропала. Появилась кнопка продолжить.
Если есть еще какие-то ошибки – устраняем их и нажимаем кнопку «Продолжить».
Вводим параметры базы данных. Пользователь и пароль те, которые были созданы при создании БД (glpi, password).
Отмечаем базу данных glpi. >> Продолжить.
На третьем шаге ожидаем примерно 10мин.
Нажимаем «Продолжить».
На следующем шаге решаем, будем ли мы отправлять статистику использования. Нажимаем «Продолжить».
Шаг №5. Реклама. Платная тех. поддержка. Нажимаем «Продолжить».
Установка завершена. Подсказка нам сообщает некоторые логины и пароли.
Входим в систему. Логин и пароль glpi.
Если вы входите в GLPI по сети, нужно указывать IP-адрес 192.168.1.19/glpi
Если входите на Ubuntu где GLPI установлена, то в адресной строке нужно указывать localhost/glpi
Устранение проблем безопасности.
При первом подключении информационная табличка сообщает нам о проблемах с безопасностью. Устраним их.
Стандартные учетные записи не планируется использовать, поэтому отключим их.
В главном меню переходим в: Администрирование >> Пользователи.
Отмечаем нужных пользователей. Выбираем действие >> Обновить >> Характеристики – Активен >> Нет.Нажимаем кнопку «Отправить» и статус активности станет «Нет».
Для пользователя glpi изменим пароль. Нажимаем на имя этого пользователя и в его профиле вводим новый пароль.
Нажимаем кнопку «Сохранить» в нижней части профиля.
При следующем входе в систему понадобится ввести новый пароль.
Следующее предупреждение.
Удаляем файл install.php с помощью команды в терминале.
1 |
rm /var/www/html/glpi/install/install.php |
Обновляем страницу glpi.
Осталась одна проблема безопасности. «Конфигурация корневого каталога веб-сервера небезопасна, поскольку позволяет получить доступ к непубличным файлам».
Тут непонятная ситуация. Корневая папка установлена, но ошибка висит. Это баг (?). Файлы конфигурации не находятся в корне т.к корень public. Конфигурация считается безопасной, если index.php находится в public. Он там и находится.
Исправить этот баг можно, отредактировав файл SafeDocumentRoot.php
1 |
nano /var/www/html/glpi/src/System/Requirement/SafeDocumentRoot.php |
87 строка, пишем return;
1 |
systemctl restart apache2 |
Предупреждение пропало.
После выполнения настроек желательно сделать бэкап всей системы и делать его регулярно, хотя бы 1 раз в месяц (или чаще). В данном случае бэкап выполняется в виде экспорта виртуальной машины.
На следующей странице представлена настройка GLPI в роли системы приема заявок HelpDesk.