En esta entrada veremos cómo instalar OCS Inventory NG en Fedora 35 (y anteriores) paso a paso, de modo que puedas trabajar con el servidor y la interfaz web OCS Reports de esta popular aplicación de gestión de inventario de sistemas informáticos desde tu servidor o VPS Fedora.
Contenido
Antes de instalar OCS Inventory NG en Fedora 35
Para poder completar los pasos de esta guía de instalación de OCS Inventory NG en Fedora 35 es importante satisfacer estos requerimientos básicos:
- Un sistema Fedora 35, 34 ó 33 actualizado.
- Un entorno o pila tipo LAMP (servicio web con PHP hasta la versión 7.4 y bases de datos MariaDB/MySQL).
- Acceso a línea de comandos con un usuario con permisos de sudo, o el propio usuario root.
- Conexión a Internet.
Si no dispones del entorno mínimo aún, puedes consultar nuestra guía de instalación de la pila LAMP en Fedora (teniendo en cuenta lo dicho sobre la versión de PHP).
Además, como necesitaremos algunas herramientas que se obtienen desde los repositorios de Fedora 35, actualizamos las listas de paquetes:
~$ sudo yum update
E instalamos dichas herramientas:
~$ sudo yum install -y tar wget
Cómo descargar OCS Inventory NG para Fedora 35
Vamos a descargar OCS Inventory NG para Fedora 35 desde la sección de lanzamientos del sitio web del proyecto:
Podemos descargar el paquete .tar.gz desde el navegador o, como vamos a hacer en este tutorial, desde consola con la herramienta wget:
~$ wget -q https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.9.2/OCSNG_UNIX_SERVER-2.9.2.tar.gz
Cómo instalar OCS Inventory NG en Fedora 35
Para instalar OCS Inventory NG en Fedora 35 es necesario realizar una serie de tareas con el fin de preparar el sistema y lanzar con éxito el instalador. Veamos con detalle estos pasos.
Pre-requisitos
Instalamos las dependencias y herramientas que se necesitan para compilar OCS Inventory NG en Fedora 35:
~$ sudo yum install -y make mod_perl perl-{Apache-DBI,Archive-Extract-Z-Compress-Zlib,DBD-MySQL,DBI,Net-IP,Mojolicious,Plack,Switch,XML-Simple}
También se necesitan algunas extensiones de PHP que, en el caso de Fedora 35, deben proceder del repositorio alternativo, por lo que hay que indicar el número de versión en el nombre de los paquetes; por ejemplo, para la versión 7.4:
~$ sudo yum install -y php74-php-{mbstring,gd,json,xml}
Si usas alguna versión anterior de Fedora (como Fedora 34 ó 33) que incluya una versión nativa de PHP compatible con OCS Inventory, puedes instalar los paquetes sin indicar número de versión:
~$ sudo yum install -y php-{mbstring,gd,json,xml}
Archivos de OCS Inventory NG Server
Descomprimimos el paquete que acabamos de descargar en el directorio de trabajo:
~$ tar xf OCSNG_UNIX_SERVER-2.9.2.tar.gz
Cambiamos el directorio de trabajo al nuevo subdirectorio que se acaba de crear:
~$ cd OCSNG_UNIX_SERVER-2.9.2
Y lanzamos el instalador:
$ sudo ./setup.sh
Un script interactivo se encargará de comprobar que el sistema cumple los requisitos necesarios, haciéndonos confirmar cada paso:
+----------------------------------------------------------+ | | | Welcome to OCS Inventory NG Management server setup ! | | | +----------------------------------------------------------+ Trying to determine which OS or Linux distribution you use +----------------------------------------------------------+ | Checking for Apache web server binaries ! | +----------------------------------------------------------+ CAUTION: If upgrading Communication server from OCS Inventory NG 1.0 RC2 and previous, please remove any Apache configuration for Communication Server! Do you wish to continue ([y]/n)? Assuming Communication server 1.0 RC2 or previous is not installed on this computer. Starting OCS Inventory NG Management server setup from folder /home/instalador/OCSNG_UNIX_SERVER-2.9.2 Storing log in file /home/instalador/OCSNG_UNIX_SERVER-2.9.2/ocs_server_setup.log +----------------------------------------------------------+ | Checking for database server properties... | +----------------------------------------------------------+ Your MySQL client seems to be part of MySQL version 10.5. Your computer seems to be running MySQL 4.1 or higher, good ;-) Which host is running database server [localhost] ? OK, database server is running on host localhost ;-) On which port is running database server [3306] ? OK, database server is running on port 3306 ;-) +----------------------------------------------------------+ | Checking for Apache web server daemon... | +----------------------------------------------------------+ Where is Apache daemon binary [/usr/sbin/httpd] ? OK, using Apache daemon /usr/sbin/httpd ;-) +----------------------------------------------------------+ | Checking for Apache main configuration file... | +----------------------------------------------------------+ Where is Apache main configuration file [/etc/httpd/conf/httpd.conf] ? OK, using Apache main configuration file /etc/httpd/conf/httpd.conf ;-) +----------------------------------------------------------+ | Checking for Apache user account... | +----------------------------------------------------------+ Which user account is running Apache web server [apache] ? OK, Apache is running under user account apache ;-) +----------------------------------------------------------+ | Checking for Apache group... | +----------------------------------------------------------+ Which user group is running Apache web server [apache] ? OK, Apache is running under users group apache ;-) +----------------------------------------------------------+ | Checking for Apache Include configuration directory... | +----------------------------------------------------------+ Setup found Apache Include configuration directory in /etc/httpd/conf.d. Setup will put OCS Inventory NG Apache configuration in this directory. Where is Apache Include configuration directory [/etc/httpd/conf.d] ? OK, Apache Include configuration directory /etc/httpd/conf.d found ;-) +----------------------------------------------------------+ | Checking for PERL Interpreter... | +----------------------------------------------------------+ Found PERL interpreter at </usr/bin/perl> ;-) Where is PERL interpreter binary [/usr/bin/perl] ? OK, using PERL interpreter /usr/bin/perl ;-) Do you wish to setup Communication server on this computer ([y]/n)? +----------------------------------------------------------+ | Checking for Make utility... | +----------------------------------------------------------+ OK, Make utility found at </usr/bin/make> ;-) +----------------------------------------------------------+ | Checking for Apache mod_perl version... | +----------------------------------------------------------+ Checking for Apache mod_perl version 1.99_22 or higher Found that mod_perl version 1.99_22 or higher is available. OK, Apache is using mod_perl version 1.99_22 or higher ;-) +----------------------------------------------------------+ | Checking for Communication server log directory... | +----------------------------------------------------------+ Communication server can create detailed logs. This logs can be enabled by setting integer value of LOGLEVEL to 1 in Administration console menu Configuration. Where to put Communication server log directory [/var/log/ocsinventory-server] ? OK, Communication server will put logs into directory /var/log/ocsinventory-server ;-) +----------------------------------------------------------------------------+ | Checking for Communication server plugins configuration directory... | +----------------------------------------------------------------------------+ Communication server need a directory for plugins configuration files. Where to put Communication server plugins configuration files [/etc/ocsinventory-server/plugins] ? OK, Communication server will put plugins configuration files into directory /etc/ocsinventory-server/plugins ;-) +-------------------------------------------------------------------+ | Checking for Communication server plugins perl directory... | +-------------------------------------------------------------------+ Communication server need a directory for plugins Perl modules files. Where to put Communication server plugins Perl modules files [/etc/ocsinventory-server/perl] ? Where to put Communication server plugins Perl modules files [/etc/ocsinventory-server/perl] ? OK, Communication server will put plugins Perl modules files into directory /etc/ocsinventory-server/perl ;-) +----------------------------------------------------------+ | Checking for required Perl Modules... | +----------------------------------------------------------+ Checking for DBI PERL module... Found that PERL module DBI is available. Checking for Apache::DBI PERL module... Found that PERL module Apache::DBI is available. Checking for DBD::mysql PERL module... Found that PERL module DBD::mysql is available. Checking for Compress::Zlib PERL module... Found that PERL module Compress::Zlib is available. Checking for XML::Simple PERL module... Found that PERL module XML::Simple is available. Checking for Net::IP PERL module... Found that PERL module Net::IP is available. Checking for Archive::Zip Perl module... Found that PERL module Archive::Zip is available. Do you wish to setup Rest API server on this computer ([y]/n)? +----------------------------------------------------------+ | Checking for REST API Dependencies ... | +----------------------------------------------------------+ Found that PERL module Mojolicious::Lite is available. Found that PERL module Switch is available. Found that PERL module Plack::Handler is available. +----------------------------------------------------------+ | Configuring REST API Server files ... | +----------------------------------------------------------+ Where do you want the API code to be store [/usr/lib64/perl5/vendor_perl] ? Copying files to /usr/lib64/perl5/vendor_perl +----------------------------------------------------------+ | Configuring REST API Server configuration files ... | +----------------------------------------------------------+ +----------------------------------------------------------+ | OK, looks good ;-) | | | | Configuring Communication server Perl modules... | +----------------------------------------------------------+ Checking if your kit is complete... Looks good Generating a Unix-style Makefile Writing Makefile for Apache::Ocsinventory Writing MYMETA.yml and MYMETA.json +----------------------------------------------------------+ | OK, looks good ;-) | | | | Preparing Communication server Perl modules... | +----------------------------------------------------------+ +----------------------------------------------------------+ | OK, prepare finshed ;-) | | | | Installing Communication server Perl modules... | +----------------------------------------------------------+ +----------------------------------------------------------+ | OK, Communication server Perl modules install finished;-)| | | | Creating Communication server log directory... | +----------------------------------------------------------+ Creating Communication server log directory /var/log/ocsinventory-server. Fixing Communication server log directory files permissions. Configuring logrotate for Communication server. Removing old communication server logrotate file /etc/logrotate.d/ocsinventory-NG Writing communication server logrotate to file /etc/logrotate.d/ocsinventory-server +----------------------------------------------------------------------+ | OK, Communication server log directory created ;-) | | | | Creating Communication server plugins configuration directory... | +----------------------------------------------------------------------+ Creating Communication server plugins configuration directory /etc/ocsinventory-server/plugins. +----------------------------------------------------------------------+ | OK, Communication server plugins configuration directory created ;-) | | | | Creating Communication server plugins Perl directory... | +----------------------------------------------------------------------+ Creating Communication server plugins Perl directory /etc/ocsinventory-server/perl. +----------------------------------------------------------------------+ | OK, Communication server plugins Perl directory created ;-) | | | | Now configuring Apache web server... | +----------------------------------------------------------------------+ To ensure Apache loads mod_perl before OCS Inventory NG Communication Server, Setup can name Communication Server Apache configuration file 'z-ocsinventory-server.conf' instead of 'ocsinventory-server.conf'. Do you allow Setup renaming Communication Server Apache configuration file to 'z-ocsinventory-server.conf' ([y]/n) ? OK, using 'z-ocsinventory-server.conf' as Communication Server Apache configuration file Removing old communication server configuration to file /etc/httpd/conf.d/ocsinventory.conf Writing communication server configuration to file /etc/httpd/conf.d/z-ocsinventory-server.conf +----------------------------------------------------------------------+ | OK, Communication server setup successfully finished ;-) | | | | Please, review /etc/httpd/conf.d/z-ocsinventory-server.conf | | to ensure all is good. Then restart Apache daemon. | +----------------------------------------------------------------------+ Do you wish to setup Administration Server (Web Administration Console) on this computer ([y]/n)? +----------------------------------------------------------+ | Checking for Administration Server directories... | +----------------------------------------------------------+ CAUTION: Setup now install files in accordance with Filesystem Hierarchy Standard. So, no file is installed under Apache root document directory (Refer to Apache configuration files to locate it). If you're upgrading from OCS Inventory NG Server 1.01 and previous, YOU MUST REMOVE (or move) directories 'ocsreports' and 'download' from Apache root document directory. If you choose to move directory, YOU MUST MOVE 'download' directory to Administration Server writable/cache directory (by default /var/lib/ocsinventory-reports), especially if you use deployment feature. Do you wish to continue ([y]/n)? Assuming directories 'ocsreports' and 'download' removed from Apache root document directory. Where to copy Administration Server static files for PHP Web Console [/usr/share/ocsinventory-reports] ? OK, using directory /usr/share/ocsinventory-reports to install static files ;-) Where to create writable/cache directories for deployment packages, administration console logs, IPDiscover and SNMP [/var/lib/ocsinventory-reports] ? OK, writable/cache directory is /var/lib/ocsinventory-reports ;-) +----------------------------------------------------------+ | Checking for required Perl Modules... | +----------------------------------------------------------+ Checking for DBI PERL module... Found that PERL module DBI is available. Checking for DBD::mysql PERL module... Found that PERL module DBD::mysql is available. Checking for XML::Simple PERL module... Found that PERL module XML::Simple is available. Checking for Net::IP PERL module... Found that PERL module Net::IP is available. +----------------------------------------------------------+ | Installing files for Administration server... | +----------------------------------------------------------+ Creating PHP directory /usr/share/ocsinventory-reports/ocsreports. Copying PHP files to /usr/share/ocsinventory-reports/ocsreports. Fixing permissions on directory /usr/share/ocsinventory-reports/ocsreports. Creating database configuration file /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php. Creating IPDiscover directory /var/lib/ocsinventory-reports/ipd. Fixing permissions on directory /var/lib/ocsinventory-reports/ipd. Creating packages directory /var/lib/ocsinventory-reports/download. Fixing permissions on directory /var/lib/ocsinventory-reports/download. Creating snmp mibs directory /var/lib/ocsinventory-reports/snmp. Fixing permissions on directory /var/lib/ocsinventory-reports/snmp. Creating Administration server log files directory /var/lib/ocsinventory-reports/logs. Fixing permissions on directory /var/lib/ocsinventory-reports/logs. Creating Administration server temporary files directory /var/lib/ocsinventory-reports/tmp_dir. Fixing permissions on directory /var/lib/ocsinventory-reports/tmp_dir. Creating Administration server scripts log files directory /var/lib/ocsinventory-reports/scripts. Fixing permissions on directory /var/lib/ocsinventory-reports/scripts. Configuring IPDISCOVER-UTIL Perl script. Installing IPDISCOVER-UTIL Perl script. Fixing permissions on IPDISCOVER-UTIL Perl script. Writing Administration server configuration to file /etc/httpd/conf.d/ocsinventory-reports.conf +----------------------------------------------------------------------+ | OK, Administration server installation finished ;-) | | | | Please, review /etc/httpd/conf.d/ocsinventory-reports.conf | to ensure all is good and restart Apache daemon. | | | | Then, point your browser to http://server//ocsreports | to configure database server and create/update schema. | +----------------------------------------------------------------------+ Setup has created a log file /home/instalador/OCSNG_UNIX_SERVER-2.9.2/ocs_server_setup.log. Please, save this file. If you encounter error while running OCS Inventory NG Management server, we can ask you to show us its content ! DON'T FORGET TO RESTART APACHE DAEMON ! Enjoy OCS Inventory NG ;-)
Podemos salir del suddirectorio:
~$ cd ..
Y eliminarlo:
~$ sudo rm -rf OCSNG_UNIX_SERVER-2.9.2
Base de datos
Conectamos con el servicio de bases de datos con el cliente mysql y el usuario que utilicemos para administrar:
~$ mysql -u root -p
Creamos la base de datos:
> create database ocsweb;
En MariaDB o MySQL 5 creamos el usuario de la forma usual:
> create user ocs@localhost identified by 'XXXXXXXX';
Pero en MySQL 8 conviene especificar el plugin compatible:
> create user ocs@localhost identified with mysql_native_password by 'XXXXXXXX';
Concedemos los permisos al usuario sobre la base de datos:
> grant all privileges on ocsweb.* to ocs@localhost;
Y cerramos la conexión:
> exit
Servicio web
Durante la instalación se han añdido varias configuraciones para el servicio web, en algunas de las cuales hay que modificar la contraseña de acceso a la base de datos, por lo que editamos la configuración de OCS Reports:
~$ sudo nano /etc/httpd/conf.d/z-ocsinventory-server.conf
Buscamos esta línea:
... PerlSetVar OCS_DB_PWD ocs ...
Y cambiamos la contraseña:
... PerlSetVar OCS_DB_PWD XXXXXXXX ...
Guardamos el archivo y editamos el de la API REST:
~$ sudo nano /etc/httpd/conf.d/zz-ocsinventory-restapi.conf
Buscamos esta línea:
... $ENV{OCS_DB_PWD} = 'ocs'; ...
E igualmente cambiamos el valor:
... $ENV{OCS_DB_PWD} = 'XXXXXXXX'; ...
Guardamos y cerramos el archivo y reiniciamos el servicio web para aplicar todas las nuevas configuraciones:
~$ sudo systemctl restart httpd
Como OCS Inventory NG necesita acceder y escribir en ciertos directorios, cambiamos su propietario al usuario con el que corre el servicio web:
~$ sudo chown -R apache /usr/share/ocsinventory-reports/ocsreports/ /var/lib/ocsinventory-reports/
SELinux
Si tenemos SELinux activado en Fedora 35 no bastará con modificar los permisos ordinarios, sino que habrá que crear un contexto de lectura/escritura para el servicio web:
~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/ocsinventory-reports/ocsreports(/.*)?"
Y:
~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/ocsinventory-reports(/.*)?"
Aplicamos estos nuevos contextos con el comando restorecon:
~$ sudo restorecon -R /usr/share/ocsinventory-reports/ocsreports/ /var/lib/ocsinventory-reports/
Instalador web
Para acceder al instalador web de OCS Inventory NG Server en Fedora 35 desde un navegador, añadiremos la ruta /ocsreports a la dirección IP o nombre DNS del servidor.
Por ejemplo, el servidor Fedora 35 que usamos para redactar este artículo es accesible en el subdominio fedora.local.lan, por lo que podríamos emplear http://fedora.local.lan/ocsreports como URL:
En la primera página del instalador introducimos los datos de conexión al servicio de bases de datos tal como los creamos anteriormente (usuario, contraseña y base de datos de OCS Inventory NG).
La instalación se realizará en unos instantes, tras los cuales se nos informa de que el usuario y contraseña por defecto son admin/admin:
Dependiendo de la versión concreta que estemos instalando, es posible que sea necesario aplicar una actualización sobre la base de datos para poder continuar.
En cualquier caso, seguiremos el enlace «Click here to enter OCS-NG GUI» para iniciar sesión, mostrándose la página donde elegiremos el idioma de OCS Reports e introduciremos las credenciales del usuario administrador:
Usaremos el usuario y contraseña predeterminados, pero antes de acceder es conveniente borrar el instalador web, por motivos de seguridad. Esto lo podemos hacer fácilmente desde consola:
~$ sudo rm /usr/share/ocsinventory-reports/ocsreports/install.php
Iniciada la sesión, se mostrará la página principal de OCS Reports:
Una de las primeras acciones que deberíamos llevar a cabo es el cambio de contraseña del usuario administrador, para lo que accederemos a «MI CUENTA» desde el menú desplegable que ofrece el icono con forma de engranaje:
Además de la contraseña, podremos cambiar algunos datos más del perfil del usuario administrador. Terminada la realización de ajustes, los guardaremos con el enlace «OK«.
¡Todo listo para empezar a añadir clientes que conecten al servicio!
Post-instalación
A partir de la versión 2.9 algunas tareas de mantenimiento, como el recuento total del inventario de software, deben realizarse en segundo plano mediante una tarea de Cron. Este servicio no se suele instalar por defecto en Fedora 35, así que nos aseguraremos de que esté instalado:
~$ sudo yum -y install cronie
Iniciamos el servicio y lo habilitamos:
~$ sudo systemctl enable --now crond
Finalmente creamos la tarea necesaria:
~$ sudo nano /etc/cron.d/ocsinventory
Incluiremos una línea similar a la siguiente:
0 0 * * * apache cd /usr/share/ocsinventory-reports/ocsreports/crontab/ && /usr/bin/php cron_all_software.php
En la configuración anterior hemos programado las tareas de mantenimiento para las 0:00 horas de cada día, pero obviamente puedes elegir la hora y frecuencia que se adapten mejor a tus necesidades.
Conclusión
¡Apoya comoinstalar.me!
Si ya puedes empezar a monitorizar tus sistemas gracias a esta guía de instalación de OCS Inventory en Fedora 35, 34 ó 32 y quieres agradecérnoslo, puedes colaborar con el mantenimiento de este sitio y la creación de más tutoriales y guías dejando 1 $ de propina con PayPal:
O, si te sientes especialmente generoso, invitándonos a un café:
¡Gracias!
Actualizado a la versión 2.9.2.
Hola,
Tengo un dilema, ya es la tercera vez que hago la instalación en un virtual de OCSInventory en Fedora Server, sigo al pie de la letra lo que indicas, pero este no me muestra los datos de las tablas (usuarios, equipo sincronizado, grupos, etc.) y sale un mensaje que dice «PROCESANDO…«.
Creo yo que me falta algún permiso o instalar algo más pero no sé qué. Agradecería tu apoyo.
¡Hola, Paolo! Perdona la tardanza. Casi con toda seguridad se trata de que tu sistema no tiene la extensión JSON. El instalador de OCS Inventory NG Server comprueba la presencia de otras extensiones, pero no de esta curiosamente. Instálala y todo funcionará como se espera.