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