Instalación de OCS Inventory Server 2.9.2 en Ubuntu 22.04.

Que tal amigos, como sabran a veces llega el punto que nos preguntamos si existe algun software para tener nuestro inventario de equipos de computo y servidores en un sistema que nos permite atraves de un navegador ver esta informacion en tiempo real?

OCS Inventory Server les puede servir.

Figura 1.

Aqui les explico como instalarlo en la ultima version de Ubuntu que es la 22.04 LTS.

Si no habias oido hablar de este software, no te arrepentiras y mas si te gusta sacarle mas provecho a Linux.

OCS Inventory Server nos permite llevar un inventario de todos nuestros equipos de computo en red, en tiempo real atraves de un navegador. Es un modelo clasico de cliente-servidor, los clientes o agentes como el les llama soportan varios OS, como Windows tanto escritorio como servidor, Linux, Unix, Android y MACOS.

De esta manera ya nos podemos olvidar del famoso excel donde llevabamos este control u cualquiero otro formato.

Todo se almacena en una base de datos asi que hay consistencia ya que los agentes le envian su informacion de software y hardware al servidor cada cierto tiempo asi lo mantienen al dia y nosotros obtenemos la informacion en tiempo real.

Aqui les dejo el video de la instalacion, algunos aprenden viendo videos otros leyendo, la finalidad es aprender.

El objetivo de este post es llegar a algo similar a esto:

Claro, con tus cliente, asi que preparate para aprender como instalar este excelente software.

Ahora bien, si tu version de Ubuntu es la 20.04.4 entonces te recomiendo este post, aqui les dejo el link de como instarlarlo en esa version de Ubuntu.

Ubuntu 20 LTS Instalación de OCS Inventory NG 2.9.1 y agentes Windows, Linux, Android. – Pedro El Pheriko Moreno (pmorenoit.blog)

Video de Instalación de OCS Inventory Server en Ubuntu 20.04.

Asi que aqui quiero darles esta informacion a aquellos que no conocian OCS Inventory Server y para aquellos que siguieron mi manual pero que han tenido problemas con el, ya que he estado recibiendo varios correos, mensajes , etc sobre casos fallidos y me ha llamado la atencion.

Por ello aquellos que han tenido estres con esta version de Ubuntu(22.04) espero les ayude este post para que puedan salir del hoyo donde estan.

OCS Inventory requiere de varios programas claves para seguir este post:

  • Un OS: Ubuntu 22.04
  • Un Servidor Web: Apache
  • Lenguajes de Programacion: PHP y Perl.
  • Un Base de Datos: MariaDB.
Figura 3.

Y ganas de sacarle mas provecho a Linux, asi que iniciamos, voy hacer esto lo mas practico y sencillo posible.

NOTA: Todo lo ejecutare como root, soy de la vieja escuela :-).

NOTA: Cuando encuentren un texto enmarcado similar a esto.

esto son comandos de ejecucion en su consola linux

Estos comando los deben ejecutar en su consola de Ubuntu, buzos.

1; Poner Nuestro OS con la hora correcta acorde a la region donde se encuentren.

unlink /etc/localtime
ln -s /usr/share/zoneinfo/America/Tijuana /etc/localtime

2; Actualizar el OS, que no falte ningun parche, este equipo estara dedicado a OCS Server en la red en este ejemplo.

apt update && apt upgrade -y

Una vez que terminen, reinician el equipo.

shutdown -r now

3; Instalamos el primero bloque de programas.

Instalamos lo siguiente.

apt -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 nano

Muy bien, sin errores, seguimos.

4; Iniciamos con las aplicaciones Perl.

cpan install XML::Entities
Figura 7.

Le damos ENTER para que inicie.

Figura 8.
perl -MCPAN -e 'install Mojolicious'
Figura 9.
Figura 10.
perl -MCPAN -e 'install Switch'
Figura 11.
Figura 12.
perl -MCPAN -e 'install Plack::Handler'
Figura 13.
Figura 14.

Listo, ningun error, continuamos.

5; Instalación de Apache.

Ejecutamos el siguiente comando.

apt install apache2 -y
Figura 15.

Listo, continuamos.

6; Instalación de PHP “Ojo aqui esta el problema de varios“.

NOTA: Esta nota es para todos aquellos que han tenido problemas con OCS Inventory, que sale la pantalla en blanco, etc, etc. OCS Inventory Server no es compatible con PHP 8.x que es la version que trae Ubuntu 22.04 de fabrica, asi que deben instalar la version 7.x, es lo que vamos hacer, sin chillar no todo es color de rosa.

Vamos a instalar un repositorio para que nos permita instalar PHP 7.x, hacemos lo siguiente en su consola.

apt install software-properties-common ca-certificates lsb-release apt-transport-https -y
Figura 18.
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php

Donde pida enter, le dan <ENTER>, buzos.

Le damos un update al sistema.

apt update
Figura 20.

Ahora si viene la instalacion de php 7.x.

apt install php7.4 -y
Figura 21.

Y de ahi nos vamos por el resto de las librerias requeridas de PHP.

apt install php7.4-mysql php7.4-zip php7.4-gd php7.4-mbstring php7.4-curl php7.4-xml php7.4-soap -y
Figura 23.

Ahora necesitamos habilitar el modulo Perl en PHP.

a2enmod perl
Figura 24.

Ahora vamos a editar los archivos de php ya que OCS Inventory Server lo requiere.

Vamos a buscar estos parametros y deben quedar con estos valores.

short_open_tag ==> On    linea +/- 187
post_max_size ==> 1024M  linea +/- 694
upload_max_filesize ==> 256M linea +/- 846

En los siguientes archivos.

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

Ahora vamos a crear un archivo de prueba de PHP, de nuevo con su editor de texto favorito en mi caso lo guardamos en esta ruta:

vim /var/www/html/test.php

Y le agregamos este contenido, sencillo.

<?php phpinfo(); ?> 
Figura 25.

Ahora si, necesitamos reiniciar apache para que cargue todos estos cambios y validamos este en ejecucion.

systemctl restart apache2
systemctl status apache2

Ahora si, vemos que apache esta en linea, la siguiente prueba es escencial, si no les arroja informacion de php deben regresar y revisar que les falto, ya que apache debe poder interpretar los archivos PHP, buzos.

Asi que abrimos nuestro navegador favorito y tecleamos la IP de nuestro servidor y apuntamos a el archivo de prueba creado, deben tener como resultado algo como la siguiente imagen.

http://ip-ubuntu/test.php
Figura 27.

Prueba superada, podemos continuar.

7; Instalacion de la base de datos MariaDB.

apt-get -y install mariadb-server
Figura 28.

Perfecto, sin errores. En este momento ya esta el servidor en ejecucion, vamos a validarlo.

systemctl status mariadb

Servicio en linea, el siguiente paso se los recomiendo, ya que mariadb no tiene clave de fabrica el usuario root, ejecutamos este batch.

mysql_secure_installation
Figura 31.
Figura 32.

Ahora creamos la base de datos y usuario para OCS Inventory Server en MariaDB.

Para esto accesamos a mariadb con el usuario root y ejecutamos lo siguientes comandos.

mysql -u root -p
CREATE DATABASE ocsweb;
CREATE USER 'ocs'@'localhost' IDENTIFIED BY 'ocs';
GRANT ALL PRIVILEGES ON ocsweb.* TO 'ocs'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
QUIT
Figura 33.

Aqui ya terminamos con la interaccion de base de datos.

8; Instalacion de OCS Inventory Server via SRC.

Ya llegamos a la parte crucial de este post, vamos a instalar el servidor OCS, para esto hacemos lo siguiente.

Nos vamos a la pagina oficial de github, aqui les dejo el link para descargar el codigo a compilar.

https://github.com/OCSInventory-NG/OCSInventory-ocsreports

Seleccionamos el link para que nos envie a la pagina de descarga de la ultima version que es la 2.9.2. Se bajan un poco en la pagina hasta que den con el link del codigo fuente, ver siguiente imagen, con el raton de su maquina, boton derecho y copean el enlace.

De aqui nos vamos a ubuntu, y descargamos este archivo en la ruta /opt

cd /opt
wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.9.2/OCSNG_UNIX_SERVER-2.9.2.tar.gz

Lo que sigue es descomprimir el archivo, entramos a el directorio y ejecutamos el batch setup.sh.

tar -xzf OCSNG_UNIX_SERVER-2.9.2.tar.gz

Ahora entramos a el directorio descomprimido.

cd OCSNG_UNIX_SERVER-2.9.2

NOTA: Este script de OCS Inventory Server empieza a validar cada pieza de software que requiere para instalarse, si algo no lo encuentra lo indicara. Si observan cuando hace una pregunta vienen 2 opciones asi
([y]/n)? al encontrarse esto [y] es la respuesta predefinida o sea “Yes” asi que solo presionamos <ENTER> por que se supone que ya tenemos todo el software requerido por el .
Otro ejemplo, cuando el valida y encuentra lo que busca, tenemos una respuesta similiar a esto:
Your MySQL client seems to be part of MySQL version 10.6.
Your computer seems to be running MySQL 4.1 or higher, good 😉 <==== vean la carita feliz. Son pequeños detallitos que nos dicen que todo va bien, asi que observen cada que vayan avanzando en la instalacion.

Ahora si, ejecutamos el script de instalación.

Figura 37.
./setup.sh

root@ocsserver:/opt/OCSNG_UNIX_SERVER-2.9.2# ./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.9.2
Storing log in file /opt/OCSNG_UNIX_SERVER-2.9.2/ocs_server_setup.log

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

Your MySQL client seems to be part of MySQL version 10.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...     |
+----------------------------------------------------------+

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 /opt/OCSNG_UNIX_SERVER-2.9.2/ocs_server_setup.log. Please, save this file.
If you encounter error while running OCS Inventory NG Management server,
we can ask you to show us its content !

DON'T FORGET TO RESTART APACHE DAEMON !

Enjoy OCS Inventory NG 😉

root@ocsserver:/opt/OCSNG_UNIX_SERVER-2.9.2#

De nuevo, vemos que no han salido errores y la instalacion se llevo con exito, continuamos, realmente si hemos instalado todo lo necesario solo es <ENTER>, ya si algo falto les marcara algun error, si asi regresen y revisen que les hizo falta de todo los pasos antes de llegar aqui.

9; Post Configuración de OCS Inventory Server.

Ahora necesitamos decirle a Apache que habilite configuraciones de OCS, para esto ejecutamos los siguiente:

a2enconf ocsinventory-reports.conf
a2enconf z-ocsinventory-server.conf
a2enconf zz-ocsinventory-restapi.conf
Figura 38.

Ahora configuramos el permiso del siguiente directorio.

chown -R www-data: /var/lib/ocsinventory-reports/
Figura 39.

Ahora si podemos proceder a reiniciar apache y revisar el servicio este en ejecucion, para irnos a la prueba de fuego.

systemctl restart apache2
systemctl status apache2

Podemos observar que apache esta en linea, lo cual indica que no se encontrado algun error en su lado, continuamos.

10; Ejecutar y Configurar OCS Inventory Server desde el Navegador.

Viene la parte mas crucial de todo, vamos a interactuar por primera vez con OCS Server atraves de nuestro navegador, en mi caso ejecuto Firefox, apunto a el IP del servidor a la ruta:

http://ip-servidor/ocsreports

Ingresamos los datos, presionamos el boton “Sent” y cruzamos los deditos…

Excelente, ahora presionamos click donde indica la imagen anterior.

La siguiente pantalla nos dice que existe una actualizacion de la base de datos, presionamos el boton que indica la pantalla para que se lleve a cabo.

Ya por ultimo recibimos la noticia que se llevo a cabo la actualizacion y damos click donde indica la siguiente imagen.

Figura 44.

NOTA: De fabrica el usario predefinido es “admin” y su clave es “admin”.

Porfin obtenemos la pantalla de logeo inicia, ahi les indico el usuario y clave de acceso, esto posteriormente se puede cambiar, asi que ingresamos los datos, click en “Send” y welcome OCS Inventory Server.

La imagen anterior nos muestra el GUI de OCS listo para empezar a instalar clientes.

Vamos revisando la version del software.

Ahora si, pasemos a instalar los clientes.

11; Instalacion de Agente o Cliente en Windows 11.

Vamos descargar el agente directamente de la pagina de Github de OCS Server la cual se encuentra en esta ruta:

https://github.com/OCSInventory-NG/WindowsAgent

Como puede ver existe el agente tanto para la version de 32 y 64 bits de Windows, en mi caso selecciono la 2da y en la imagen la marco. La descargamos, descomprimos, entramos a el folder y ejecutamos el ejecutable.

Figura 50.
Figura 51.
Figura 52.
Figura 53.
Figura 54.
Figura 55.
Figura 56.
Figura 57.
Figura 58.
Figura 59.
Figura 60.

Ya termino la instalacion, ahora debe aparecernos su icono en la barra de tareas cerca del reloj, veamos la siguiente imagen.

Figura 61.

Si existe comunicacion entre servidor y cliente, en este momento ya debe tener la informacion de este cliente el servidor y en el GUI nos debe aparecer el primer cliente.

Si tuvieran VLANs u otras redes fisicas esto no limita a OCS Server, siempre y cuando esas redes puedan accesar a el servidor via http es todo lo que requieren.

Le damos click en el link que indica la imagen anterior para entrar a ese grupo, nos mostrara un cliente, veamos si detalle.

Ahora le damos click a ese cliente que nos arroja en el listado y tendremos los detalles de ese equipo.

A mano izquierda tenemos detalles que podemos consultar de este cliente, por ejemplo veamos datos de Hardware.

Esto es solo una parte, pueden ir bajando en su navegador y podran observar mas informacion del hardware de este equipo.

Ahorita ustedes ya pueden empezar a jugar con todas las opciones de OCS Server para que se vayan familiarizando y vean todo los datos que nos permite obtener en tiempo real atraves de su navegador, olvidense de esos exceles ;-).

Aqui va el extra, agregamos un servidor Windows 2016 Std.

12; Instalacion de Agente Android.

Ahora pasemos a instalar un cliente android, vamos a play store y empezamos.

Figura 67.
Figura 68.

Ahora lo ejecutamos.

Figura 69.

En mi caso me arroja esa pantalla posiblemente a ustedes no.

Figura 70.
Figura 71

En la imagen anterior ya vemos a OCS version android en ejecucion, nos vamos a el menu esquina superior derecha como lo indica la imagen anterior.

Figura 72.

Buscamos la opcion que indica la imagen anterior “Server URL” e ingresamos la direccion del servidor y nos debe quedar como muestra la 2da imagen.

Nos regresamos a la pantalla inicial y presionamos el boton “SEND INVENTORY” como lo muestra la siguiente imagen para enviar todo el inventario de este cliente a el servidor.

Figura 73.

Ahora veamos el GUI de OCS Server.

Muy bien, ya aparece un android, veamos su detalle.

Figura 75.

Listo, ya tenemos un equipo movil con Android en nuestro inventario, continuamos con Linux Centos 8.

13; Instalacion del Agente para Centos 8.

Necesitamos instalar un repo de nombre epel-release y algunas aplicaciones, asi que iniciamos, habran su consola via ssh e ingresan lo siguiente.

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

Ahora descargamos el RPM para el agente de Centos 8 en la ruta /opt/

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

Instalamos el RPM.

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

Ahora si procedemos a instalar el agente para Centos 8.

yum -y --enablerepo=powertools --enablerepo=epel-playground install ocsinventory-agent
Figura 79.

Recuerden, revisar que no marque error cada que terminen los comandos e instalaciones.

Figura 80.

Todo se ha llevado a cabo sin problemas, ahora continuamos con la configuracion del agente.

Voy a instalar el editor nano, es mas sencillo de utilizar para las nuevas generaciones.

yum -y install nano

Ahora si, editamos el archivo de configuracion con nano.

nano /etc/ocsinventory/ocsinventory-agent.cfg
Figura 81.

Ingresen el IP de sus servidor OCS Server, el campo tag es opcional. Su archivo debe quedar similar.

Salvamos y salimos del archivo.

De nuevo con el editor nano voy a modificar el siguiente archivo.

nano /etc/sysconfig/ocsinventory-agent
Figura 82.

Recuerden ingresar el IP de su servidor. Salvamos y salimos.

Para no esperar a que cron haga su tarea, vamos a ejecutar el script que envia la info del inventario en ese momento, para esto hacemos lo siguiente en la consola.

/etc/cron.hourly/ocsinventory-agent

Dura unos minutos, no se desesperen. Si todo salio bien, nos vamos a nuestro GUI de OCS Server y nos debe aparecer un Unix ya en el dashboard.

Ahora veamos el detalle.

Vamos por buen camino, ya tenemos ahora un cliente Centos en la lista, continuamos.

14; Instalacion del Agente para Ubuntu.

Como sabran nuestro servidor se esta ejecutando bajo Ubuntu, asi que tambien necesito saber que hardware y software tiene, entonces requiero instalar el agente.

apt -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

Recuerden, revisar no marque ningun error.

Figura 86.

Descargamos el agente desde github, aqui dejo el enlace.

OCS Inventory NG · GitHub

Le damos click donde indica la imagen anterior.

Ahora, copeamos el enlace por que lo tenemos que descargar en Ubuntu, lo llevare a la ruta /opt

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

Descomprimimos el archivo, entramos a el directorio.

tar -xzf Ocsinventory-Unix-Agent-2.9.3.tar.gz

Posiblemente vean unos mensajes raros, no se asusten.

Figura 91.

Entramos a el folder.

cd Ocsinventory-Unix-Agent-2.9.3

Hacemos lo siguiente para la instalacion.

perl Makefile.PL
Figura 92.

Bien, sin errores. Ahora ejecutamos el siguiente comando.

make

Al final debemos tener una salida similar a la siguiente imagen, pero sin errores :-).

Ultimo paso, la instalacion, es un script interactivo, nos va a estar haciendo preguntas, vean la siguiente imagen y sigan mis pasos. Recuerden [y] asi indica la respuesta predeterminada.

Antes de ejecutar el comando donde inicia la instalacion interactiva, ahi que crear el archivo log para el agente.

touch /var/log/ocs_agent.log

Este archivo en un punto de la instalacion nos solicitara su ruta.

Ahora si ejecutamos el siguiente comando:

make install
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.9.129
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?> UbuntuOCS
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 disable software inventory?
Please enter 'y' or 'n'?> [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.9.129_ocsinventory directory…
Creating /var/lib/ocsinventory-agent/http:__192.168.9.129_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

Recuerden ingresar el IP de servidor, de nuevo no tenemos errores entonces vamos a el servidor, debemos tener ya 2 unix registrados.

Ya aparece otro Unix mas, veamos mas detalles.

Ahi esta nuestro servidor ya como cliente, veamos su detalle.

Listo, ya tenemos otro agente Unix mas en el inventario.

Veamos un panorama general de cuanto equipo tenemos en nuestro inventario.

Hasta terminamos la instalacion del servidor y los agente, ahora pasemos a hacerle modificaciones a el sistema, necesarios.

15; Ajustes a OCS Server.

Veamos el mensaje que nos envia el GUI cada que accedemos a el sistema.

Vamos a atacar el indicado en la imagen anterior, es sencillo, no quiere que exista por seguridad el archivo “install.php” en esa ruta, asi que lo que hare es cambiarle el nombre y paremos de sufrir, en su consola hacen lo siguiente.

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

Ahora en el navegador refrescan su pantalla F5 y el primer mensaje dejara de existir.

Ahora seguimos con este:

Nos dice que por seguridad cambiemos la clave de la base de datos. Para esto hacemos lo siguiente.

a)Entramos a mariadb para cambiarle la clave a el usuario ocs, elijan su mega clave.

mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 127
Server version: 10.6.7-MariaDB-2ubuntu1 Ubuntu 22.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)]> set password for 'ocs'@'localhost'=password('SuClav3C0mpL3jA');
Query OK, 0 rows affected (0.003 sec)

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

MariaDB [(none)]> quit
Bye

b) Actualizar el archivo “dbconfig.inc.php” con la nueva clave.

Con su editor favorito abren el siguiente archivo y hacemos los cambios.

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

Ahora nos falta tambien actualizar el archivo “z-ocsinventory-server.conf”, de nuevo con su editor favor lo abren y ponen su nueva clave.

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

c) Reiniciar apache para que se refresquen estos datos.

systemctl restart apache2
systemctl status apache2

Podemos ver que apache despues del reinicio esta en linea, entonces salimos del sistema y nos volvemos a firmar y el mensajes debe desaparecer.

Listo, problema resuelto.

16; Reparacion de Cantidad de Software en GUI.

Si observan la figura anterior, el campo “Sofware = 0”, este es un detalle que nos falta corregir, pero es sencillo, OCS Server tiene un batch que deberia colocar en cron para que se ejecutara cada cierto tiempo durante el dia. Este batch su tarea es obtener ese dato de la base de datos y mostrarlo en ese campo.

Figura 104.

No se acaba el mundo, nosotros lo vamos a agregar, es sencillo.

Nuestro batch se ejecutara cada hora, se me hace un buen valor. Ahora, abrimos crontab en modo edicion y agregamos nuestro batch, asi que ejecutamos.

crontab -e

Agregamos esta linea:

0 */1 * * * cd /usr/share/ocsinventory-reports/ocsreports/crontab && /usr/bin/php cron_all_software.php >/dev/null 2>&1

Guardamos y salimos.

Podemos esperar 1 hora, pero si lo deseamos lo podemos ejecutar en ese momento, asi como guardamos la tarea en crontab la ejecutamos manualmente.

cd /usr/share/ocsinventory-reports/ocsreports/crontab && /usr/bin/php cron_all_software.php >/dev/null 2>&1

No debe retornar ningun error o resultado, nos vamos directo a el GUI ya debemos tener datos de la cantidad de software de todos los clientes registrados en la base de datos.

Excelente, problema corregido.

17; Cambio de Clave de Usuario Admin.

Por ultimo vamos cambiar la clave de acceso del usuario Admin por una mas segura, asi no cualquiera puede llegar y manipular el sistema.

Para esto, nos vamos a la esquina superior derecha del GUI, click con mouse en el icono tipo engrane.

No se les olvide anotar su clave, no vaya ser se disparen en los pies :-).

Figura 108.
Figura 109.

Salimos del sistema para probar su clave.

Figura 110.
Figura 111.

Listo, asi de simple.

18; Borrar la Base de Datos e Iniciar de Nuevo.

Si Ocsinventory me indica que la tabla “ocsweb.subnet” no existe, si ustedes tiene un caso similar ya sea con esa misma tabla u otra tabla, lo mas seguro que durante la instalacion no se crearon todas las tablas que forman OCS Inventory dentro de la base de datos.

Y no es que hayan hecho algo mal, nada es perfecto y a veces los sistemas pueden causar problemas, de lo contrario no tuvieramos trabajo :-).

Ahora regresando a el punto, cuando esto sucede entonces nuestro sistema no se puede usar ya que esta falta de consistencia nos causara problemas.

Aqui lo mas recomendable es borrar la base de datos e iniciar de nuevo, si ya han ingreasdo informacion todo se perdera, ojO.

OCS Inventory anda manejando alrededor de 101 tablas.

Para iniciar de nuevo, para esto tenemos que hacer lo siguiente.

a) Borrar la base de datos ‘ocsweb’.

Entramos a la consola de mariadb.

mysql -u root -p 
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 72
Server version: 10.6.7-MariaDB-2ubuntu1 Ubuntu 22.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)]> drop database ocsweb;
Query OK, 0 rows affected (0.004 sec)

MariaDB [(none)]> create database ocsweb;
Query OK, 1 row affected (0.000 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.000 sec)

MariaDB [(none)]> QUIT
Bye
Figura 113.

b) Retornar el archivo install.php.

Les recomiendo regresarse y leer el primer texto del punto 15), ahi este archivo(install.php”) en mi caso lo renombre para que OCS me dejara de enviar el mensaje que por seguridad deberiamos de borrarlo.

Vamos a necesitar regresar este archivo a su nombre original, revertire los comandos.

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

Listo ya tengo de nuevo el archivo en su lugar.

c) Ejecutar de nuevo la instalacion.

Abrimos nuestro navegador y apuntamos a el url:

http://ip-servidor/ocsreports/install.php

Figura 114.

De aqui en adelante vamos a repetir el paso #10.

O sea que de nuevo el usuario admin tiene la clave de fabrica.

Ya solo para validar, puede revisar en la consola de mariadb al finalizar todo el proceso, cuantas tablas se crearon y pueden ahi mismo ver si la tabla en cuestion existe.

mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 85
Server version: 10.6.7-MariaDB-2ubuntu1 Ubuntu 22.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)]> SELECT count(*) AS TOTALNUMBEROFTABLES FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'ocsweb';
+---------------------+
| TOTALNUMBEROFTABLES |
+---------------------+
|                 101 |
+---------------------+
1 row in set (0.000 sec)

MariaDB [(none)]> quit
Bye

Listo, confirmo 101 tablas, puedo decir que todas estan creadas.

Pero vamos revisando la estructura de la tabla que no se habia creado ‘ocsweb.subnet’, entramos de nuevo a la consola de mariadb y hacemos lo siguiente:

use ocsweb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [ocsweb]> describe subnet;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| PK    | int(11)      | NO   | PRI | NULL    | auto_increment |
| NETID | varchar(15)  | NO   |     | NULL    |                |
| NAME  | varchar(255) | YES  |     | NULL    |                |
| ID    | varchar(255) | YES  | MUL | NULL    |                |
| MASK  | varchar(255) | YES  |     | NULL    |                |
| TAG   | varchar(255) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
6 rows in set (0.001 sec)

Podemos confirmar que la tabla en cuestion, ya existe.

Resumen.

Hemos terminado este post, espero le funcione y si no ya saben que esta la seccion de comentarios, si encuentran un error de igual manera me lo hacen saber. Espero para todos aquellos que empiezan a trabajar con esta maravilla de software les llene el ojo y les sea de utilidad.

Y si les gusto y tiene cuenta de paypal y les nace, manden para unas chelas bien heladas o para comprarle croquetas a mis mascotas 🙂 pheriko arroba gmail punto com, hasta pronto banda!!!.

12 thoughts on “Instalación de OCS Inventory Server 2.9.2 en Ubuntu 22.04.

  1. buenas tardes saludos amigo, revisando tu tutorial pude observar en la captura de pantalla numero 40 cuando reinicias el servicio de apache tienes un error pero no vi en las siguientes pantallas que lo resuelves puedes expliocar por favor que tengo ese mismo error, yo instale el ocs 2.9.2 pero en debian y me muestra este error ocsinventory-server: Bad setting. `IPDISCOVER_LINK_TAG_NETWORK` is not set. Default: `0

    Like

    1. Hola, son valores de fabrica que vienen en los archivos de config, sin embargo hasta el momento he tenido necesidad de editarlos para que OCS Inventory funcione, IPDiscovery es una funcion que trae OCS para buscar equipos en la red, es algo extra. Saludos.

      Like

      1. gracias por responder amigo el trae una funcion para hacer scan en la red local y el valor que trae es por default (0) sin embargo cuando yo busco inventario luego descubrimiento de IP no me muestra nada osea el IPDISCOVER no se esta ejecutando, esto sirve para identicar los equipos en la red que no tienen el agente de red instalado si me pudiera ayudar seria excelente

        Like

      2. añade esta linea:
        PerlSetEnv OCS_OPT_IPDISCOVER_LINK_TAG_NETWORK 0
        en:
        z-ocsinventory-server.conf
        en la carpeta:
        /etc/apache2/conf-enabled

        Like

  2. Hola! Antes de instalar php cuando ejecuto LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php me devuelve el error

    TimeoutError: [Errno 110] Connection timed out

    No he encontrado solucion, alguna idea?

    Gracias!

    Like

  3. hola, a mi me fue de maravilla con todo en cuanto a windows y android… pero cuando instalo el agente en mac no me los registra el server…

    Like

  4. Tengo un problema y es que los reportes de los clientes no se cargan en mi ocs, ya hice la instalación desde 0 3 veces y el error continua.

    Like

Leave a Reply to Bader Vera Villamayor Cancel 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 )

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