Cómo instalar OCS Inventory NG Server en Debian 10 Buster

En esta entrada veremos cómo instalar OCS Inventory NG Server en Debian 10 Buster paso a paso, de modo que en unos minutos podrás hacer funcionar este sistema de inventario automático de equipos sobre tu servidor o VPS Debian.

Existen adaptaciones de este tutorial para otras versiones de Debian que puedes encontrar fácilmente con la búsqueda de este sitio.

Antes de instalar OCS Inventory NG Server en Debian 10 Buster

Para poder completar con éxito esta guía de instalación de OCS Inventory NG Server en Debian 10 Buster es preciso previamente cumplir al menos estos requisitos mínimos:

  • Una máquina Debian 10 Buster actualizada.
  • Un entorno o pila LAMP (servidor web con PHP hasta la versión 7.4 y bases de datos).
  • Acceso a terminal de comandos con root o un usuario con privilegios de sudo.
  • Conexión a Internet.

En el supuesto de que aún no dispongas del entorno necesario, probablemente te interesará consultar antes nuestra guía de instalación de la pila LAMP en Debian 10 Buster.

Cómo descargar OCS Inventory NG Server para Debian 10 Buster

Vamos a descargar OCS Inventory NG Server para Debian 10 Buster desde el sitio web del proyecto, ya que los paquetes que ofrecen los repositorios del sistema están algo anticuados.

como descargar ocs inventory ng server para debian 10 buster

Encontraremos fácilmente el paquete con formato .tar.gz de la última versión disponible que, en este tutorial, descargaremos desde consola copiando el enlace y usándolo con el comando 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 Server en Debian 10 Buster

Antes de poder instalar OCS Inventory NG Server en Debian 10 Buster, debemos preparar el sistema para que disponga de todas las herramientas y complementos necesarios que necesita OCS Inventory Server. Vamos a ir detallando uno a uno estos preparativos:

Instalando los requisitos

Empezaremos instalando todos los paquetes necesarios desde el repositorio de Debian 10, para lo que actualizaremos primero las listas de paquetes:

~$ sudo apt update

E instalamos los paquetes que necesitamos con apt:

~$ sudo apt install -y make libapache-dbi-perl libapache2-mod-perl2 libarchive-zip-perl libdbd-mysql-perl libmojolicious-perl libnet-ip-perl libplack-perl libswitch-perl libxml-simple-perl

Algunos módulos de Perl necesarios no se encuentran en formato de paquetes de Debian 10, por lo que debemos instalarlos mediante la utilidad cpan de Perl:

~$ sudo cpan -i Apache2::SOAP XML::Entities

Si es la primera vez que usas cpan te preguntará si desesas que se autoconfigure:

...
Would you like to configure as much as possible automatically? [yes]

En cuanto a los paquetes de PHP, si usas la versión nativa de Debian 10 los instalaremos con el siguiente comando:

~$ sudo apt install -y php-curl php-gd php-mbstring php-xml

Pero si usas una versión procedente del repositorio alternativo, tendrás que indicar el número de la misma en el nombre de los paquetes; por ejemplo, para la versión 7.4:

~$ sudo apt install -y php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml

Para otra versión, cambia php7.4- por lo que proceda en el comando anterior.

Lo indicado y más cómodo es contestar que sí.

Base de datos para OCS Inventory NG

OCS Inventory NG Server se apoya sobre una base de datos MariaDB/MySQL, por lo que conectaremos con el cliente de consola mysql y un usuario administrador para preparar dicha base:

~$ mysql -u root -p

Creamos la nueva base para OCS Inventory:

> create database ocsweb;

En MariaDB o MySQL 5, creamos el usuario que administrará la base del siguiente modo:

> create user ocs@localhost identified by 'XXXXXXXX';

Pero en MySQL 8 es importante especificar el plugin de autenticación de usuario correcto en el momento de crearlo:

> create user ocs@localhost identified with mysql_native_password by 'XXXXXXXX';

Concedemos los permisos sobre la base al usuario:

> grant all privileges on ocsweb.* to ocs@localhost;

Y cerramos la sesión:

> exit

Instalación de OCS Inventory NG en Debian 10

Es el momento de desempaquetar el archivo de OCS Inventory NG Server que descargamos anteriormente. Podemos hacerlo en el directorio de trabajo:

~$ tar xf OCSNG_UNIX_SERVER-2.9.2.tar.gz

Cambiamos al subdirectorio que se acaba de crear:

~$ cd OCSNG_UNIX_SERVER-2.9.2/

Y lanzamos el instalador:

$ sudo ./setup.sh

Este script de instalación comenzará a realizar una serie de comprobaciones y nos solicitará confirmaciones y datos, pero podemos contestar con seguridad a todas las preguntas con los valores por defecto simplemente pulsando la tencla Intro:

+----------------------------------------------------------+
|                                                          |
|  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/chacho/OCSNG_UNIX_SERVER-2.9.2
Storing log in file /home/chacho/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/apache2ctl] ?
OK, using Apache daemon /usr/sbin/apache2ctl ;-)


+----------------------------------------------------------+
| Checking for Apache main configuration file...                  |
+----------------------------------------------------------+

Where is Apache main configuration file [/etc/apache2/apache2.conf] ?
OK, using Apache main configuration file /etc/apache2/apache2.conf ;-)


+----------------------------------------------------------+
| Checking for Apache user account...                                    |
+----------------------------------------------------------+

Which user account is running Apache web server [www-data] ?
OK, Apache is running under user account www-data ;-)


+----------------------------------------------------------+
| Checking for Apache group...                                                  |
+----------------------------------------------------------+

Which user group is running Apache web server [www-data] ?
OK, Apache is running under users group www-data ;-)


+----------------------------------------------------------+
| Checking for Apache Include configuration directory...   |
+----------------------------------------------------------+

Setup found Apache Include configuration directory in
/etc/apache2/conf-available.
Setup will put OCS Inventory NG Apache configuration in this directory.
Where is Apache Include configuration directory [/etc/apache2/conf-available] ?
OK, Apache Include configuration directory /etc/apache2/conf-available 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] ?
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/local/share/perl/5.28.1] ?
Copying files to /usr/local/share/perl/5.28.1

+----------------------------------------------------------+
| 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/apache2/conf-available/ocsinventory.conf
Writing communication server configuration to file /etc/apache2/conf-available/z-ocsinventory-server.conf

+----------------------------------------------------------------------+
|       OK, Communication server setup successfully finished ;-)       |
|                                                                      |
| Please, review /etc/apache2/conf-available/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/apache2/conf-available/ocsinventory-reports.conf

+----------------------------------------------------------------------+
|        OK, Administration server installation finished ;-)           |
|                                                                      |
| Please, review /etc/apache2/conf-available/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/chacho/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 ;-)

Si seguiste los pasos previos, al final de este script habrá quedado instalado OCS Inventory NG en Debian 10. En el caso de que aparezcan mensajes de error, habrá que solucionar el problema y volver a lanzar este script.

Terminada la instalación, podemos salir del directorio de trabajo:

$ cd ..

Y eliminarlo, puesto que ya no lo necesitaremos:

~$ sudo rm -rf OCSNG_UNIX_SERVER-2.9.2

Una de las configuraciones de OCS Inventory NG guarda los datos de conexión a la base de datos que creamos anteriormente, así que tendremos que editarlo para actualizar el valor de la contraseña del usuario de dicha base de datos:

~$ sudo nano /etc/apache2/conf-available/z-ocsinventory-server.conf

Buscaremos la siguiente línea:

...
  PerlSetVar OCS_DB_PWD ocs
...

Y sustituiremos el valor por defecto por la contraseña que establecimos en su momento:

...
  PerlSetVar OCS_DB_PWD XXXXXXXX
...

Guardamos los cambios, cerramos el archivo, y activaremos esta y otras configuraciones de OCS Inventory para Apache:

~$ sudo a2enconf ocsinventory-reports z-ocsinventory-server zz-ocsinventory-restapi

Finalmente, recargamos la configuración de Apache para que aplique estas nuevas configuraciones:

~$ sudo systemctl reload apache2

Como último detalle, para que la aplicación OCS Inventory pueda escribir en la ruta /var/lib/ocsinventory-reports/, cambiaremos el propietario de esta ruta para que el servidor web pueda acceder en modo escritura:

~$ sudo chown www-data /var/lib/ocsinventory-reports

Instalador web

Es el momento de acceder al instalador web desde el navegador, añadiendo la ruta /ocsreports a la dirección IP o dominio del servidor Debian 10 Buster.

Por ejemplo, en este tutorial el servidor Debian 10 es accesible en el dominio debian10.local.lan, así que utilizamos http://debian10.local.lan/ocsreports como URL:

como instalar ocsinventory ng server en debian 10 buster

En la primera página del instalador facilitaremos los datos de conexión a la base de datos para OCS Inventory, tal como los creamos anteriormente.

Comenzará el proceso de inicialización de la base de datos que durará unos instantes, mostrándonos el resultado:

instalar ocsinventory ng server en debian 10 buster

Dependiendo de la versión instalada, puede que la base de datos necesite una actualización. Si es así bastará con aplicar dicha actualización para poder continuar.

Se nos invita a seguir el enlace para iniciar sesión, pero antes de hacerlo es conveniente como medida de seguridad borrar el instalador web:

~$ sudo rm /usr/share/ocsinventory-reports/ocsreports/install.php

Ahora sí, siguiendo el enlace anterior, se muestra el inicio de sesión, donde podremos elegir el idioma en que queremos que se muestre la aplicación web:

ocs inventory ng server para debian 10 buster

El usuario por defecto es admin, y su contraseña es igualmente admin.

Ante nosostros aparecerá la página principal de OCS Inventory:

ocsinventory ng server en debian 10 buster

Por seguridad, como primera acción cambiaremos la contraseña del administrador, abriendo el menú del icono en forma de engranaje y seleccionando «MI CUENTA«, de modo que se mostrará el perfil del usuario y podremos modificarlo:

ocsinventory ng server para debian 10 buster

Y ya podemos empezar a trabajar con la aplicación, que queda lista a la espera de conexiones de equipos remotos.

Tares de post-instalación

El contador total de software del panel principal de OCS Inventory Reports no se actualiza de forma automática al recibir el inventario de un cliente. Este contador se actualiza mediante una tarea programada del servicio Cron de Debian 10 Buster.

Para ello creamos el archivo de configuración de la tarea:

~$ sudo nano /etc/cron.d/ocsinventory

Con el siguiente contenido (es una única línea):

0 0 * * * www-data cd /usr/share/ocsinventory-reports/ocsreports/crontab/ && /usr/bin/php cron_all_software.php

En este ejemplo la configuración ejecuta la tarea de mantenimiento cada día a las 0:00 horas, pero como es obvio puedes configurar el intervalo que más se adecúe a tus necesidades.

Conclusión

Ahora que sabes cómo instalar OCS Inventory NG Server en Debian 10 Buster podrás realizar un inventario con los equipos de tu red y sus características de forma cómoda y sencilla. Sólo tendrás que instalar el agente adecuado para cada sistema y esperar a que envíe la información a OCS Inventory Server.

Si tienes dudas, preguntas, alguna sugerencia de mejora, tal vez notificaciones de errores, etc. puedes dejar un comentario.

Ah, y si te ha resultado útil esta guía de instalación de OCS Inventory Server en Debian 10 Buster y quieres agradecérnoslo, puedes ayudarnos dejando 1 $ de propina desde PayPal:

¡Gracias!

5/5 - (3 votos)

1 comentario en «Cómo instalar OCS Inventory NG Server en Debian 10 Buster»

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.