Instalación de iTop ITSM y CMDB en Centos 8 o Rocky Linux

iTop (IT Operational Portal) es un producto basado en web de código abierto para automatizar los departamentos de TI y los proveedores de servicios de las empresas. iTop está diseñado en torno a las mejores prácticas de ITIL/ITSM y es lo suficientemente flexible como para adaptarse a los procesos de su organización.

Preparación

Instale un paquete de utilidades para la visualización automática de gráficos. necesitamos el componente /usr/bin/punto

$ sudo dnf -y install graphviz

Instalar utilidades adicionales

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

Instalación del servidor web Nginx

Instale el servidor web NGINX. Para hacer esto, agregue un repositorio.

$ sudo nano /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=https://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=https://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Instale NGINX, agréguelo al inicio y ejecútelo. Comprobando el estado, si el puerto 80/tcp está involucrado

$ sudo dnf -y install nginx
$ sudo systemctl enable --now nginx
$ systemctl status nginx
$ ss -nltup

Configuración del cortafuegos

Permitir conexión en los puertos 80/tcp (http), 443/tcp (https)

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

Instalar php, configurar php-fpm

Agregar el repositorio de Remirepo

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

Limpiamos los metadatos, actualizamos.

$ sudo dnf clean metadata
$ sudo dnf -y update

Habilite el módulo remi-7.4 para instalar PHP 7.4 desde el repositorio conectado

$ sudo dnf module list php
$ sudo dnf module enable php:remi-7.4
$ sudo dnf module list php

Instale PHP y los módulos necesarios

$ 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

Configurando 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

Configurando PHP-FPM. Cambiar propietario en la configuración de 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

Cambiar el propietario de los directorios (por defecto es 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

Agregue php-fpm para cargar automáticamente e iniciar el servicio. Miramos el estado.

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

Instalando iTop, configurando Nginx

Crear directorio para iTop

$ sudo mkdir -p /opt/itop

Descargando iTop

Descargar

Desembalaje de iTop

$ unzip iTop-2.7.4-7194.zip

Mueva el directorio web descomprimido a /opt/itop y cambie el propietario

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

Deshabilitar la configuración predeterminada de Nginx

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

Crea una nueva configuración de Nginx

$ 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;
    }
}

Comprobar la configuración de Nginx en busca de errores y reiniciar el servidor web

$ sudo nginx -t
$ sudo systemctl restart nginx

configuración SELinux

Agregar reglas de permiso para el directorio /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

PD: En el futuro, si instala extensiones para iTop (extensiones), para directorios con extensiones, también deberá agregar reglas permisivas de SELinux.

Instalación del servidor de base de datos PerconaDB

Agregue el repositorio de PerconaDB

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

Elegir instalar PerconaDB Server 8.0

$ sudo percona-release setup ps80

Limpiamos la caché, instalamos PerconaDB, agregamos el servicio al inicio y lo iniciamos. Comprobando la versión

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

Miramos la contraseña de root generada.

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

Lanzando la configuración inicial de PerconaDB

$ sudo mysql_secure_installation

Cambie la contraseña de root por una nueva y responda preguntas

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!

Alternativamente, puede instalar el servidor de base de datos MariaDB

Instale MariaDB, agregue el servicio al inicio e inícielo. Nos fijamos en el estado. Compruebe si el puerto 3306/tcp está involucrado

$ sudo dnf install mariadb-server mariadb -y
$ sudo systemctl enable --now mariadb
$ systemctl status mariadb
$ ss -nltup

Lanzando la configuración inicial de MariaDB

$ sudo mysql_secure_installation

Establecer contraseña de root, responder preguntas

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!

Crear una nueva base y usuario

Conexión a PerconaDB / MariaDB DBMS

$ mysql -u root -p

Miramos las bases de datos preinstaladas, comprobamos la versión.

> show databases;
> select version();

Crea una base de datos y un usuario con contraseña para iTop

> 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;

Configurando iTop

A continuación, abra el navegador, vaya a la dirección especificada (en este caso: https://itop.itdraft.ru) y configure iTop. Configuramos los parámetros para conectarnos a la base de datos, qué complementos instalar, etc.

En el futuro, consideraremos la integración de iTop con el servicio de directorio FreeIPA, restableciendo la contraseña de administrador, configurando notificaciones por correo electrónico e instalando extensiones tanto desde la tienda de aplicaciones como en modo manual.

Actualizaciones del boletín

Ingrese su dirección de correo electrónico a continuación para suscribirse a nuestro boletín