Пост

Установка iTop ITSM & CMDB в Centos 8 или Rocky Linux

iTop (IT Operational Portal) - это веб-продукт с открытым исходным кодом, предназначенный для автоматизации ИТ-подразделений предприятий и сервис провайдеров. iTop разработан на основе лучших практик ITIL/ITSM и в то же время является достаточно гибким, чтобы адаптироваться к процессам вашей организации.

Подготовка

Устанавливаем пакет утилит для автоматической визуализации графов, т.к. нам понадобится компонент /usr/bin/dot

1
$ sudo dnf -y install graphviz

Устанавливаем дополнительные утилиты

1
$ sudo dnf -y install wget nano unzip dnf-utils policycoreutils-python-utils

Установка web-сервера Nginx

Устанавливаем web-сервер Nginx. Для этого добавляем репозиторий

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ sudo nano /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Устанавливаем NGINX, добавляем его в автозагрузку и запускаем его. Проверяем статус, задействован ли порт 80/tcp

1
2
3
4
$ sudo dnf -y install nginx
$ sudo systemctl enable --now nginx
$ systemctl status nginx
$ ss -nltup

Настройка Firewall

Разрешаем подключение по портами 80/tcp (http), 443/tcp (https)

1
2
$ sudo firewall-cmd --zone=public --add-service={http,https} --permanent
$ sudo firewall-cmd --reload

Установка php, настройка php-fpm

Добавляем репозиторий Remirepo

1
$ sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Чистим метаданные, обновляемся

1
2
$ sudo dnf clean metadata
$ sudo dnf -y update

Включаем модуль remi-7.4 для установки PHP 7.4 из подключенного репозитория

1
2
3
$ sudo dnf module list php
$ sudo dnf module enable php:remi-7.4
$ sudo dnf module list php

Устанавливаем PHP и необходимые модули

1
2
$ sudo dnf -y install php php-fpm 
$ sudo dnf -y install php-common php-cli php-mysqlnd php-mcrypt php-ldap php-soap php-json php-xml php-gd php-zip

Настраиваем PHP

1
2
3
4
$ sudo sed -i 's@^short_open_tag = .*@short_open_tag = On@' /etc/php.ini
$ sudo sed -i 's@^date.timezone = .*@date.timezone = Europe/Moscow@' /etc/php.ini

$ sudo sed -i 's@^opcache.revalidate_freq= .*@opcache.revalidate_freq=0@' /etc/php.d/10-opcache.ini

Настраиваем PHP-FPM. Меняем владельца в конфиге php-fpm

1
2
3
4
$ sudo sed -i 's@^user = .*@user = nginx@' /etc/php-fpm.d/www.conf
$ sudo sed -i 's@^group = .*@group = nginx@' /etc/php-fpm.d/www.conf
$ sudo sed -i 's@^listen.owner = .*@listen.owner = nginx@' /etc/php-fpm.d/www.conf
$ sudo sed -i 's@^listen.group = .*@listen.group = nginx@' /etc/php-fpm.d/www.conf

Меняем владельца каталогов (по умолчанию стоит root:apache)

1
2
3
$ sudo chown -R root:nginx /var/lib/php/session
$ sudo chown -R root:nginx /var/lib/php/opcache
$ sudo chown -R root:nginx /var/lib/php/wsdlcache

Добавляем php-fpm в автозагрузку и запускаем сервис. Смотрим статус

1
2
$ sudo systemctl enable --now php-fpm
$ sudo systemctl status php-fpm

Установка iTop, настройка Nginx

Создаем каталог для iTop

1
$ sudo mkdir -p /opt/itop

Скачиваем iTop

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

1
$ unzip iTop-2.7.4-7194.zip

Перемещаем распакованный каталог web в /opt/itop и меняем владельца

1
2
$ sudo mv web /opt/itop/
$ sudo chown -R nginx:nginx /opt/itop/

Отключаем дефолтный конфиг Nginx

1
$ sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.disabled

Создаем новый конфиг Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ sudo nano /etc/nginx/conf.d/itop.conf
server {
    listen 80;
    server_name itop.itdraft.ru;

    root /opt/itop/web/;
    index index.php index.html index.htm;
    access_log /var/log/nginx/itop.access.log;
    error_log  /var/log/nginx/itop.error.log;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri $uri/ =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_read_timeout 300;
    }
}

Проверяем конфиг Nginx на ошибки и перезапускаем web-сервер

1
2
$ sudo nginx -t
$ sudo systemctl restart nginx

Настройка SELinux

Добавляем разрешающие правила для каталога /opt/itop/web

1
2
3
$ sudo chcon -R -t httpd_sys_rw_content_t /opt/itop/web
$ sudo setsebool -P httpd_can_network_connect on
$ sudo setsebool -P httpd_can_sendmail on

P.S. В дальнейшем, если будите устанавливать расширения для iTop (extensions), для каталогов с расширениями так же надо добавить разрешающие правила SELinux

Устанавливаем сервер базы данных PerconaDB

Добавляем репозиторий PerconaDB

1
$ sudo yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

Выбираем для установки PerconaDB Server 8.0

1
$ sudo percona-release setup ps80

Чистим кэш, устанавливаем PerconaDB, добавялем сервис в автозагрузку и запускаем его. Проверяем версию

1
2
3
4
$ sudo dnf makecache
$ sudo dnf install -y percona-server-server
$ sudo systemctl enable --now mysqld.service
$ mysql -V

Смотрим сгенерированный root-пароль

1
$ sudo grep "temporary password" /var/log/mysqld.log

Запускаем первоначальную настройку PerconaDB

1
$ sudo mysql_secure_installation

Меняем root-пароль на новый и отвечаем на вопросы

1
2
3
4
5
6
7
New pass: 
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
All done!

Либо можно установить сервер базы данных MariaDB

Устанавливаем MariaDB, добавляем сервис в автозагрузку и запускаем его. Смотрим статус. Проверяем задействован ли порт 3306/tcp

1
2
3
4
$ sudo dnf install mariadb-server mariadb -y
$ sudo systemctl enable --now mariadb
$ systemctl status mariadb
$ ss -nltup

Запускаем первоначальную настройку MariaDB

1
$ sudo mysql_secure_installation

Устанавливаем root-пароль, отвечаем на вопросы

1
2
3
4
5
6
7
8
9
Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Thanks for using MariaDB!

Создаем новую базу и пользователя

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

1
$ mysql -u root -p

Смотрим предустановленные базы, проверяем версию

1
2
> show databases;
> select version();

Создаем базу и пользователя с паролем для iTop

1
2
3
4
5
> CREATE DATABASE itopdb CHARACTER SET utf8 COLLATE utf8_bin;
> CREATE USER 'itopuser'@'localhost' IDENTIFIED BY 'tqHVy656MX_8RZfa';
> GRANT ALL PRIVILEGES ON itopdb.* to 'itopuser'@'localhost';
> FLUSH PRIVILEGES;
> quit;

Настройка iTop

Далее открываем браузер, переходим по заданному адресу (в данном случае: http://itop.itdraft.ru) и настраиваем iTop. Задаем параметры подключения к базе, какие дополнения ставить и т.д.

В дальнейшем будет рассмотрена интеграция iTop со службой каталогов FreeIPA, сброс пароль админа, настройка e-mail уведомлений и установка расширений как из магазина приложений, так и в ручном режиме.

Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.