Cómo instalar OCS Inventory NG Server en Debian 9 Stretch

En este artículo explicamos cómo instalar OCS Inventory NG Server en Debian 9 Stretch paso a paso, de forma que puedas montar este servidor centralizado de inventario de equipos y dispositivos conectados a la red sobre tu servidor corporativo o VPS Debian.

Antes de instalar OCS Inventory NG Server en Debian 9

Si quieres completar esta guía de instalación de OCS Inventory Server en Debian 9 Stretch debes cumplir los siguientes requerimientos:

  • Un sistema Debian 9 Stretch actualizado.
  • Una pila LAMP (servidor web Apache con PHP hasta la versión 7.4 y servicio de bases de datos).
  • Acceso a línea de comandos con un usuario con privilegios de sudo o root.
  • Conexión a Internet.

Si aún no tienes el entorno puedes consultar nuestra guía de instalación LAMP en Debian 9 Stretch.

También se necesitan algunas herramientas básicas disponibles en los repositorios del sistema, por lo que los actualizamos:

~$ sudo apt update

E instalamos los paquetes correspondientes:

~$ sudo apt install -y ca-certificates tar wget

Cómo descargar OCS Inventory NG Server para Debian 9 Stretch

Vamos a descargar OCS Inventory NG Server para Debian 9 Stretch desde la web del proyecto, donde encontraremos la última versión estable disponible:

como descargar ocs inventory ng server para debian 9 stretch

Buscaremos el enlace de descarga del paquete en formato .tar.gz, que podemos descargar desde el navegador, pero en esta ocasión copiaremos el enlace para realizar la descarga desde consola con el comando wget:

~$ wget 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 9 Stretch

La operación de instalar OCS Inventory NG Server en Debian 9 Stretch es un poco laboriosa, pero siguiendo los pasos que exponemos a continuación no debería ocasionar ningún problema.

Requisitos y dependencias

Necesitaremos instalar previamente un buen número de paquetes que serán necesitados en el proceso de instalar OCS Inventory NG Server:

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

El módulo XML::Entities de Perl sólo puede instalarse compilándolo con la heramienta cpan:

~$ sudo cpan i XML::Entities

Se nos preguntará si queremos que esta herramienta trabaje en modo automático, a lo que es bastante interesante contestar que sí.

También necesitamos algunas extensiones de PHP que, si usas la versión nativa de Debian 9 (la 7.0), instalaremos con el siguiente comando:

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

Pero si usas el repositorio alternativo de PHP habrá que especificar el número de versión 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

Reiniciamos el servidor web para aplicar las nuevas configuraciones:

~$ sudo systemctl restart apache2

Base de datos

Crearemos la base de datos y el usuario que necesita OCS Inventory NG, en esta ocasión usando el cliente de consola mysql y algún usuario con suficientes permisos:

~$ mysql -u root -p

Creamos la base de datos, usando como nombre ocsweb, que es el que utiliza la aplicación por defecto:

> create database ocsweb;

Igualmente creamos el usuario con el nombre por defecto, ocs.

En el caso de usar MariaDB o MySQL 5.x lo creamos sin más:

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

Pero si se trata de MySQL 8.x entonces además nos aseguramos de que el usuario use el plugin de autenticación correcto:

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

Concedemos los permisos oportunos al usuario sobre la base de datos:

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

Y ya podemos cerrar el cliente mysql:

> exit

Recuerda estos datos porque los necesitarás más adelante.

Instalación de OCS Inventory NG

Descomprimimos el paquete que descargamos anteriormente en el directorio de trabajo:

~$ tar xf OCSNG_UNIX_SERVER-2.9.2.tar.gz

Cambiamos el directorio de trabajo al subdirectorio que se acaba de crear:

~$ cd OCSNG_UNIX_SERVER-2.9.2

El resto de trabajo en consola lo haremos desde este directorio. En este directorio existe un script de shell, setup.sh, que lanzaremos:

$ sudo ./setup.sh

Este script interactivo comprobará que las dependencias y requerimientos se cumplen, y nos irá solicitando confirmación de distintas operaciones. Debemos contestar a todas las preguntas con los valores por defecto, ya que no se nos pide información especial.

+----------------------------------------------------------+
|                                                          |
|  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.4.
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.24.1] ?
Copying files to /usr/local/share/perl/5.24.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 la operación ha tenido éxito, podemos abandonar el directorio de trabajo:

$ cd ..

Y podemos eliminarlo de forma definitiva:

~$ sudo rm -rf OCSNG_UNIX_SERVER-2.9.2

Terminada la ejecución del script instalador, si estableciste una contraseña distinta de ocs para el usuario ocs de la base de datos (que es lo que se recomienda), hay que editar el siguiente archivo de configuración:

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

Buscamos esta directiva PerlSetVar:

...
  PerlSetVar OCS_DB_PWD ocs
...

Y cambiamos el valor por defecto por la contraseña que establecimos:

...
  PerlSetVar OCS_DB_PWD XXXXXXXX
...

Guardamos este archivo y realizamos una operación similar con este otro:

~$ sudo nano /etc/apache2/conf-available/zz-ocsinventory-restapi.conf

Buscamos esta línea:

...
  $ENV{OCS_DB_PWD} = 'ocs';
...

Y hacemos el mismo cambio, manteniendo el entrecomillado:

...
  $ENV{OCS_DB_PWD} = 'XXXXXXXX';
...

Por otro lado, el instalador crea las configuraciones de Apache para OCS Inventory NG, pero no las activa, cosa que haremos manualmente:

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

Habrá que reiniciar el servidor web para que cargue las nuevas configuraciones:

$ sudo systemctl restart apache2

Por último, tenemos que hacer escribible por el servidor web el directorio /var/lib/ocsinventory-reports/:

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

Instalación de OCS-NG Inventory vía web

Accedemos desde el navegador añadiendo la ruta /ocsreports a la dirección IP o dominio del servidor Debian 9. Por ejemplo, la máquina de este tutorial es accesible en el dominio debian9.local.lan, por lo que la URL http://debian9.local.lan/ocsreports es la que usaremos:

como instalar ocs inventory server en debian 9 stretch

Continuamos y en unos instantes se completará la instalación:

instalar ocs inventory server en debian 9 stretch

La instalación tomará unos instantes, aunque dependiendo de la versión es posible que al seguir el enlace «Click here to enter OCS-NG GUI» se nos informe de que la base de datos necesita una actualización. Si es así, aplicamos la actualización para poder continuar.

En la página de inicio de sesión, además de elegir el idioma de la aplicación, debemos introducir nombre de usuario y contraseña del administrador:

Antes de iniciar sesión, eliminaremos desde consola el instalador PHP que hemos usado:

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

De vuelta al navegador, seleccionaremos el idioma que nos interese en el desplegable, e introduciremos las credenciales del administrador por defecto, usuario admin y contraseña admin.

Iniciamos sesión y entraremos en la página principal de OCS Inventory NG:

ocs inventory ng server en debian 9 stretch

¡Listo! Ahora tenemos el servidor listo para recibir información desde los equipos y dispositivos en los que se configure el agente OCS Inventory.

Conclusión

Ahora ya sabes cómo instalar OCS Inventory NG Server en Debian 9 Stretch, con lo que podrás realizar un inventario detallado de las máquinas de tu red con todas sus características de software y hardware.

En caso de dudas o preguntas, alguna sugerencia, etc. puedes dejar un comentario.

Ah, y si gracias a esta guía de instalación de OCS Inventory NG Server en Debian 9 Stretch ya tienes este servicio funcionando en tu servidor o VPS Debian, y te apetece agradecérnoslo, puedes ayudarnos dejando 1 $ de propina con PayPal:

¡Gracias!

5/5 - (3 votos)

1 comentario en «Cómo instalar OCS Inventory NG Server en Debian 9 Stretch»

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.