Instalación de Pandora ITSM en EL 8

Véase los “Requisitos mínimos generales”.

Requisitos previos

  • Sistema Operativo EL 8 (RHEL 8, Rocky Linux 8, Alma Linux 8).
  • Usuario con permisos de root.
  • Conexión a internet.
  • 2 GB de memoria RAM y 10 GB de espacio en disco libre.

Configuración de repositorios

Para RHEL es necesario contar con un supscripción activa y válida:

subscription-manager register --user < user >
subscription-manager attach


  • RHEL 8:
dnf install -y \
	tar \
	dnf-utils \
	https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
	http://rpms.remirepo.net/enterprise/remi-release-8.rpm \
	https://repo.percona.com/yum/percona-release-latest.noarch.rpm
 
dnf module reset -y php
dnf module install -y php:remi-8.2
  • Rocky Linux 8, Alma Linux 8, CentOS 8:
dnf install -y \
	tar \
	dnf-utils \
	epel-release \
	http://rpms.remirepo.net/enterprise/remi-release-8.rpm \
	https://repo.percona.com/yum/percona-release-latest.noarch.rpm
 
dnf module reset -y php
 
dnf module install -y php:remi-8.2

Instalación de dependencias extra

dnf install -y wget \
	vim \
	sudo \
	curl

Instalación de base de datos Percona

dnf module disable -y mysql
 
percona-release setup ps80 -y
 
dnf install -y percona-server-server

Instalación de dependencias de la Consola web

dnf install -y httpd \
    php \
    php-cli \
    php-common \
    php-curl \
    php-fileinfo \
    php-gd \
    php-gettext \
    php-imap \
    php-intl \
    php-ldap \
    php-mbstring \
    php-mcrypt \
    php-mysqli \
    php-zip \
    chromium

Ajustes del sistema operativo y la base de datos

setenforce 0
 
sed -i -e "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
 
systemctl disable firewalld --now
cat > /etc/my.cnf << EO_CONFIG_TMP
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
EO_CONFIG_TMP
systemctl start mysqld
 
export MYSQL_PWD=$(grep "temporary password" /var/log/mysqld.log | rev | cut -d' ' -f1 | rev)
 
mysql -uroot -p$MYSQL_PWD
 
SET PASSWORD FOR 'root'@'localhost' = 'P4ndor4.itsm';
 
CREATE DATABASE pandoraitsm;
 
CREATE USER 'pandoraitsm'@'%' IDENTIFIED BY 'P4ndor4.itsm';
 
ALTER USER 'pandoraitsm'@'%' IDENTIFIED WITH mysql_native_password BY 'P4ndor4.itsm';
 
GRANT ALL PRIVILEGES ON pandoraitsm.* TO 'pandoraitsm'@'%';
 
exit;
POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
 
cat > /etc/my.cnf << EO_CONFIG_F
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
character-set-server=utf8
skip-character-set-client-handshake
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Mysql optimizations for Pandora ITSM database
 
max_allowed_packet = 64M
innodb_buffer_pool_size = $POOL_SIZE
innodb_lock_wait_timeout = 90
innodb_file_per_table
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_io_capacity = 100
thread_cache_size = 8
thread_stack    = 256K
max_connections = 100
 
key_buffer_size=4M
read_buffer_size=128K
read_rnd_buffer_size=128K
sort_buffer_size=128K
join_buffer_size=4M
 
query_cache_type = 1
query_cache_size = 64M
query_cache_min_res_unit = 2k
query_cache_limit = 256K
 
sql_mode=""
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
EO_CONFIG_F
sed -i -e "/query_cache.*/ s/^#*/#/g" /etc/my.cnf
 
systemctl restart mysqld
 
systemctl enable mysqld --now

Instalación de Pandora ITSM

Solicite su prueba gratuita en este enlace, una vez haya sido otorgada obtendrá el enlace de descarga del instalador.

Luego de haber descargado el fichero instalador se debe ejecutar:

dnf install -y ./IntegriaIMS_enterprise*.rpm

Instalación de PM2

curl -fsSL https://rpm.nodesource.com/setup_20.x | bash -
 
dnf install -y nodejs
 
cd /var/www/html/pandoraitsm/extras/chat_server
 
npm install pm2@latest -g
 
npm update
 
pm2 start server.js
 
pm2 save
 
pm2 startup
cat > /var/www/html/pandoraitsm/extras/chat_server/config/config.js << EO_CONFIG_TMP
// If this file is modified, check the chat_set_default_values() function.
module.exports = {
  PORT: process.env.PORT || 5000,
  DBPORT: process.env.DBPORT || 3306,
  DBHOST: process.env.DBHOST || "127.0.0.1",
  DBDATABASE: process.env.DBDATABASE || "pandoraitsm",
  DBUSER: process.env.DBUSER || "pandoraitsm",
  DBPASS: process.env.DBPASS || "P4ndor4.itsm",
  DBLOGGIN: process.env.DBLOGGIN || console.log,
  HASH: process.env.HASH || "ef541cdc541a065d52c9a375223594219e3899343db4ef6d89eb664288528b18"
};
 
EO_CONFIG_TMP
systemctl enable mysqld --now
 
systemctl enable httpd --now
 
systemctl enable php-fpm --now

Población de la base de datos

mysql -upandoraitsm -pP4ndor4.itsm
 
USE pandoraitsm;
 
SOURCE /var/www/html/pandoraitsm/integria_db.sql
 
SOURCE /var/www/html/pandoraitsm/integria_dbdata.sql
 
exit;

Ajustes de la consola

cat > /var/www/html/pandoraitsm/include/config.php << EO_CONFIG_F
<?php
\$config["dbtype"] = "mysql";
\$config["dbname"]="pandoraitsm";
\$config["dbuser"]="pandoraitsm";
\$config["dbpass"]="P4ndor4.itsm";
\$config["dbhost"]="127.0.0.1";
\$config["homedir"]="/var/www/html/pandoraitsm";
\$config["homeurl"]="/pandoraitsm";	
error_reporting(0); 
\$ownDir = dirname(__FILE__) . '/';
include (\$ownDir . "config_process.php");
 
EO_CONFIG_F
cat > /etc/httpd/conf.d/PandoraITSM.conf << EO_CONFIG_F
ServerTokens Prod
<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
 
EO_CONFIG_F
sed -i -e "s/php_flag engine off//g" /var/www/html/pandoraitsm/images/.htaccess
 
sed -i -e "s/php_flag engine off//g" /var/www/html/pandoraitsm/attachment/.htaccess
chmod 600 /var/www/html/pandoraitsm/include/config.php
 
chown -R apache. /var/www/html/pandoraitsm
 
mv /var/www/html/pandoraitsm/install.php /var/www/html/pandoraitsm/install.done
sed -i -e "s/^max_input_time.*/max_input_time = -1/g" /etc/php.ini
 
sed -i -e "s/^max_execution_time.*/max_execution_time = 0/g" /etc/php.ini
 
sed -i -e "s/^upload_max_filesize.*/upload_max_filesize = 800M/g" /etc/php.ini
 
sed -i -e "s/^memory_limit.*/memory_limit = 800M/g" /etc/php.ini
 
sed -i -e "s/.*post_max_size =.*/post_max_size = 800M/" /etc/php.ini
 
echo 'TimeOut 900' > /etc/httpd/conf.d/timeout.conf
cat > /var/www/html/index.html << EOF_INDEX
<meta HTTP-EQUIV="REFRESH" content="0; url=/pandoraitsm/">
EOF_INDEX
systemctl restart httpd
 
systemctl restart php-fpm

Optimización del Kernel

cat >> /etc/sysctl.conf <<EO_KO
# Pandora ITSM optimisation
 
# default=5
net.ipv4.tcp_syn_retries = 3
 
# default=5
net.ipv4.tcp_synack_retries = 3
 
# default=1024
net.ipv4.tcp_max_syn_backlog = 65536
 
# default=124928
net.core.wmem_max = 8388608
 
# default=131071
net.core.rmem_max = 8388608
 
# default = 128
net.core.somaxconn = 1024
 
# default = 20480
net.core.optmem_max = 81920
 
EO_KO
sysctl --system

Cron y Logrotate

cat > /etc/logrotate.d/pandora_itsm <<EO_LRA
/var/www/html/pandoraitsm/integria.log
/var/www/html/pandoraitsm/pandora_itsm.log  {
        weekly
        missingokas
        size 100000
        rotate 3
        maxage 15
        compress
        notifempty
        create 644 apache root
}
EO_LRA
chmod 0644 /etc/logrotate.d/pandora_itsm
 
echo "*/5 * * * * php /var/www/html/pandoraitsm/include/integria_cron.php" >> /etc/crontab

Una vez finalizada la instalación realice la primera conexión a Pandora ITSM.