Cómo instalar OCS Inventory Server en Debian 12 Bookworm

En esta ocasión explicamos cómo instalar OCS Inventory Server en Debian 12 Bookworm paso a paso, de manera que podrás trabajar con esta plataforma de inventariado de equipos en apenas unos minutos sobre tu servidor o VPS Debian.

Podrás encontrar esta guía para otras versiones de Debian usando la caja de búsqueda de nuestro sitio.

Antes de instalar OCS Inventory en Debian 12 Bookworm

Si quieres seguir los pasos de esta guía de instalación de OCS Inventory Server en Debian 12 Bookworm es importante cumplir los siguientes requerimientos básicos:

  • Un sistema Debian 12 Bookworm actualizado.
  • La pila LAMP (servicio web con PHP desde la versión 8.0 y bases de datos MariaDB/MySQL).
  • Un usuario con permisos de sudo.
  • Acceso a Internet.

Si no dispones todavía del entorno necesario sin duda te resultará de utilidad nuestra guía de instalación de la pila LAMP en Debian 12, teniendo en cuenta lo dicho sobre las versiones requeridas para la instalación de OCS Inventory.

Cómo descargar OCS Inventory en Debian 12 Bookworm

El primer paso es descargar OCS Inventory para Debian 12 Bookworm desde la sección de descargas del sitio web oficial, que es el mejor lugar para encontrar la última versión estable:

como descargar ocs inventory server para debian 12 bookworm

En la sección «Assets» del último lanzamiento encontraremos un archivo en formato .tar.gz que podemos descargar directamente desde el navegador o, si trabajamos remotamente, podemos descargar desde consola con alguna herramienta como wget:

~$ wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.12.1/OCSNG_UNIX_SERVER-2.12.1.tar.gz

Cómo instalar OCS Inventory en Debian 12 Bookworm

Para instalar OCS Inventory Server y Reports en Debian 12 Bookworm debemos realizar una serie de tareas en el sistema que lo dejen listo para que los instaladores de consola y web puedan hacer su trabajo. Veremos a continuación este proceso con detalle.

Dependencias

Necesitamos instalar una serie de paquetes procedentes de los repositorios de Debian 12 Bookworm, por lo que los actualizamos:

~$ sudo apt update

E instalamos los paquetes con apt:

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

Algunos módulos de Perl necesarios no se encuentran como paquetes en los repositorios, pero podemos compilarlos con la herramienta cpan de este lenguaje:

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

Si es la primera vez que usamos cpan nos ofrecerá la posibilidad de automatizar al máximo su funcionamiento, por lo que conviene aceptar cuando nos lo pregunte:

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

PHP

También se necesitan algunas extensiones de este lenguaje que instalaremos con apt. Si usamos la versión incluida en la distribución usaremos el siguiente comando:

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

Si usamos alguna versión del repositorio alternativo habrá que indicar el número de dicha versión en el nombre de los paquetes; por ejemplo, para la versión 8.1:

~$ sudo apt install -y php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml

Tras la instalación de las extensiones recargamos la configuración del servicio web para que queden disponibles:

~$ sudo systemctl reload apache2

Base de datos

Preparamos la base de datos que necesita OCS Inventory conectando al servicio con el cliente de consola mysql y un usuario administrador:

~$ mysql -u root -p

Creamos la base de datos:

> create database ocsweb;

Creamos el usuario con su contraseña:

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

No olvides esta contraseña porque la necesitaremos más adelante.

Seguidamente concedemos permisos al usuario sobre la base:

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

Ya podemos cerrar la conexión:

> exit

Instalación desde consola

La primera parte de la instalación la realizamos desde consola, para lo que empezamos descomprimiendo el paquete que descargamos anteriormente:

~$ tar xf OCSNG_UNIX_SERVER-2.12.1.tar.gz

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

~$ cd OCSNG_UNIX_SERVER-2.12.1/

Y lanzamos el instalador:

$ sudo ./setup.sh

Este instalador es interactivo y nos hará multitud de preguntas que, si los preparativos se realizaron correctamente, sólo necesitan ser confirmadas:

+----------------------------------------------------------+
|                                                          |
|  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.12.1
Storing log in file /home/chacho/OCSNG_UNIX_SERVER-2.12.1/ocs_server_setup.log

+----------------------------------------------------------+
| Checking for database server properties...                      |
+----------------------------------------------------------+

Your MySQL client seems to be part of MySQL version 10.11.
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] ?

+----------------------------------------------------------------------------+
|    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.36.0] ?
Copying files to /usr/local/share/perl/5.36.0

+----------------------------------------------------------+
| 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.12.1/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 ;-)

Terminado este proceso podemos abandonar el directorio:

$ cd ..

Y eliminarlo:

~$ sudo rm -rf OCSNG_UNIX_SERVER-2.12.1

Configuración de OCS Inventory

En el paso anterior se han creado algunos archivos de configuración que usan la contraseña por defecto del usuario de la base de datos. Debemos cambiar dicha contraseña por la que creamos durante la preparación de la base de datos, para lo que editamos el archivo z-ocsinventory-server.conf:

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

Buscamos la siguiente línea:

...
  PerlSetVar OCS_DB_PWD ocs
...

Y cambiamos el valor por defecto por nuestra contraseña:

...
  PerlSetVar OCS_DB_PWD XXXXXXXX
...

Guardamos este archivo y editamos también el archivo zz-ocsinventory-restapi.conf:

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

Buscamos esta línea:

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

Y hacemos el cambio de forma similar (en esta ocasión respetando las comillas):

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

Hechos estos cambios, activamos las configuraciones del servicio web:

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

Y reiniciamos dicho servicio para aplicar todos estos cambios:

~$ sudo systemctl restart apache2

Por último, OCS Inventory necesita poder escribir en la ruta /var/lib/ocsinventory-reports, por lo que cambiamos el propietario de la misma por el usuario con el que corre el servicio web:

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

Instalador web

Para acceder al instalador web de OCS Inventory en Debian 12 Bookworm desde un navegador introduciremos la dirección del servidor (IP, nombre DNS, dominio, localhost, etc.) añadiendo la ruta /ocsreports.

Por ejemplo, la máquina Debian 12 Bookworm sobre la que hemos realizado este tutorial es accesible en el subdominio debian12.local.lan, así que podemos usar http://debian12.local.lan/ocsreports como URL de acceso.

como instalar ocs inventory en debian 12 bookworm

En la primera página del instalador web introduciremos los datos de conexión al servicio de bases de datos que son, básicamente, el usuario, la contraseña y la base de datos.

La instalación tomará unos instantes solamente.

instalar ocs inventory en debian 12 bookworm

Terminada la instalación se nos mostrará el usuario administrador y su contraseña para el inicio de sesión, que son admin y admin, y un enlace al inicio de sesión.

Es muy posible que al intentar iniciar sesión se nos avise de que la base de datos necesita una actualización. Si es el caso aceptaremos dicha actualización, tras la que volveremos a acceder a la página de inicio de sesión.

Antes de iniciar sesión por seguridad debemos eliminar el instalador web, cosa que podemos hacer fácilmente desde consola:

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

Si no lo hacemos se mostrarán avisos en la interfaz de OCS Inventory Reports.

En la página de inicio de sesión elegimos el idioma e introducimos usuario y contraseña del administrador:

instalacion de ocs inventory en debian 12 bookworm

Aparecerá el panel principal de OCS Inventory Reports sobre Debian 12 Bookworm:

ocs inventory en debian 12 bookworm

Finalmente, es conveniente cambiar la contraseña del usuario admin, para lo que accedemos al perfil de dicho usuario desde la opción «MI CUENTA» del menú del icono con forma de engranaje:

Hecho esto, el servicio está listo para empezar a recibir conexiones desde los clientes y procesar toda la información de inventarios.

Post-instalación

Desde hace algún tiempo el contador total de software del panel principal de OCS Inventory Reports no se actualiza automáticamente con cada recepción de inventario desde un cliente, sino a través de una tarea programada del servicio Cron de Debian 12 Bookworm.

Vamos a crear el archivo que realiza dicha tarea:

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

El contenido de este archivo será el siguiente:

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

La configuración de este ejemplo lanzará la tarea de mantenimiento a las 0:00 horas cada día, pero lógicamente puedes establecer el intervalo que más te interese.

Conclusión

Ya sabes cómo instalar OCS Inventory Server y Reports en Debian 12 Bookworm para poder administrar y centralizar el inventario de los dispositivos y sistemas en red. En este sitio encontrarás tutoriales para la instalación de los clientes Debian que pueden conectar al servidor y enviar toda la información requerida.

Si tienes alguna sugerencia, quieres notificar algún error, etc. puedes dejar un comentario que, aunque están moderados para evitar SPAM, se revisan prácticamente a diario.

Y si ya funciona esta plataforma en tu máquina y quieres agradecérnoslo, cualquier pequeña aportación para el mantenimiento de este sitio y la elaboración de más tutoriales y guías es bienvenida.

Puedes ayudarnos dejando una propina a partir de 1 $ desde PayPal:

¡Gracias!

5/5 - (1 voto)

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.