Cómo instalar OCS Inventory NG Server en Ubuntu 18.04

En esta ocasión vamos a ver cómo instalar OCS Inventory NG Server en Ubuntu 18.04 LTS Bionic Beaver paso a paso, de modo que podrás hacer funcionar este sistema de inventario TI sobre tu servidor o VPS Ubuntu en cuestión de minutos.

Antes de instalar OCS Inventory NG Server en Ubuntu 18.04

Si estás interesado en completar esta guía de instalación de OCS Inventory NG Server en Ubuntu 18.04 LTS deberías satisfacer al menos los siguientes requisitos básicos:

  • Un sistema actualizado Ubuntu 18.04 LTS Bionic Beaver.
  • Un entorno o pila tipo LAMP (servicio web con PHP y bases de datos).
  • Paquetes adicionales: make y wget.
  • Acceso a consola con un usuario con permisos de sudo.
  • Conexión a Internet.

Puede que aún no tengas el entorno mínimo necesario, por lo que sería recomendable que previamente consultaras nuestra guía de instalación LAMP en Ubuntu 18.04.

En el caso de que esté todo listo, prepararemos el sistema para empezar con la instalación, actualizando las listas de paquetes de los repositorios:

~$ sudo apt update

E instalando los paquetes indicados en los requisitos:

~$ sudo apt install -y make wget

Cómo descargar OCS Inventory NG Server para Ubuntu 18.04

Tenemos que descargar OCS Inventory NG Server para Ubuntu 18.04 desde el sitio web del proyecto, ya que los paquetes que existen en el repositorio de la distribución (versión 2.2 en el momento de redactar este tutorial) están muy retrasados con respecto a la última versión estable disponible.

como descargar ocsinventory ng server para ubuntu 18.04 lts bionic beaver

Encontraremos fácilmente el enlace de descarga de un paquete .tar.gz que podemos descargar desde el navegador si estamos trabajando sobre la máquina en la que realizaremos la instalación. En este tutorial, copiaremos el enlace para realizar la descarga desde consola usando el comando wget:

~$ wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.7/OCSNG_UNIX_SERVER_2.7.tar.gz

Cómo instalar OCS Inventory NG Server en Ubuntu 18.04

El proceso de instalar OCS Inventory NG Server en Ubuntu 18.04 es bastante laborioso, pero no es complicado, sólo es necesario seguir una serie de pasos de forma ordenada para no econtrarnos con obstáculos posteriores durante la instalación. Vamos a detallar a continuación estas tareas para hacer funcionar OCS Inventory NG Server en Ubuntu 18.04.

Preparativos de Apache

OCS Inventory NG Server necesita usar Perl a través de Apache, por lo que instalaremos los módulos correspondientes:

~$ sudo apt install -y libapache2-mod-perl2-dev libapache-dbi-perl

Aplicaremos los cambios reiniciando el servidor web:

~$ sudo systemctl restart apache2

Preparativos de Perl

A pesar de que tenemos instalado el intérprete Perl y los módulos de Apache, también se necesitan algunos módulos independientes de Perl:

~$ sudo apt install -y libarchive-zip-perl libmojolicious-perl libnet-ip-perl libplack-perl libsoap-lite-perl libswitch-perl libxml-simple-perl

Otros módulos que no aparecen como paquetes de Ubuntu 18.04 los instalaremos directamente desde consola con el comando cpan:

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

Si es la primera vez que se usa el comando cpan, preguntará si se configura automáticamente, a lo que es interesante contestar que sí (la opción por defecto):

CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.

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

Preparativos del servicio de bases de datos

Conectamos con el servicio de bases de datos que tengamos en Ubuntu 18.04 para crear el soporte necesario para OCS Inventory NG Server. En este caso usaremos el cliente de consola mysql y un usuario administrador de MariaDB/MySQL:

~$ mysql -u root -p

Creamos la base de datos para OCS Inventory NG Server:

> create database ocsweb;

En MariaDB o MySQL 5 creamos el usuario de forma sencilla:

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

Pero en MySQL 8 lo creamos indicando el plugin de autenticación:

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

Independientemente de la forma de crear el usuario, le concedemos los permisos sobre la nueva base de datos:

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

Y finalizamos la sesión:

> exit

Archivos de OCS Inventory NG Server

Descomprimiremos el paquete que descargamos al principio, directamente en el directorio de trabajo:

~$ tar xf OCSNG_UNIX_SERVER_2.7.tar.gz

Cambiaremos el directorio de trabajo a la nueva subcarpeta que se acaba de crear, donde están organizados todos los archivos de OCS Inventory NG Server:

~$ cd OCSNG_UNIX_SERVER_2.7/

Entre estos arhivos se encuentra un script de instalación, setup.sh, que lanzaremos con privilegios de sudo:

$ sudo ./setup.sh

El script irá realizando una serie de comprobaciones y solicitando confirmación en cada paso. Se puede contestar a todas las preguntas con el valor por defecto (simplemente pulsando la tenca Intro) hasta que termine la instalación. A continuación se muestra la salida del script con todas las comprobaciones y preguntas hasta que termina la instalación con éxito:

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

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

Your MySQL client seems to be part of MySQL version 10.1.
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 SOAP::Lite Perl module...
Found that PERL module SOAP::Lite is available.
Checking for Archive::Zip Perl module...
Found that PERL module Archive::Zip is available.

+----------------------------------------------------------+
|         Checking for optional Perl Modules...            |
+----------------------------------------------------------+

Checking for Apache2::SOAP PERL module...
Found that PERL module SOAP::Apache2 is available.
Checking for XML::Entities PERL module...
Found that PERL module XML::Entities 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.26.1] ?
Copying files to /usr/local/share/perl/5.26.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 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.7/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 ;-)

Una vez terminada la instalación, podemos salir de este directorio:

$ cd ..

Y eliminarlo por completo, ya que no será necesario:

~$ sudo rm -rf OCSNG_UNIX_SERVER_2.7

Ahora editaremos la configuración web de OCS Inventory NG Server para configurar la contraseña en el servicio de bases de datos:

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

Dentro del bloque IfModule buscaremos la directiva PerlSetEnv relacionada con la contraseña del usuario de la base de datos:

...
  # Password for user
  PerlSetVar OCS_DB_PWD ocs
...

Y la modificaremos según el valor que establecimos en pasos anteriores:

...
  # Password for user
  PerlSetVar OCS_DB_PWD XXXXXXXX
...

Guardamos los cambios, cerramos el archivo y activamos las configuraciones de OCS Inventory NG Server para Apache:

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

Y recargamos la configuración del servicio web:

~$ sudo systemctl reload apache2

Por otro lado, OCS Inventory debe poder escribir en el directorio /var/lib/ocsinventory-reports y la forma más sencilla de hacer esto es cambiar el propietario de esta ruta al usuario con el que corre el servicio web (www-data para Apache en Ubuntu 18.04):

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

PHP

Para que OCS Inventory NG Server pueda funcionar en Ubuntu 18.04, se requiere la presencia de una serie de extensiones de PHP, como curl, gd, mbstring, soap y xml. Nos aseguraremos de que estas extensiones estén instaladas:

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

Y recargamos la configuración del servicio web o PHP, según corresponda:

~$ sudo systemctl reload apache2

Instalador web

Ya sólo queda realizar la instalación de OCS Inventory Reports a través de su instalador web, al cual accedemos añadiendo la ruta /ocsreports a la dirección IP o dominio del servidor Ubuntu 18.04.

Por ejemplo, la máquina en la que elaboramos este tutorial es accesible en el dominio ubuntu64.local.lan, por lo que usaremos http://ubuntu64.local.lan/ocsreports como URL:

como instalar ocsinventory ng server en ubuntu 18.04 lts bionic beaver

Los avisos son normales e indican el límite actual de subida de archivos, y también que si cambiamos el usuario, contraseña o base de datos de OCS tendremos que hacer el mismo cambio también en el archivo de configuración (como de hecho hicimos anteriormente con la contraseña).

La instalación transcurre rápidamente, tal como se mostrará en unos instantes:

instalar ocsinventory ng server en ubuntu 18.04 lts bionic beaver

Al seguir el enlace para iniciar sesión, una página nos avisa de que debemos actualizar la base de datos:

instalacion de ocsinventory ng server en ubuntu 18.04 lts bionic beaver

Como no tenemos otra opción, seguimos el enlace «Perform the update» y en unos momentos la actualización estará hecha y se nos ofrecerá un nuevo enlace para iniciar sesión en OCS Inventory Reports:

configurar ocsinventory reports en ubuntu 18.04 lts bionic beaver

Esta vez sí que se muestra la página de inicio de sesión, donde podremos también elegir el idioma:

ocsinventory ng server para ubuntu 18.04 lts bionic beaver

Elegido el idioma e introducido el usuario administrador por defecto (usuario admin con contraseña admin), aparecerá la página principal de OCS Inventory:

ocsinventory reports en ubuntu 18.04 lts bionic beaver

Veremos en pantalla las máquinas conectadas al servicio OCS Inventory (ninguna todavía en este ejemplo).

Pero también veremos un nuevo aviso que nos hace saber que todavía existe el script de instalación install.php en la carpeta de OCS Inventory Reports, así que es buena idea borrar dicho archivo desde consola:

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

Una vez borrado el archivo podemos cerrar el aviso y empezar a trabajar con OCS Inventory.

Por último, es muy recomendable cambiar la contraseña del usuario administrador, para lo cual podemos abrir el menú situado en el icono con forma de rueda dentada y elegir la opción «MI CUENTA«:

ocs inventory server en ubuntu 18.04 lts bionic beaver

En el campo «Contraseña» teclearemos la nueva contraseña y guardaremos los cambios pulsando el botón «OK«.

Conclusion

Ahora que sabes cómo instalar OCS Inventory NG Server en Ubuntu 18.04 estás listo para llevar un inventario de las máquinas, dispositivos y sistemas de tu organización, tanto a través de red local como de Internet.

Si te ha surgido alguna duda, tienes preguntas, tal vez quieres proponer mejoras o notificar errores, puedes dejar un comentario.

¡Apoya comoinstalar.me!

¿Ya funciona tu inventario de sistemas gracias a esta guía de instalación de OCS Inventory NG Server en Ubuntu 18.04? Si es así y te apetece mostrar tu agradecimiento, cualquier pequeña donación ayuda mucho al mantenimiento de este sitio web y a la redacción de nuevos tutoriales de Ubuntu 18.04 y OCS Inventory, así que puedes invitarme a un café:

 

O dejar una propina de 1 $ en PayPal:

¡Gracias!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (3 votos, promedio: 5,00 de 5)
Cargando...

4 comentarios en “Cómo instalar OCS Inventory NG Server en Ubuntu 18.04”

  1. Lo he intentado instalar en una máquina virtual y los informes no llegaban al servidor. Como no me salía ningún error, no supe cómo solucionarlo, así que miré de empezar de nuevo en una nueva máquina virtual y ahora me sale error 403 cuando intento entrar en la página web. ¿Alguien podría ayudarme?

    Responder
    • Hola, Dani. No me queda claro cuál es exactamente tu problema. Sólo puedo decirte que tanto para este tutorial (que acabo de actualizar para OCS Inventory NG Server 2.7) como para la guía de instalación de OCS Inventory Agent en Ubuntu 18.04 LTS usamos máquinas virtuales en red con máquinas físicas y funciona todo a la primera. Comprueba la conectividad de tus máquinas (virtuales y físicas), actualiza los sistemas y sigue los pasos de estos tutoriales, con especial atención a las respuestas en los scripts de configuración.

      Responder

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies