Cómo instalar OCS Inventory NG en Fedora 35

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.

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:

como descargar ocs inventory ng server para fedora 35, 34 y 33

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:

como instalar ocs inventory ng server en fedora 35, 34 y 33

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:

instalar ocs inventory ng server en fedora 35, 34 y 33

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:

Instalación de OCS Inventory NG Server en Fedora 35, 34 y 33

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:

ocs inventory ng server en fedora 35, 34 y 33

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:

ocs inventory ng server sobre fedora 35, 34 y 33

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!

Valora esta entrada

5/5 - (2 votos)

3 comentarios en «Cómo instalar OCS Inventory NG en Fedora 35»

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

    Responder
    • ¡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.

      Responder

Deja un comentario