Развертывание сервера с системой работы с заявками и инцидентами, а также для инвентаризации компьютерного оборудования на ОС Linux CentOS 7 -------------------------------------------------------------------------------------------------------------------------------------------------------------- Все описанные ниже действия выполнялись под пользователем root -------------------------------------------------------------------------------------------------------------------------------------------------------------- Всем привет! Для реализации данного проекта мне потребовалось: 1) Прописать статические IP-адреса; 2) Обновить пакеты ОС Linux CentOS 7 до последней версии; 3) Установить дополнительные пакеты; 4) Настроить часовой пояс; 5) Настроить Firewalld и SELinux; 6) Подключить EPEL-репозиторий и обновить пакеты; 7) Установить и запустить Apache; 8) Установить и настроить PHP 8.1; 9) Настроить Apache и PHP; 10) Установить и настроить MariaDB; 11) Загрузить и установить ПО GLPI; 12) Загрузить и установить плагин FusionInventory; 13) Загрузить и установить плагин Reports; 14) Загрузить и установить плагин Barcode; 15) Загрузить и установить плагин TelegramBot; 16) Исправить ошибку "13 tables are using the deprecated MyISAM storage engine. Run the "php bin/console glpi:migration:myisam_to_innodb" command to migrate them.". -------------------------------------------------------------------------------------------------------------------------------------------------------------- Предисловие ------------ Nano — это консольный текстовый редактор для UNIX и Unix-подобных операционных систем, основанный на библиотеке curses и распространяемый под лицензией GNU GPL. ------------ SELinux — реализация системы принудительного контроля доступа, которая может работать параллельно с классической избирательной системой контроля доступа. ------------ NMTUI — это инструмент командной строки, который используется для настройки сети в системах Gnu / Linux. При запуске он вызывает графический текстовый интерфейс, который помогает пользователям легко и эффективно настраивать сетевые интерфейсы. ------------ GLPI — аббревиатура для Gestionnaire libre de parc informatique, является системой работы с заявками и инцидентами, а также для инвентаризации компьютерного оборудования. ------------ ntpdate — это компьютерная программа, используемая для быстрой синхронизации и установки даты и времени компьютеров путем запроса к серверу Network Time Protocol. ------------ Vim — это свободный текстовый редактор, созданный на основе более старого vi. ------------ EPEL (Extra Packages for Enterprise Linux) ― это открытое бесплатное хранилище пакетов от Fedora. ------------ REMI ― это репозиторий, который содержит свежие сборки PHP, MySQL/MariaDB, Apache. ------------ MariaDB — это ответвление от системы управления базами данных MySQL, разрабатываемое сообществом под лицензией GNU GPL. ------------ PHP - это инструмент для создания персональных страниц ------------ Apache HTTP Server, также известный как httpd, является самым популярным веб-сервером в мире, и он является стандартным веб-сервером для CentOS 7. ------------ DataBase — это совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных. ------------ InnoDB — это одна из выбираемых подсистем низкого уровня в СУБД MySQL, входит во все стандартные сборки для различных операционных систем. -------------------------------------------------------------------------------------------------------------------------------------------------------------- Перед тем как разворачивать ПО GLPI, прошу вас тщательно изучить то, какие вы будете устанавливать плагины. У некоторых плагинов есть определенная поддерживаемая версия ПО GLPI!!! -------------------------------------------------------------------------------------------------------------------------------------------------------------- Используемые версии ПО для реализации данного проекта: ------------ GLPI -version- 10.0.6 ------------ PHP -version- 8.1 ------------ MariaDB -version- 11.3 ------------ fusioninventory -version- 10.0.6+1.1 ------------ glpi-reports -version- 1.16.0 ------------ glpi-barcode -version- 2.7.1 ------------ glpi-telegrambot-2.0.0 -------------------------------------------------------------------------------------------------------------------------------------------------------------- 1) Для избежания потери связи с АРМ/VM, нужно позаботиться о статической IP-адресации. Её можно настроить как на самой АРМ/VM, так и на самом сетевом устройстве. Статическую адресацию можно прописать с помощью инструмента командной строки nmtui. ------------ yum install -y NetworkManager-tui |#|#| Установка пакета "nmtui" для настройки сети на АРМ/VM ------------ Гайд по тому, как пользоваться инструментом nmtui, вы можете посмотреть в интернете. -------------------------------------------------------------------------------------------------------------------------------------------------------------- 2) Обновление пакетов системы. ------------ yum update -y && yum upgrade -y |#|#| Поиск и обновление пакетов системы ------------ reboot |#|#| Команда для перезагрузки АРМ/VM -------------------------------------------------------------------------------------------------------------------------------------------------------------- 3) Установка дополнительных пакетов. ------------ yum install -y ntpdate yum-utils nano wget |#|#| Команда для установки пакетов "ntpdate", "yum-utils", "nano" и "wget" -------------------------------------------------------------------------------------------------------------------------------------------------------------- 4) Настройка часового пояса. ------------ cp /usr/share/zoneinfo/Asia/Yekaterinburg /etc/localtime |#|#| Команда для задания часового пояса "Asia/Yekaterinburg" ------------ crontab -e |#|#| Команда для открытия конфигурационного файла планировщика задач ПО "crontab" в текстовом редакторе "vim" ------------ Гайд по тому, как пользоваться инструментом vim, вы можете посмотреть в интернете. ------------ Пропишите в конфигурационном файле следующую строку, которая отвечает за актуализацию времени: 0 0 * * * /sbin/ntpdate ru.pool.ntp.org -------------------------------------------------------------------------------------------------------------------------------------------------------------- 5) Настройка Firewalld и SELinux. ------------ firewall-cmd --permanent --add-port=80/tcp |#|#| Команда для открытия 80 tcp-порта ------------ firewall-cmd --permanent --add-port=443/tcp |#|#| Команда для открытия 443 tcp-порта ------------ firewall-cmd --reload |#|#| Команда для перезапуска файрвола и применения всех изменений ------------ sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config |#|#| Команда для отключения SELinux на постоянную основу ------------ setenforce 0 |#|#| Команда для отключения SELinux в текущий момент -------------------------------------------------------------------------------------------------------------------------------------------------------------- 6) Подключение EPEL-репозитория и обновление пакетов. ------------ yum install -y epel-release |#|#| Команда для подключения EPEL-репозитория ------------ yum update -y |#|#| Команда для обновления установленных пакетов в системе -------------------------------------------------------------------------------------------------------------------------------------------------------------- 7) Установка и запуск Apache. ------------ yum install -y httpd |#|#| Команда для установки пакета "httpd" ------------ systemctl enable httpd |#|#| Команда для добавления службы "httpd" в автозагрузку ------------ systemctl start httpd |#|#| Команда для запуска службы "httpd" -------------------------------------------------------------------------------------------------------------------------------------------------------------- 8) Установка и настройка PHP 8.1. ------------ yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm |#|#| Команда для подключения REMI-репозитория ------------ yum-config-manager --disable 'remi-php*' |#|#| Команда для отключения установки выбренной версии PHP по умолчанию из REMI-репозитория ------------ yum-config-manager --enable remi-php81 |#|#| Команда для включения установки версии PHP 8.1 по умолчанию из REMI-репозитория ------------ yum install -y php php-{cli,fpm,mysqlnd,zip,devel,gd,mbstring,curl,xml,pear,bcmath,json,opcache,redis,memcache} |#|#| Команда для установки пакетов "php" ------------ yum install -y php-mbstring php-gd php-simplexml php-intl php-mysql php-mysqli |#|#| Команда для установки дополнительных пакетов "php" ------------ yum install -y php-ldap php-imap php-pecl-zendopcache php-pecl-apcu php-xmlrpc php-pear-CAS php-zip php-sodium |#|#| Команда для установки дополнительных пакетов "php" ------------ nano /etc/php.ini |#|#| Данной командой отредактируем конфигурационный файл "php.ini" ------------ Найдите и приведите строки в конфигурационном файле к следующему виду(по надобности раскомментируйте): upload_max_filesize = 256M post_max_size = 256M date.timezone = "Asia/Yekaterinburg" -------------------------------------------------------------------------------------------------------------------------------------------------------------- 9) Настройка Apache и PHP. ------------ nano /etc/httpd/conf/httpd.conf |#|#| Данной командой отредактируем конфигурационный файл "httpd.conf" ------------ Найдите и приведите строки в конфигурационном файле к следующему виду(добавьте index.php): <IfModule dir_module> DirectoryIndex index.php index.html </IfModule> ------------ nano /etc/httpd/conf.d/glpi.conf |#|#| Данной командой создадим/отредактируем конфигурационный файл "glpi.conf" ------------ Приведите конфигурационный файл к следующему виду: <VirtualHost *:80> Define root_domain glpi.test.local Define root_path /var/www/glpi ServerName ${root_domain} DocumentRoot ${root_path} </VirtualHost> ------------ systemctl restart httpd |#|#| Команда для перезапуска службы "httpd" ------------ mkdir -p /var/www/glpi |#|#| Команда для создания каталога "/var/www/glpi" ------------ nano /var/www/glpi/index.php |#|#| Данной командой создадим/отредактируем конфигурационный файл "index.php" ------------ Приведите конфигурационный файл к следующему виду: <?php phpinfo(); ?> -------------------------------------------------------------------------------------------------------------------------------------------------------------- 10) Установка и настройка MariaDB. ------------ Актуальную версию MariaDB можно найти на сайте: https://downloads.mariadb.org/mariadb/repositories ------------ nano /etc/yum.repos.d/mariadb-11.3.repo |#|#| Команда для добавления репозитория с ПО MariaDB версии 11.3 ------------ yum update -y |#|#| Команда для обновления установленных пакетов в системе ------------ yum install -y mariadb-server |#|#| Команда для установки пакета "mariadb-server" ------------ systemctl enable mariadb |#|#| Команда для добавления службы "mariadb" в автозагрузку ------------ systemctl start mariadb |#|#| Команда для запуска службы "mariadb" ------------ mysqladmin -u root password |#|#| Выполним данную команду для задания пароля суперпользователю СУБД ------------ systemctl restart httpd |#|#| Команда для перезапуска службы "httpd" ------------ mysql -uroot -p |#|#| Команда для подключения к MariaDB с помощью пользователя root ------------ CREATE DATABASE glpi DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; |#|#| Команда для создания базы данных "glpi" ------------ GRANT ALL PRIVILEGES ON glpi.* TO glpi@localhost IDENTIFIED BY 'GlpIAdmiN'; |#|#| Команда для создания пользователя "glpi" с паролем "GlpIAdmiN" ------------ \q |#|#| Команда для выхода из "MariaDB" -------------------------------------------------------------------------------------------------------------------------------------------------------------- 11) Загрузка и установка ПО GLPI. ------------ wget https://github.com/glpi-project/glpi/releases/download/10.0.6/glpi-10.0.6.tgz |#|#| Команда для скачивания сжатого архива с ПО "glpi" с версией "10.0.6" ------------ systemctl restart httpd |#|#| Команда для перезапуска службы "httpd" ------------ tar -xvzf glpi-*.tgz -C /var/www/glpi --strip-components 1 |#|#| Команда для распаковки архива в созданный ранее каталог "/var/www/glpi" ------------ chown -R apache:apache /var/www/glpi |#|#| Команда для назначения каталогу "/var/www/glpi" владельца и группы с наименованием "Apache" ------------ Для дальнейшей установки ПО "GLPI", запускаем браузер и вводим адрес сервера: http://ip-address/ ------------ Попав в Web-интерфейс, приступаем к графической установке ПО GLPI: ------------ 1 - Выбираем язык ПО > OK 2 - Принимаем лицензионное соглашение > Продолжить 3 - Кликаем по кнопке "Установить" 4 - В данном шаге нужно ввести данные для подключения к БД созданной в MariaDB: SQL сервер (MariaDB или MySQL): localhost SQL пользователь: glpi SQL пароль: GlpIAdmiN 5 - Выбираем БД "glpi" > Продолжить 6 - После успешной инициализации БД запускаем GLPI ------------ Для первоначального входа в систему GLPI используются следующие учетные данные: Login: glpi Password: glpi ------------ После входа в систему обязательно смените пароли у всех пользователей, по необходимости можете создать новых и удалить тех, что созданы по умолчанию. ------------ Также после входа в систему, на главном экране будут показаны подсказки по тем действиям, которые нужно выполнить в первую очередь перед началом использования ПО. ------------ rm -rf /var/www/glpi/install/install.php |#|#| Команда для удаления с сервера файла установки GLPI ------------ crontab -e |#|#| Команда для открытия конфигурационного файла планировщика задач ПО "crontab" в текстовом редакторе "vim" ------------ Добавьте в конфигурационном файле вторую строку, которая отвечает за запуск некоторых функций в ПО GLPI: * * * * * /bin/php /var/www/glpi/front/cron.php &>/dev/null -------------------------------------------------------------------------------------------------------------------------------------------------------------- 12) Загрузка и установка плагина FusionInventory. ------------ yum install -y bzip2 |#|#| Команда для установки пакета "bzip2" ------------ wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi10.0.6%2B1.1/fusioninventory-10.0.6+1.1.tar.bz2 |#|#| Команда для скачивания архив-файла плагина "fusioninventory" ------------ tar -xvjf fusioninventory-*.tar.bz2 -C /var/www/glpi/plugins/ |#|#| Команда для распаковки архива в каталог "/var/www/glpi/plugins/" ------------ После распаковки плагина переходим в каталог, переходим в Web-интерфейс с ПО "GLPI" > Настройки > Плагины > Установить > Включить. -------------------------------------------------------------------------------------------------------------------------------------------------------------- 13) Загрузка и установка плагина Reports. ------------ wget https://github.com/yllen/reports/releases/download/v1.16.0/glpi-reports-1.16.0.tar.gz |#|#| Команда для скачивания архив-файла плагина "reports" ------------ tar -xvzf glpi-reports-*.tar.gz -C /var/www/glpi/plugins/ |#|#| Команда для распаковки архива в каталог "/var/www/glpi/plugins/" ------------ После распаковки плагина переходим в каталог, переходим в Web-интерфейс с ПО "GLPI" > Настройки > Плагины > Установить > Включить. -------------------------------------------------------------------------------------------------------------------------------------------------------------- 14) Загрузка и установка плагина Barcode. ------------ wget https://github.com/pluginsGLPI/barcode/releases/download/2.7.1/glpi-barcode-2.7.1.tar.bz2 |#|#| Команда для скачивания архив-файла плагина "reports" ------------ tar -xvjf glpi-barcode-*.tar.bz2 -C /var/www/glpi/plugins/ |#|#| Команда для распаковки архива в каталог "/var/www/glpi/plugins/" ------------ После распаковки плагина переходим в каталог, переходим в Web-интерфейс с ПО "GLPI" > Настройки > Плагины > Установить > Включить. -------------------------------------------------------------------------------------------------------------------------------------------------------------- 15) Загрузка и установка плагина TelegramBot. ------------ wget https://github.com/pluginsGLPI/telegrambot/releases/download/2.0.0/glpi-telegrambot-2.0.0.tar.bz2 |#|#| Команда для скачивания архив-файла плагина "telegrambot" ------------ tar -xvjf glpi-telegrambot-*.tar.bz2 -C /var/www/glpi/plugins/ |#|#| Команда для распаковки архива в каталог "/var/www/glpi/plugins/" ------------ После распаковки плагина переходим в каталог, переходим в Web-интерфейс с ПО "GLPI" > Настройки > Плагины > Установить > Включить. -------------------------------------------------------------------------------------------------------------------------------------------------------------- 16) Исправление ошибки "13 tables are using the deprecated MyISAM storage engine. Run the "php bin/console glpi:migration:myisam_to_innodb" command to migrate them.". ------------ cd /var/www/glpi/ |#|#| Команда для перехода в каталог "/var/www/glpi/" ------------ php bin/console migration:myisam_to_innodb |#|#| Выполнив данную команду, вы мигрируете существующие "db" в движок "InnoDB". -------------------------------------------------------------------------------------------------------------------------------------------------------------- На этом инструкция закончена! Спасибо за внимание!