Ubuntu 20 LTS Instalación de OCS Inventory NG 2.8 y 2.9 y agentes Windows, Linux, Android.

NOTA: Revisado el doc, funciona tambien para la ultima version de OCS Server 2.9. 10/05/2021 pmoreno@

Ultima Revision: 18/12/2020 pmoreno@

Hola banda, en esta ocasion les dare los pasos para poder instalar el sistema llamado OCS Inventory NG (https://ocsinventory-ng.org) en Ubuntu 20 LTS.

Para no escribir todo el nombre, le voy a llamar OCS el resto del documento, este sistema lo he utilizado por muchos años para tener un inventario de las computadoras, servidores, laptops, telefonos moviles que estan bajo un misma red.

La administracion se lleva a cabo a traves de una navegador web, llamese, firefox, iexplorer, chrome que son los mas usados, una interfaz limpia que nos brinda datos de cada uno de los equipos registrados como por ejemplo, tipo de CPU, RAM, disco duro, interfaces de red, ademas de todo el software que tiene cada uno de ellos.

Muchas veces necesitamos saber esta informacion para revisar si todos los equipos estan baja la misma version de algun aplicacion que se ejecuta en la empresa y si no actualizar ese dispositivo.

Muchos usan hojas de calculo para obtener esta informacion, con OCS la tendran de una manera mas practica, profesional y ademas que los datos se estan actualizando periodicamente, de esta manera sabran que siempre estara a el dia, olvidense de las hojas de calculo, prueben OCS y ustedes decidan si les es de utilidad en su red.

Una vez que lo instalen podran sacarle provecho a una de varias tareas que OCS puede llevar a cabo, tiene mas, pero es lo dejare para otro post :-).

Se preguntaran, y que voy a ver al final de este post?

Figura 1. GUI OCS Inventory.

Algo como la imagen anterior, como podran ver en la figura 1, ese servidor nos muestra 5 equipos conformados por variedad de OS, simple y sencillo.

Que sistemas conforman OCS Inventory NG?

Figura 2.

Resumen, OCS Inventory almacena su informacion en la base de datos MariaDB y la muestra a traves de un servidor web como apache y todo ejecutandose en un OS tipo Linux que en este laboratorio es Ubuntu 20 LTS.

Que tipo de OS soporta OCS como agentes(clientes)?

  • Windows
  • Linux
  • Unix
  • Android
  • MAC

En la terminologia OCS, como es sistema cliente-servidor, el a los clientes les llama agentes.

Pre-requisitos antes de iniciar el procedimiento.

Antes de iniciar su sistema debe cumplir lo siguiente, para que estemos todos en el mismo canal y mas adelante no les falle algo y me regañen.

Recuerden que todo esto se hara desde la consola o shell, como buenos administradores de sistemas Unix/Linux no deben necesitar una interfaz grafica, no es presion pero aprendan a usar la consola no se arrepentiran, solo imaginese, ya Microsoft aprendio y las nuevas versiones servidores traen de fabrica el protocolo SSH para administracion, entonces ustedes que ademas trabajan con Linux/Unix debe de igual manera aprender a hacerlo.

Asi que sin miedo ejecutan su consola con putty (https://www.chiark.greenend.org.uk/~sgtatham/putty/) que es el mas usado para acceder via ssh a su servidor Ubuntu, si les da miedo no se asusten, ponganse a un lado mio y los guiare por este camino.

Iniciamos.

Paso A) Debemos tener nuestro sistema actualizado.

Para esto ejecutar los siguientes comandos:

apt-get update && apt-get upgrade
Figura 3.

Esperen resultados y si hay paquetes por instalar le dicen que si y esperan termine de llevarlos a cabo.

En mi caso no tengo nada por actualizar, en base a figura 3.

Paso B) Sistema a la hora en base a su zona de horarios.

Importante, en mi caso estoy en Tijuana, Baja California, Mexico, si existe mi zona que es America/Tijuana, entonces para cambiar bajo Ubuntu hago los siguiente:

cd /etc
rm -rf localtime
ln -s /usr/share/zoneinfo/America/Tijuana /etc/localtime
date
Fri 18 Dec 2020 07:52:51 AM PST
Figura 4.

Listo, ahora si, continuemos con los siguientes pasos.

Paso C) Instalacion de Software Fase 1.

Bloque 1

libxml-simple-perl
libdbi-perl
libdbd-mysql-perl
libapache-dbi-perl
libnet-ip-perl
libsoap-lite-perl
libarchive-zip-perl
make
build-essential
libio-compress-perl

apt-get -y install libxml-simple-perl libdbi-perl libdbd-mysql-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl libarchive-zip-perl make build-essential libio-compress-perl

Bloque 2.

cpan install XML::Entities

Para continuar le damos <ENTER> y esperamos termine de hacer su trabajo.

Figura 5.

Al final tendremos algo similar a esto:

Figura 6.
perl -MCPAN -e 'install Mojolicious'

Al final tendremos una resultado como la imagen siguiente.

Figura 7.
perl -MCPAN -e 'install Switch'

Al finalizae tendremos algo similar a esto:

Figura 8.

Listo, ahora pasamos al siguiente paquete.

perl -MCPAN -e 'install Plack::Handler'

Este paquete es de los mas tardados comparado con los 3 anteriores, pero el objetivo es que no de errores y al final tener una salida similar a la siguiente imagen.

Figura 9.

Bloque 3.

Por ultimo, las estrellas de la noche.

apt-get -y install apache2

Al final tendremos una salida similar a la siguiente imagen:

Figura 10.

Y ya para finalizar el lenguaje de programacion PHP.

apt-get -y install php php-pclzip php-mysql php-zip php-gd php-mbstring php-curl php-xml php-soap

Y su salida final seria algo asi:

Figura 11.

Hasta aqui hemos termina de instalar todos los primeros paquetes.

Ahora vienen los detalles, necesitamos saber si PHP tiene habilitado el modulo Perl, para esto no queda nada mas certero que entrar a el directorio donde tiene los modulos activos, para estos un comando ls nos ayudara.

ls /etc/apache2/mods-enabled/
Figura 12.

Si observan la imagen anterior, no se ve Perl en ningun lado, entonces vamos a habilitarlo asi:

a2enmod perl
Enabling module perl.
To activate the new configuration, you need to run:
systemctl restart apache2

Listo, modulo activado, nos indica que para que se lleve el cambio, debemos reiniciar apache, antes de, vamos a hacer lo siguiente en la configuracion de PHP.

Ocupamos hacer las siguientes modificaciones en 2 archivos de PHP, en ambos los siguientes parametros los vamos a dejar con los siguientes valores:

short_open_tag ==> On
post_max_size ==> 1024M
upload_max_filesize ==> 256M

Iniciamos con el primer archivo, para esto los abrimos con su editor de texto favorito, yo me voy por VIM.

vim /etc/php/7.4/apache2/php.ini

Buscamos los parametros y hacemos los cambios, quedando asi:

Figura 13.

Listo, ahora en el segundo archivo, hacemos lo mismo.

vim /etc/php/7.4/cli/php.ini

Ahora para hacer la prueba de fuego, creamos una arhivo en la ruta donde apache ejecuta el codigo html/php, en su editor favor crean un archivo llamado test.php.

vim /var/www/html/test.php

Y le agregan este pedazo de codigo:

<?php phpinfo(); ?>

Salvan y salen de su archivo.

Lo que sigue es reiniciar el servicio de apache.

systemctl restart apache2

No les deberia marcar ningun error, revisamos el estatus de apache, solo para cersiorarnos este operando.

systemctl status apache2
Figura 14.

Podemos observar que el servicio esta en linea, ahora si, abran su navegador y aputen a el url del archivo de prueba que hicimos(test.php) y les debera mostrar toda la informacion de PHP y los modulos que tiene trabajando.

http://ip-servidor/test.php
Figura 15.

Prueba superada, si ustedes no ven la info como la que veo yo, regresense a los pasos y revisen de nuevo, no pueden continuar si apache no arroja información de PHP en su navegador, buzos caperuzos.

Paso D) Instalacion y configuracion de la bases de datos MariaDB.

Esto es bien sencillo, hacemos lo siguiente:

apt-get -y install mariadb-server

Como resultado tendremos algo similar a esto:

Figura 16.

Iniciar el servicio.

systemctl start mariadb

Revisamos si el servicio inicio o hubo algun error:

Como podemos observar, el servicio ya esta en linea.

El siguiente paso es asegurar mariadb, por que de fabrica no tiene clave el usuario ‘root’ y hay datos que no requerimos, ejecutamos el siguiente batch, todos los sistemas tipo mysql traen este batch para tapar esos huecos de fabrica, claro los que sabemos los conocemos, pero aquellos nuevos no.

mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):

Como no tiene clave mariabd de fabrica, solo le decimos ‘Y’ <ENTER>, el primer paso es ponerle clave a el super usuario ‘root’ de mariadb, no tiene nada que ver con el root de Linux, buzos. Asi que aseguren bien esa clave compleja, dificil de decifrar, de ahi en adelante a todo le decimos ‘Y’, al final les explico rapido que acabamos de hacer.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
… Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
… Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
Dropping test database…
… Success!
Removing privileges on test database…
… Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
… Success!

Cleaning up…

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Que hicimos?

  • Paso 1 Se le dio clave a el usuario root de la base de datos mariadb.
  • Paso 2 Eliminamos el usuario anonimo de la base de datos, no lo necesitamos.
  • Paso 3 Eliminamos que el usuario root de la base de datos pudiera responder peticiones fuera del servidor, solo podra atender conexiones locales(locahost).
  • Paso 4 Eliminamos la base de datos test, no la necesitamos.
  • Paso 5 Le indicamos a mariadb que refrescara la informacion interna y tomara los cambios llevados a cabo.

Hagan la prueba, ahora para conectarse deben hacerlo de la siguiente manera:

mysql -u root -p
Enter password:

Ingresan su clave y listo.

Creacion de la Base de Datos para OCS Inventory NG.

Lo siguiente es la creacion de la base de datos para OCS, debemos acceder a mariadb y en la consola de la base de datos ejecutar los siguientes comandos SQL:

mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 40
Server version: 10.3.25-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE ocsweb;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> CREATE USER 'ocs'@'localhost' IDENTIFIED BY 'ocs';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON ocsweb.* TO 'ocs'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> \q

Ya tenemos la base de datos en blanco para que OCS se encargue de crear todo lo necesario en ella.

Paso E) Instalacion del servidor OCS Inventory NG.

Este paso es compilar el codigo directo en Ubuntu, a diferencia de por ejemplo Centos que ya tiene un RPM, aqui no, pero no hay problema, tenemos 2 caminos para descargar el archivo comprimido, si nos vamos a el pagina oficial nos tenemos que registrar con un correo valido, ahi nos llegaran los links de cada uno de las aplicaciones que OCS tiene.

La segunda opcion que es la vamos a llevar a cabo es irnos directo a github y descargar la ultima version que hay. Usaremos esta opcion.

Nos vamos a el url: https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases

Figura 17.

Ahora en esa pagina, le dan hacia abajo hasta donde encuentren el codigo para descargar y hacen lo que indica la siguiente figura para copiar la ruta.

Figura 18.
cd /opt
wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.8.1/OCSNG_UNIX_SERVER_2.8.1.tar.gz

Su comando terminara en algo similar a la siguiente imagen:

Figura 19.

Revisamos nuestro directorio y ahi debe estar nuestro archivo.

ls -l
total 2892
-rw-r--r-- 1 root root 2960525 Dec 10 01:52 OCSNG_UNIX_SERVER_2.8.1.tar.gz

Ahora lo que sigue es descomprimirlo asi:

tar -xzf OCSNG_UNIX_SERVER_2.8.1.tar.gz

Accedemos a el directorio:

cd OCSNG_UNIX_SERVER_2.8.1

Y viene el paso crucial, la instalacion, ejecutamos el batch llamado setup.sh e inicia el proceso, son varios pasos y muchas preguntas, asi que ejecuten el batch y a seguir mis pasos.

./setup.sh

NOTA: Durante el proceso, cuando encontremos algo como esto: ([y]/n)? Significa que la respuesta es ‘y’=yes asi que no hay necesidad de teclear ‘y’, solo le damos <ENTER> y listo, todo lo que este dentro de los [] es la respuesta obvia, si no tecleo nada significa <ENTER>, buzos caperuzos.

Si el setup encuentra todo lo que necesita para instalarse, no hay nada que se requiera modificar de todas las preguntas que el empieza hacer, solo <ENTER> y no debe de ver problemas, de lo contrario vayanse con calma y lleven su ritmo, no vaya ser que un descuido y se les vaya pasar un error que el les haya indicado, paciencia.

NOTA: Durante el proceso, OCS va validando nuestro sistema, si se dan cuenta cada que lo hace al final pone la carita feliz ;-), este punto es importante para saber que todo va por buen camino, buzos

Revisen de su lado que todo lo que valide OCS les indique que encontro lo que el requiere para que el sistema funcione, si no es asi y marca algun error, de favor revisen que paquete o libreria le hace falta, que es lo mas comun, regresen a el paso C) y revisen si algo se les paso o me equivoque :-).

root@itserver:/opt/OCSNG_UNIX_SERVER_2.8.1# ./setup.sh
 +----------------------------------------------------------+
 |                                                          |
 |  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 /opt/OCSNG_UNIX_SERVER_2.8.1
 Storing log in file /opt/OCSNG_UNIX_SERVER_2.8.1/ocs_server_setup.log
 +----------------------------------------------------------+
 | Checking for database server properties…                      |
 +----------------------------------------------------------+
 Your MySQL client seems to be part of MySQL version 10.3.
 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  😉
 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  😉
 +----------------------------------------------------------+
 |        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.30.0] ?
 Copying files to /usr/local/share/perl/5.30.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] ?
 +----------------------------------------------------------+
 |         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 /opt/OCSNG_UNIX_SERVER_2.8.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 😉
 root@itserver:/opt/OCSNG_UNIX_SERVER_2.8.1#

Listo, en mi caso no hubo ningun problema durante la instalación.

Paso F) Post configuración de OCS Inventory Server.

Ya con el sistema instalado, vamos a llevar a cabo los siguientes pasos para terminar el procedimiento, iniciamos con apache.

Ocupamos habilitar la configuracion de OCS en apache para que cada que inicie este, cargue esos programas. OCS almacena 3 configuraciones en apache pero no estan habilitadas, para ello hacemos lo siguiente:

a2enconf ocsinventory-reports.conf
Enabling conf ocsinventory-reports.
 To activate the new configuration, you need to run:
   systemctl reload apache2
a2enconf z-ocsinventory-server.conf
Enabling conf z-ocsinventory-server.
 To activate the new configuration, you need to run:
   systemctl reload apache2
a2enconf zz-ocsinventory-restapi.conf
Enabling conf zz-ocsinventory-restapi.
 To activate the new configuration, you need to run:
   systemctl reload apache2

Ejecutamos el siguiente comando para corregir permisos en el directorio indicado:

chown -R www-data: /var/lib/ocsinventory-reports/

Reiniciamos apache:

systemctl restart apache2

Si no hay ningun error que no deberia si no ya saben el consejo, OCS esta listo para continuar su configuracion a traves de su interfaz WEB.

NOTA: Recuerdas los datos de usuario y base de datos cuando? los vamos a necesitar en el siguiente paso.

Abrimos nuestro navegador preferido(Chrome o Firefox), aputamos a el siguiente URL.

http://ip-servidor/ocsreports

Figura 35.

Una vez ingresado la informacion de la base de datos, le damos click en el boton ‘Send’.

Figura 36.

En la figura anterior, OCS nos indica que la base de datos que el se encargo de generar se encuentra todo correcto, entonces le damos click en el link de bajo marcado encuadros rojos.

Esto nos lleva a la pagina inicial de OCS, ahi vamos a usar el usuario de fabrica:

Username: admin
Password: admin
Figura 37.
Figura 38.

Listo, ya podemos ver el GUI de OCS.

Si se dan cuenta, nos indica el cuadro ese que asusta:

Figura 39.

Para eliminarlo, tenemos que borrar o renombrar el archivo de nombre ‘install.php’ y nos dice donde esta, asi que yo decido cambiarle el nombre, si quieren borrarlo no hay problema.

cd /usr/share/ocsinventory-reports/ocsreports
mv install.php old-install.php

Ahora refrescamos nuestro navegador y debe desaparecer ese WARNING.

Ahora nos dice que estamos usando la clave de fabrica en la base de datos, en pocas palabras, cambiala, pero esto lo haremos mas adelante, ahorita vamos a continuar con la instalacion de los agentes(clientes) para empezar a ver la informacion que OCS nos proporciona de cada uno, que es la cereza del pastel.

Paso G. Instalacion de Agentes(Clientes).

G.1 Agente para familia Windows.

Necesitamos descargar el instalador , para esto nos vamos a ir de nuevo a la pagina de github de OCS (https://github.com/OCSInventory-NG) y nos vamos la seccion de Windows Agent y le damos click.

Figura 40.

Ahora nos vamos a la parte derecha y le damos click donde indica la siguiente imagen.

Figura 41.

En la siguiente pagina, nos vamos a la parte baja donde se encuentran los instaladores y codigo fuente, en mi caso este cliente es un windows 7 de 64 bits, ahi encontraran la version para 32 bits si es su caso.

Figura 42.

Esto lo hacemos ya directo en los cliente, en una red grande lo recomendable es descargar los paquetes y tenerlos en un compartido para su distribucion, aqui por que es un laboratorio y es mas rapido hacerlo asi :-p.

Figura 43.

Ya descargado, lo descomprimos y entramos donde esta el nectar.

Figura 44.

Iniciamos la instalacion, la cual es bien sencilla.

Figura 45.
Figura 46.
Figura 47.

En el siguiente paso es uno de los pasos donde interactuamos con el wizard, debemos agregar el IP del servidor OCS.

Figura 48.
Figura 49.

El siguiente paso tambien interactuamos, el campo TAG es opcional como dice la imagen, si tenemos un sistema contable, sabemos que los activos tienen un codigo de inventario, ahi se los podemos agregar, pero si no es su caso no ingresen nada.

En la parte baja le indicamos a el agente que una vez que termine la instalación envie el inventario inmediatamente, como dicen los gueros ASAP.

Figura 50.
Figura 51.

E inicia la instalación.

Figura 52.
Figura 53.

Listo, hemos terminado la instalacion del primer agente, como esta operando como servicio bajo windows, revisen en su panel, ya debe aparecer el icono de OCS indicando que esta ya en linea y comunicandose con el servidor.

Figura 54.

Si le damos doble click a el icono, nos mostrara datos del agente y nos indicara que esta activo el servicio.

Figura 55.

Parece que todo en orden , en este momento OCS ya nos debe mostrar la info de esta equipo, pasemos a revisar el GUI rapidamente.

Figura 56.

Listo, nos indica OCS que tiene 1 equipo en su listado, tipo Windows y tiene registrado 392 paquetes de software registrados.

Veamos un poco mas de detalles, le damos click donde dice ‘All computers’ (esquina superior izquierda).

Figura 57.

Les aclaro, aqui solo tengo un equipo, conforme se van agregando esta lista empieza a crecer.

Ya mas detalles de este cliente, version de windows, cantidad RAM, nuestra etiqueta de inventario, hostname, etc, etc. Sin miedo denle click por ejemplo en el nombre del equipo y se va a los detalles de ese agente en especifico.

Figura 58.

Este mismo procedimiento se usa para todos los equipos con sistema Windows, llamese, XP, 7, 8, 10, y version servidores, vamos agregar uno con windows 10 Home usando los mismos pasos.

Aqui les muestro el icono que ya esta operando el agente Windows 10 Home x64.

Figura 59.

Ahora veamos el GUI de OCS, ya debe estar el cliente registrado.

Figura 60.

Todo marcha en orden, asi es como se dan de alta todos los equipos de la familia Windows.

G.2 Instalación de Agente Linux Ubuntu.

Esto lo haremos atraves de la consola, como estamos usando Ubuntu entonces aparte de servidor el tambien es un agente, necesitamos darlo de alta, para esto requirimos instalar los siguientes paquetes, los 3 primeros ya los tenemos, si fuera otro equipo se requieren instalar.

libxml-simple-perl ==> Ya esta instalado.
libnet-ip-perl==> Ya esta instalado.
make ==> Ya esta instalado.
libmodule-install-perl
libdata-uuid-perl
libcrypt-ssleay-perl
libnet-snmp-perl
libproc-pid-file-perl
libproc-daemon-perl
net-tools
smartmontools
read-edid
nmap
libnet-netmask-perl

Aqui vamos.

apt-get -y install libmodule-install-perl libdata-uuid-perl libcrypt-ssleay-perl libnet-snmp-perl libproc-pid-file-perl libproc-daemon-perl net-tools smartmontools read-edid nmap libnet-netmask-perl

Tendriamos una salida similar a la siguiente imagen.

Figura 61.

Ahora necesitamos descargar el agente para Unix, para estos nos vamos de nuevo a la pagina oficial de OCS (https://github.com/OCSInventory-NG) y seleccionamos el agente como lo indica la siguient imagen.

Figura 62.

Buscamos a la derecha el link para ir a siguiente pagina para la descarga.

Figura 63.
Figura 64.

Como lo indica la imagen anterior, seleccionamos el archivo de la version actual que en este caso es la 2.8.1.tar.gz y copeamos el enlace para irnos a la consola y descargarlo como sigue.

cd /opt
wget https://github.com/OCSInventory-NG/UnixAgent/releases/download/v2.8.1/Ocsinventory-Unix-Agent-2.8.1.tar.gz

Al final tendremos como salida algo similar a esto:

Figura 65.

Ahora los descomprimimos y entramos a el directorio.

tar -xzf Ocsinventory-Unix-Agent-2.8.1.tar.gz 
cd Ocsinventory-Unix-Agent-2.8.1

El agente para Unix tiene 2 maneras de instalarse, el modo automatico o interactivo, nosotros nos vamos por el segundo, interactivo y durante el proceso nos hara varias preguntas, siganme los pasos.

perl Makefile.PL
Figura 66.
make

Despues de todo lo que hace, tendremos una salida similara esta:

Figura 67.

Por ultimo, aqui viene la interación.

make install
Figura 68.

NOTA: Recuerden, lo que esta entre [] es la respuesta obvia, solo le damos <ENTER>.

Do you want to configure the agent
Please enter 'y' or 'n'?> [y]
Where do you want to write the configuration file?
0 -> /etc/ocsinventory
1 -> /usr/local/etc/ocsinventory
2 -> /etc/ocsinventory-agent
?> 2
Do you want to create the directory /etc/ocsinventory-agent?
Please enter 'y' or 'n'?> [y]
Should the old unix_agent settings be imported ?
Please enter 'y' or 'n'?> [y]
[info] The config file will be written in /etc/ocsinventory-agent/ocsinventory-agent.cfg,
What is the address of your ocs server?> 192.168.7.11
Do you need credential for the server? (You probably don't)
Please enter 'y' or 'n'?> [n]
Do you want to apply an administrative tag on this machine
Please enter 'y' or 'n'?> [y]
tag?> ITSERVER
Do yo want to install the cron task in /etc/cron.d
Please enter 'y' or 'n'?> [y]
Where do you want the agent to store its files? (You probably don't need to change it)?> [/var/lib/ocsinventory-agent]
Do you want to create the /var/lib/ocsinventory-agent directory?
Please enter 'y' or 'n'?> [y]
Should I remove the old unix_agent
Please enter 'y' or 'n'?> [n]
Do you want to activate debug configuration option ?
Please enter 'y' or 'n'?> [y]
Do you want to use OCS Inventory NG UNix Unified agent log file ?
Please enter 'y' or 'n'?> [y]
Specify log file path you want to use?> /var/log/ocs_agent.log
Do you want disable SSL CA verification configuration option (not recommended) ?
Please enter 'y' or 'n'?> [n]
Do you want to set CA certificates file path ?
Please enter 'y' or 'n'?> [y] n
Do you want to use OCS-Inventory software deployment feature?
Please enter 'y' or 'n'?> [y]
Do you want to use OCS-Inventory SNMP scans feature?
Please enter 'y' or 'n'?> [y]
Do you want to send an inventory of this machine?
Please enter 'y' or 'n'?> [y]
Setting OCS Inventory NG server address…
Looking for OCS Invetory NG Unix Unified agent installation…
ocsinventory agent presents: /usr/local/bin/ocsinventory-agent
Setting crontab…
Creating /var/lib/ocsinventory-agent directory…
Creating /etc/ocsinventory-agent directory…
Writing OCS Inventory NG Unix Unified agent configuration
Creating /var/lib/ocsinventory-agent/http:__192.168.7.11_ocsinventory directory…
Creating /var/lib/ocsinventory-agent/http:__192.168.7.11_ocsinventory/snmp directory…
Copying SNMP MIBs XML files…
Activating modules if needed…
Launching OCS Inventory NG Unix Unified agent…
-> Success!
New settings written! Thank you for using OCS Inventory
root@itserver:/opt/Ocsinventory-Unix-Agent-2.8.1#

Les marque con azul la parte donde debemos agregar el IP del servidor, recuerden que estamos instalando un agente, aunque sea el servidor de OCS, en este momento es un cliente mas.

En este momento ya deberia aparecer este equipo en el inventaio de OCS, vayamos a el GUI.

Figura 69.

Listo, ya aparece nuestro agente Ubuntu que al mismo tiempo es el servidor, veamos sus detalles.

Figura 70

Para los administradores de sistemas, el agente instala un batch en:

Figura 71.

Por ello cada determinado tiempo se ejecuta y mantiene sus datos actualizados con el servidor.

Y ademas tenemos un log, durante la instalacion le indicamos donde y como se llamaria, asi podremos revisarlo en su momento si por alguna razon misteriosa el agente deje a tener comunicacion con el servidor OCS.

tail -n 20 /var/log/ocs_agent.log
Figura 72.

Ahora pasemos a el agente para Centos/RedHat.

G.3 Instalacion de agente en Centos 8.

Para Centos/RedHat necesitamos el sistema actualizado, y el repo de Fedora epel-release, el cual viene en los repos de fabrica, sin tanto rollo hacemos lo siguiente:

yum -y install epel-release
yum -y install --enablerepo=powertools perl-Net-SNMP
yum -y install mlocate
updatedb 

Ahora descargamos el RPM del agente OCS para Centos 8.

cd /opt
wget https://rpm.ocsinventory-ng.org/ocsinventory-release-latest.el8.ocs.noarch.rpm

Instalamos el repo.

rpm -ivh ocsinventory-release-latest.el8.ocs.noarch.rpm
Figura 73.

Ahora si, procedemos a la instalacion del agente para Centos.

yum -y --enablerepo=powertools --enablerepo=epel-playground install ocsinventory-agent

De igual manera instala varios paquetes, tendrian una salida similar a la siguiente imagen.

Figura 74.

Ahora necesitamos configurar el agente para indicarle el IP del servidor y asi el pueda comunicarse y enviar su informacion, con nuestro editor de texto favorito abrimos el siguiente y lo adaptamos a su infraestructura.

vi /etc/ocsinventory/ocsinventory-agent.cfg
Figura 75.

Guardamos cambios y salimos del archivo.

Ahora seguimos con el siguiente archivo, de igual manera solo cambiamos el parametro como indica la siguiente imagen.

vi /etc/sysconfig/ocsinventory-agent
Figura 76.

Por ultimo, vamos a ejecutar el batch del agente para que envie la informacion en este momento y no esperar hasta que el batch se ejecute via cron.

/etc/cron.hourly/ocsinventory-agent

Un poco de paciencia nada mas, ya que la consola regrese, debemos tener un cliente mas en OCS, veamos el GUI.

Figura 77.

Listo, ya nos aparece nuestro agente Centos8.

G.4 Instalacion de Agente para Android.

Para esto vamos a el Play Store de nuestro equipo, buscamos ‘OCS Inventory Agent’ e iniciamos la instalación y configuración.

Figura 78.

Una vez que lo ejecutamos, recuerden darle los permisos que solicita, ver siguiente imagen.

Figura 79.
Figura 80.
Figura 81.
Figura 82.
Figura 83

Ya que termine de enviar la información, veamos el GUI de OCS, ya debera tener este agente registrado.

Figura 84.

Ya podemos ver que aparece un cliente android.

Figura 85.

Listo, agente android registrado.

Paso H. Cambio de clave en la Base de Datos.

Ahora vamos a llevar el cambio de la clave del usuario para OCS en la base de datos y eliminar este mensaje que espanta.

Figura 86.

H.1 Cambio de la clave en la base de datos, para esto accesamos la consola de mariadb y ejecutamos lo siguiente.

MariaDB [(none)]> set password for 'ocs'@'localhost'=password('SuClav3C0mpL3jA');
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> \q
Bye

Aqui ustedes elijan su clave compleja, este es solo un ejemplo, buzos.

H.2 Actualizar clave en archivo ‘dbconfig.inc.php‘, con su editor favorito lo abren, buscan el siguiente parametro, hacen el cambio, gurdan y salen.

vim /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php

define(“PSWD_BASE”,”SuClav3C0mpL3jA”);

Guardan y salen.

H.3 Actulizar la clave por ultimo en el archivo ‘z-ocsinventory-server.conf’ mismo proceso, buscan el parametro, lo actualizan, guardan y salen.

vim /etc/apache2/conf-enabled/z-ocsinventory-server.conf

PerlSetVar OCS_DB_PWD SuClav3C0mpL3jA

Guardan y salen.

H.4 Reinician apache, y acceden a el GUI, debe desparecer el mensaje tenebroso.

systemctl restart apache2
Figura 87.

Adios mensaje :-).

Paso I. Cambio de clave de Usuario Administrador.

Recomendable, es sencillo atraves del GUI.

Figura 88.
Figura 89.

Al presionar el boton OK, nos arroja el siguiente mensaje en pantalla.

Figura 90.

un Logout e intenan entrar con su nueva clave, listo.

Resumen.

Hemos terminado este post, por favor si ven alguna error me avisan para corregirlo, espero les sea de utilidad este software como a mi lo ha sido, si es asi compartalo con sus colegas, tambien llevare a cabo el video en mi canal de youtube(https://www.youtube.com/c/PedroMorenoBOS).

Ahi tengo tambien el proceso para para Centos 7 (https://www.youtube.com/watch?v=slpUs-b__Y0), creare el post para centos 8 como servidor tambien.

7 thoughts on “Ubuntu 20 LTS Instalación de OCS Inventory NG 2.8 y 2.9 y agentes Windows, Linux, Android.

  1. He visto varias guías en internet y con todas tenía problemas. Con tu ayuda pude instalar el OCS Invenotry Server en Ubuntu. No sé si será mucha molestia, pero, ¿tendrás alguna guía de cómo instalar el CVE Reporting para esta misma versión de OCS Inventory Server? También sería muy buenbo que se pueda instalar GLPI. No sabes lo feliz que estoy.

    Like

  2. Maestro, no puedo ver la cantidfad de software como en la figura 87, recién me doy cuenta.

    Like

      1. Estaré a la espera. No puedo dormir, quería presentarle a mi jefe y ver ese inconveniente me detuvo. Gracias totales.

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s