Thank you for reading this post, don't forget to subscribe!
Оригинал статьи:
https://itdraft.ru/2021/07/16/ustanovka-itop-itsm-cmdb-v-centos-8-ili-rocky-linux/
https://itdraft.ru/2021/08/20/integracziya-itop-itsm-cmdb-i-freeipa/
Подготовка
Устанавливаем пакет утилит для автоматической визуализации графов, т.к. нам понадобится компонент /usr/bin/dot
$ sudo dnf -y install graphviz
Устанавливаем дополнительные утилиты
$ 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
$ sudo dnf -y install nginx
$ sudo systemctl enable --now nginx
$ systemctl status nginx
$ ss -nltup
Настройка Firewall
Разрешаем подключение по портами 80/tcp (http), 443/tcp (https)
$ sudo firewall-cmd --zone=public --add-service={http,https} --permanent
$ sudo firewall-cmd --reload
Установка php, настройка php-fpm
Добавляем репозиторий Remirepo
$ sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Чистим метаданные, обновляемся
$ sudo dnf clean metadata
$ sudo dnf -y update
Включаем модуль remi-7.4 для установки PHP 7.4 из подключенного репозитория
$ sudo dnf module list php
$ sudo dnf module enable php:remi-7.4
$ sudo dnf module list php
Устанавливаем PHP и необходимые модули
$ 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
$ 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
$ 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)
$ 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 в автозагрузку и запускаем сервис. Смотрим статус
$ sudo systemctl enable --now php-fpm
$ sudo systemctl status php-fpm
Установка iTop, настройка Nginx
Создаем каталог для iTop
1 |
$ sudo mkdir -p /opt/itop |
Скачиваем iTop
https://sourceforge.net/projects/itop/files/itop/2.7.4/iTop-2.7.4-7194.zip/download
Распаковываем iTop
$ unzip iTop-2.7.4-7194.zip
Перемещаем распакованный каталог web в /opt/itop и меняем владельца
$ sudo mv web /opt/itop/
$ sudo chown -R nginx:nginx /opt/itop/
Отключаем дефолтный конфиг Nginx
$ 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.test.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-сервер
$ sudo nginx -t
$ sudo systemctl restart nginx
Настройка SELinux
Добавляем разрешающие правила для каталога /opt/itop/web
$ 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
Устанавливаем сервер базы данных PerconaDB
Добавляем репозиторий PerconaDB
$ sudo yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
Выбираем для установки PerconaDB Server 8.0
$ sudo percona-release setup ps80
Чистим кэш, устанавливаем PerconaDB, добавялем сервис в автозагрузку и запускаем его. Проверяем версию
$ sudo dnf makecache
$ sudo dnf install -y percona-server-server
$ sudo systemctl enable --now mysqld.service
$ mysql -V
Смотрим сгенерированный root-пароль
$ sudo grep "temporary password" /var/log/mysqld.log
Запускаем первоначальную настройку PerconaDB
$ 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
$ sudo dnf install mariadb-server mariadb -y
$ sudo systemctl enable --now mariadb
$ systemctl status mariadb
$ ss -nltup
Запускаем первоначальную настройку MariaDB
$ 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
$ mysql -u root -p
Смотрим предустановленные базы, проверяем версию
> 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.test.ru) и настраиваем iTop. Задаем параметры подключения к базе, какие дополнения ставить и т.д.
В дальнейшем будет рассмотрена интеграция iTop со службой каталогов FreeIPA, сброс пароль админа, настройка e-mail уведомлений и установка расширений как из магазина приложений, так и в ручном режиме.
=====================================================================================================
Интеграция iTop ITSM & CMDB и FreeIPA
Для интеграции iTop и FreeIPA необходимо завести во FreeIPA сервисный аккаунт (например: itopsv), и отредактировать конфигурационный файл config-itop.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ sudo nano /opt/itop/web/conf/production/config-itop.php ... 'timezone' => 'Europe/Moscow', ... 'authent-ldap' => array ( 'host' => 'ldap://ipa.example.loc', 'port' => 389, 'default_user' => 'uid=itopsv,cn=users,cn=accounts,dc=example,dc=loc', 'default_pwd' => 'mysuperpasswd', 'base_dn' => 'cn=users,cn=accounts,dc=example,dc=loc', 'user_query' => '(&(uid=%1$s))', 'options' => array ( 17 => 3, 8 => 0, ), 'start_tls' => false, 'debug' => true, |
Далее в web-админке iTop в разделе «Управление конфигурациями» создаем новый контакт (тип: Персона)
Заполняем необходимые поля
Далее переходим в раздел «Инструменты администратора — Учетные записи» и создаем новую учетную запись (тип: Пользователь LDAP)
В строке «Персона» надо выбрать пользователя (которого мы создавали на предыдущем шаге)
В строке «Логин» прописываем логин из FreeIPA
Если iTop не может получить пользователей FreeIPA, все ошибки отображаются в лог-файле error.log:
$ tail -f /opt/itop/web/log/error.log