En esta ocasión vamos a explicar cómo instalar OCS Inventory NG Server y OCS Reports en Ubuntu 22.04 LTS Jammy Jellyfish paso a paso, de tal manera que puedas realizar la monitorización e inventario sobre tu servidor o VPS Ubuntu de otras máquinas y sistemas en red.
Dispones de adaptaciones de este tutorial para otras versiones de Ubuntu, e incluso otros sistemas operativos, que puedes encontrar fácilmente con el buscador de nuestro sitio.
Contenido
Antes de instalar OCS Inventory NG Server en Ubuntu 22.04 LTS Jammy Jellyfish
Para poder seguir los pasos de esta guía de instalación de OCS Inventory NG Server en Ubuntu 22.04 LTS Jammy Jellyfish es muy importante cumplir los siguientes requisitos básicos:
- Un sistema Ubuntu 22.04 LTS Jammy Jellyfish actualizado.
- La pila o entorno LAMP (servicio web con PHP hasta la versión 7.4 y bases de datos MariaDB/MySQL).
- Un usuario con privilegios de sudo.
- Acceso a Internet.
En caso de no disponer aún del entorno mínimo necesario será de gran utilidad echar un vistazo a nuestra guía de instalación de la pila LAMP en Ubuntu 22.04 LTS Jammy Jellyfish teniendo muy en cuenta lo dicho sobre los requisitos anteriores.
Si ya tienes todo preparado es el momento de ajustar la altura más cómoda para tu mesa y abrir un navegador y una terminal de comandos.
Cómo descargar OCS Inventory NG Server para Ubuntu 22.04 LTS
Vamos a descargar OCS Inventory NG Server para Ubuntu 22.04 LTS Jammy Jellyfish desde la página de descargas del sitio oficial del proyecto, que es donde encontraremos siempre la versión estable más reciente:
En la sección «Assets» del último lanzamiento encontraremos un archivo comprimido en formato .tar.gz que podemos descargar directamente desde el navegador o, si trabajamos remotamente, 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 NG Server en Ubuntu 22.04 LTS
Para poder instalar OCS Inventory NG Server y Reports en Ubuntu 22.04 LTS Jammy Jellyfish es necesario realizar una serie de preparativos sobre el sistema y lanzar un instalador de consola y otro web. Como el orden de estos pasos es importante, vamos a continuación a verlos con detalle.
Dependencias de OCS Inventory
Instalamos las dependencias que necesita OCS Inventory en Ubuntu 22.04 LTS desde los repositorios de la distribución, por lo que los actualizamos:
~$ sudo apt update
E instalamos los paquetes necesarios:
~$ sudo apt install -y libapache2-mod-perl2 libapache-dbi-perl libarchive-zip-perl libmojolicious-perl libnet-ip-perl libplack-perl libswitch-perl libxml-simple-perl make
Muchos de estos paquetes son módulos de Perl, pero hay un módulo de este lenguaje que no está disponible en forma de paquete, así que lo construiremos con la utilidad cpan:
~$ sudo cpan -i XML::Entities
Si es la primera vez que se lanza esta herramienta nos preguntará si deseamos que se autoconfigure para trabajar de la manera más automática posible:
... Would you like to configure as much as possible automatically? [yes]
Obviamente contestaremos afirmativamente.
PHP
OCS Inventory también requiere algunas extensiones de este lenguaje que podemos obtener de los repositorios del sistema. Si trabajamos con la versión incluida en la distribución instalaremos los siguientes paquetes:
~$ sudo apt install -y php-curl php-gd php-mbstring php-xml
Pero si trabajamos con una versión alternativa a la que incluye la distribución hay que especificar el número de dicha versión en el nombre de los paquetes; por ejemplo, para la versión 8.2:
~$ sudo apt install -y php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml
Recargaremos la configuración del servicio web para que las extensiones queden disponibles:
~$ sudo systemctl reload apache2
Bases de datos
Para preparar la base de datos sobre la que trabaja OCS Inventory conectaremos al servicio, por ejemplo, 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:
> create user ocs@localhost identified by 'XXXXXXXX';
Otorgamos los privilegios necesarios al usuario sobre la base:
> grant all privileges on ocsweb.* to ocs@localhost;
Y cerramos la conexión:
> exit
Instalador de consola de OCS Inventory
Descomprimimos en el directorio de trabajo el archivo que descargamos al principio:
~$ 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 de consola.
$ sudo ./setup.sh
Si la preparación del sistema es la adecuada, sólo tendremos que limitarnos a confirmar todas las preguntas que nos hará este script interactivo. En caso de error tendremos que ver qué es lo que está sucediendo, solucionarlo y volver a lanzar el instalador.
A continuación se muestra la típica salida en consola de este script, para tener una referencia de un proceso de instalación correcto:
+----------------------------------------------------------+ | | | 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.12.1 Storing log in file /home/instalador/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.6. 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.34.0] ? Copying files to /usr/local/share/perl/5.34.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/instalador/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 ;-)
Ya podemos abandonar el subdirectorio actual:
$ cd ..
E incluso eliminarlo:
~$ sudo rm -rf OCSNG_UNIX_SERVER-2.12.1
Durante el proceso anterior se han creado algunos archivos de configuración que debemos editar para especificar la contraseña del usuario de la base de datos.
Editamos z-ocsinventory-server.conf:
~$ sudo nano /etc/apache2/conf-available/z-ocsinventory-server.conf
Buscamos esta línea:
... PerlSetVar OCS_DB_PWD ocs ...
Y cambiamos la contraseña:
... PerlSetVar OCS_DB_PWD XXXXXXXX ...
Guardamos este archivo y hacemos algo parecido con zz-ocsinventory-restapi.conf:
~$ sudo nano /etc/apache2/conf-available/zz-ocsinventory-restapi.conf
Buscamos esta línea:
... $ENV{OCS_DB_PWD} = 'ocs'; ...
Y cambiamos el valor de la contraseña por defecto, manteniendo el entrecomillado:
... $ENV{OCS_DB_PWD} = 'XXXXXXXX'; ...
Una vez guardado este archivo, habrá que habilitarlo junto con el resto de archivos de configuración de OCS Inventory para el servicio web de Ubuntu 22.04 LTS:
~$ sudo a2enconf ocsinventory-reports z-ocsinventory-server zz-ocsinventory-restapi
Ahora reiniciamos el servicio web para que cargue los nuevos módulos y configuraciones:
~$ sudo systemctl restart apache2
Por último, OCS Inventory Reports necesita escribir en su directorio de datos, así que cambiamos su propietario por el que usa el servicio web:
~$ sudo chown www-data /var/lib/ocsinventory-reports
Instalador web
Para acceder al instalador web de OCS Inventory en Ubuntu 22.04 LTS Jammy Jellyfish desde un navegador habrá que especificar la dirección del servidor (IP, nombre DNS, dominio, localhost si accedemos localmente, etc.) añadiendo el alias /ocsreports.
Por ejemplo, la máquina Ubuntu 22.04 LTS que hemos usado para realizar este tutorial es accesible en el subdominio ubuntu2204.local.lan, así que podemos usar http://ubuntu2204.local.lan/ocsreports como URL de acceso:
En la primera página del instalador web introduciremos la información de conexión al servicio de bases de datos tal como los creamos en pasos anteriores.
El proceso de instalación es rápido, y enseguida se nos mostrará un enlace al inicio de sesión de OCS Reports:
Siguiendo el enlace «Click here to enter OCS-NG GUI» deberíamos abrir el inicio de sesión, pero actualmente el instalador detectará que la base de datos necesita una actualización. Aplicamos dicha actualización con el botón «Perform the update» y en apenas un instante se mostrará de nuevo el enlace que nos permite iniciar sesión:
Antes de entrar por seguridad es necesario eliminar el instalador web, cosa que podemos hacer fácimente desde consola:
~$ sudo rm /usr/share/ocsinventory-reports/ocsreports/install.php
En la página de inicio de sesión podemos elegir el idioma de la interfaz de la plataforma web. Para entrar usaremos admin tanto para el usuario como para la contraseña.
Accedemos al panel principal de la plataforma, donde se muestra un resumen del contenido inventariado hasta el momento:
Una de las primeras acciones que debemos realizar es cambiar la contraseña del usuario administrador. Para ello visitaremos el enlace «MI CUENTA» del menú que aparece en el icono con forma de engranaje:
¡Ya tenemos todo listo para empezar a configurar clientes que conecten al nuevo servidor OCS Inventory en Ubuntu 22.04 LTS!
Post-instalación
Aún queda algo por hacer y es que el contador de software del panel principal no se actualiza automáticamente con cada recepción del inventario de una máquina. La forma de actualizar este dato es a través de una tarea programada en el sistema, para lo que creamos el acrhivo de configuración:
~$ sudo nano /etc/cron.d/ocsinventory
El contenido de este archivo es una sola línea:
0 0 * * * www-data cd /usr/share/ocsinventory-reports/ocsreports/crontab/ && /usr/bin/php cron_all_software.php
En este ejemplo el contador se actualiza todos los días a las 0:00 horas, pero obviamente puedes elegir la periodicidad que te interese.
Conclusión
Ahora que sabes cómo instalar OCS Inventory Communication Server y OCS Inventory Reports en Ubuntu 22.04 LTS Jammy Jellyfish ya puedes automatizar el inventario de tu infraestructura de máquinas y sistemas en red con esta potente herramienta.
Si te ha surgido alguna duda o pregunta, quieres notificar algún error, realizar alguna sugerencia, etc. puedes dejar un comentario. Los comentarios se moderan para intentar luchar contra el SPAM, pero se revisan prácticamente a diario.
¡Apoya comoinstalar.me!
¿Ya funciona esta plataforma gracias a nuestra guía? Si es así y quieres agradecérnoslo, cualquier mínima aportación al mantenimiento de este sitio y la creación de más artículos y tutoriales es siempre bienvenida.
Puedes ayudarnos dejando una propina a partir de 1 $ desde PayPal:
O, si te sientes especialmente generoso, puedes invitarnos a un café:
¡Gracias!
Actualizado a la versión 2.12.1.
Hola.
Tuve un problema siguiendo tu tutorial.
Tengo Ubuntu e instalé OCS junto con un sistema de Tickets (osTicket).
Después de instalar OCS aún sigo teniendo acceso a osTicket, pero al entrar a OCS no muestra la interfaz, solo muestra los menús pero no puedo acceder a ninguno.
Instalé OCS 2.12 con php 8.2.
Gracias.
Hola, Mario. En principio ambas aplicaciones web conviven perfectamente en ese sistema y con esa versión de PHP. Sería bueno mirar en el registro de errores del servicio web, ya que parece que se trata de un problema de PHP. Para ello hay que tener activado el registro de errores en php.ini.