Instalación y configuración de servidor OCS Inventory NG en Ubuntu 17.04

En este documento instalaremos un servidor OCS-Inventory para realizar inventarios automáticos de nuestros equipos de red. Esta herramienta la montaremos sobre un servidor Ubuntu 17.04, un apache2 y servidor de bases de datos MySQL.

Hemos ya preparado un Ubuntu Server 17.04 habiendo hecho una instalación totalmente por defecto

Dejo también aquí un vídeo donde se muestra toda el proceso de instalación y los pasos que veremos a continuación.

Instalación

Primero asignaremos una IP fija a la ethernet

sudo vi /etc/network/interfaces

Modificamos nuestra configuración de red, pasamos de dhcp a static y configuramos los parámetros de red

En mi caso modificaré la ethernet que esta montada cómo ens33, en vuestro caso será posiblemente otro nombre, tenéis que mantener la primera linea de auto así cómo el iface xxxx inet de la segunda linea

En este punto podemos reiniciar la tarjeta de red mediante los comandos ifdown y ifup, pero también podemos reiniciar directamente el equipo, de este modo los cambios se van a aplicar seguro.

Utilizaremos:
sudo ifdown eth0 (eth0 es un ejemplo, en nuestro caso tendremos que ver cual es nuestra tarjeta de red)
sudo ifup eth0 (eth0 es ejemplo, en mi caso la ethernet se llama ens33)

En caso de duda podemos reiniciar el equipo con:
sudo shutdown now -r

Actualizamos repositorios y realizamos un upgrade
sudo apt-get update
sudo apt-get upgrade

Instalamos el servidor ssh, puesto que a partir de este momento trabajaremos des de un cliente ssh (Putty)
sudo atp-get openssh-server

Iniciamos la instalación de servidor web apache, MySQL, librerias php y perl que vamos a necesitar
sudo apt-get install wget build-essential apache2 php libapache2-mod-php7.0 php-gd libgd-dev unzip libapache2-mod-perl2 mysql-server libdbd-mysql-perl php-mysql php-mbstring php7.0-mbstring php7.0-mcrypt php-gettext php-soap php7.0-curl libxml-simple-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl

Continuamos instalando dependencias vía CPAN
sudo cpan -i XML::Entities Compress::Zlib Archive::Zip

Activamos en php mcrypt y mbstring
sudo phpenmod mcrypt
sudo phpenmod mbstring

Reiniciamos apache2 y ya podemos probar mediante el navegador si nuestro servidor web esta disponible

sudo service apache2 restart

Editamos el arcivo de configuración de apache y añadimos la dirección del servidor en la ultima linea, en ese caso yo le voy a poner “localhost”

sudo vi /etc/apache2/apache2.conf

Conectamos al MySQL y creamos la base de datos y el usuraio y password que vamos a utilizar.
mysql -u root -p

Ahora creamos una carpeta donde descargar y descomprimir el ocs server que vamos a instalar

Vamos a la web de OCS Inventory NG https://www.ocsinventory-ng.org/en/ y copiamos la dirección de descarga del paquete de instalación de servidor Linux

Volvemos al puty y lo descargamos y descomprimimos.

Empezamos la instalación

sudo ./setup

Vamos a crear los links simbólicos en sites-enabled para la web de administración y para la dirección donde vamos a mandar los inventarios des de los equipos remotos

sudo ln -s /etc/apache2/conf-available/ocsinventory-reports.conf /etc/apache2/sites-enabled/ocsinventory-reports.conf

sudo ln -s /etc/apache2/conf-available/z-ocsinventory-server.conf /etc/apache2/sites-enabled/

sudo service apache2 restart

Abrimos ya la web de ocs, mi caso de ejemplo la url es http://192.168.1.50/ocsreports

 

Si todo ha ido bien aparecerá la web de configuración donde indicaremos usuario/password, base de datos y servidor. Si habéis seguido el manual corresponden a:

ocsuser/ocspassword
ocsweb
localhost

Vemos que la instalación nos muestra o nos indica varios aspectos que deberemos tener en cuenta, en este caso vamos a aplicar el dicho de divide y vencerás y vamos a abordad punto a punto

Var lib dir should be writable : /var/lib/ocsinventory-reports

Para resolver esto concederemos la carpeta en cuestión al usuario www-data

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

WARNING: You will not be able to build any deployment package with size greater than 100MB
You must raise both post_max_size and upload_max_filesize in your vhost configuration to encrease this limit.

 

Aquí podemos ampliar el límite modificando el fichero ocsinventory-reports.conf

sudo vi /etc/apache2/conf-available/ocsinventory-reports.conf

En el ejemplo amplio a 200M

A nosotros nos aplica la configuración php7 pero modificaremos las dos

Una vez hecha la instalación si accedemos al entrono nos encontraremos este mensaje

SECURITY ALERT!
Your install.php exists in your installation directory.
The default SQL login/password is set on your database: ocsweb

Vamos pues primero a quitar el archivo install.php

sudo mv /usr/share/ocsinventory-reports/ocsreports/install.php /usr/share/ocsinventory-reports/ocsreports/install.php_old

Solo nos queda ya resolver la advertencia de seguridad del usuario y password que deberemos modificar en el archivo z-ocsinventory-server.conf, en caso de no corregir este tema,los inventarios de los equipos no van a llegar al servidor.

SECURITY ALERT!
The default SQL login/password is set on your database: ocsweb

Editamos

Modificamos:

 

Reiniciamos apache y mysql

sudo service apache2 restart
sudo service mysql restart


 

Llegados a este punto ya hemos finalizado la parte de servidor y solo nos falta instalar la herramienta cliente en un equipo para ver si los inventarios llegan correctamente.

Podemos descargar el cliente para las distintas versiones de sistemas operativos des de la web de OCS

https://www.ocsinventory-ng.org/en

Seguimos la instalación cómo muestran las imagenes y si todo es correcto el equipo ya aparecerá en el inventario

Para una mayor comodidad y poder realizar las instalaciones de un modo desatendido, podemos preparar un fichero bat que nos ayude a aplicar el cliente a nuestros equipos Windows

Ejemplo de ocs.bat situado en la misma carpeta del instalador. Por alguna razón el instalador se tiene que ejecutar des de una unidad de red o local, no sirve una ruta de recurso compartido del estilo \\computer\xxxx

Espero que este manual os pueda ayudar.

Comments

  • ¿Y como se haría una distribución de Software para hacer una instalación masiva a un aula de ordenadores?. Moltes gràcies.

    • Buenas.

      Yo en tu caso lo haría mediante directivas de grupo, pueddes crear una directiva que conecte una unidad de red, ejecute el instalador en modo silencioso y vuelva a desconectar la unidad. Solo con iniciar los equipos les aplicaría el inventario a todos

      Saludos

  • Cuando sigo tu tutorial,
    no consigo entrar en la url [ipservidor]\ocsreports una vez finalizado el proceso de sudo ./setup.sh
    Pone, You don’t have permission to access /ocsreports on this server.
    Qué me falta de permisos??
    Saludos.

  • buenas tardes segui tu manual, pero no envia la informacion de los equipos al servidor, no tengo referencia de ningun error alguna idea del por que, el AGENT de windows si muestra la informacion del inventario.

    saludos

    • Luis

      En el equipo cliente revisa el log

      %programdata%\OCS Inventory NG\Agent\OCSInventory.log

      acabo de seguir el tuto paso a paso y me ha funcionado, creo que el fallo puede estar en la definición del usuario y password de la base de datos en el archivo z-ocsinventory-server.conf, importante recordar editar:

      sudo vi /etc/apache2/conf-available/z-ocsinventory-server.conf

      modificar usuario y password con los definidos en la creación de la base de datos

      # User allowed to connect to database
      PerlSetEnv OCS_DB_USER ocsuser
      # Password for user
      PerlSetVar OCS_DB_PWD ocspassword

      Hecho esto y ejecutado el agente de inventario en un equipo al entrar en la pantalla principal muestra “Machines in DB: 0” pero si vamos a “All Computers” ya lo tenemos, eso es por que el PROLOG_FREQ por defecto está de 24 por lo que hay que esperar 24 horas para que el contador se actualice. Teniendo ya el equipo disponible en todos los equipos.

      Espero que con todo esto le sirva.

      Saludos

  • A mi me ocurre lo mismo que dice Luis. El Agente lo instalo manualmente, le doy la url ip\ocsinventory, a pesar de que ip\ocsinventory no me muestra nada en el servidor, me responde ip\ocsreports
    En el inventario no me aparece mi equipo.

    • En el equipo cliente revisa el log

      %programdata%\OCS Inventory NG\Agent\OCSInventory.log

      acabo de seguir el tuto paso a paso y me ha funcionado, creo que el fallo puede estar en la definición del usuario y password de la base de datos en el archivo z-ocsinventory-server.conf, importante recordar editar:

      sudo vi /etc/apache2/conf-available/z-ocsinventory-server.conf

      modificar usuario y password con los definidos en la creación de la base de datos

      # User allowed to connect to database
      PerlSetEnv OCS_DB_USER ocsuser
      # Password for user
      PerlSetVar OCS_DB_PWD ocspassword

      Hecho esto y ejecutado el agente de inventario en un equipo al entrar en la pantalla principal muestra “Machines in DB: 0” pero si vamos a “All Computers” ya lo tenemos, eso es por que el PROLOG_FREQ por defecto está de 24 por lo que hay que esperar 24 horas para que el contador se actualice. Teniendo ya el equipo disponible en todos los equipos.

      Espero que con todo esto le sirva.

      Saludos

  • A mi me ocurre lo mismo que dicen los otros post. El Agente lo instalo manualmente, le doy la url ip\ocsinventory, . En el inventario no me aparece ningún equipo y en la carpeta del agente no hay ningún log.
    Por donde busco el error?

    • Buenas.

      El log se situa en: %programdata%\OCS Inventory NG\Agent\OCSInventory.log

      Acabo de seguir el tuto paso a paso y me ha funcionado, creo que el fallo puede estar en la definición del usuario y password de la base de datos en el archivo z-ocsinventory-server.conf, importante recordar editar:

      sudo vi /etc/apache2/conf-available/z-ocsinventory-server.conf

      modificar usuario y password con los definidos en la creación de la base de datos

      # User allowed to connect to database
      PerlSetEnv OCS_DB_USER ocsuser
      # Password for user
      PerlSetVar OCS_DB_PWD ocspassword

      Hecho esto y ejecutado el agente de inventario en un equipo al entrar en la pantalla principal muestra “Machines in DB: 0” pero si vamos a “All Computers” ya lo tenemos.

      Espero que con todo esto le sirva.

      Saludos

  • Hola muchas gracias por el tutorial, pero como indican algunos compañeros. Se tiene ese problema, ahora usted indica que quiere ver el log.
    Lo que me sale en el log es esto:
    ==============================================================================
    Starting OCS Inventory NG Agent on Saturday, July 22, 2017 22:08:57.
    AGENT => Running OCS Inventory NG Agent Version 2.3.0.0
    AGENT => Using OCS Inventory NG FrameWork Version 2.3.0.0
    AGENT => Loading plug-in(s)
    DLL PLUGIN => Searching for Plug-in DLL(s) in folder
    DLL PLUGIN => 0 DLL Plug-in(s) successfully loaded on 0 DLL(s) found
    AGENT => Using network connection with Communication Server
    COM PROVIDER => Loading Communication Provider
    AGENT => Using Communication Provider Version
    AGENT => Writing configuration to file
    AGENT => Unloading communication provider
    AGENT => Unloading plug-in(s)
    AGENT => Execution duration: 00:00:00.

    ==============================================================================
    Starting OCS Inventory NG Agent on Saturday, July 22, 2017 22:08:58.
    AGENT => Running OCS Inventory NG Agent Version 2.3.0.0
    AGENT => Using OCS Inventory NG FrameWork Version 2.3.0.0
    AGENT => Loading plug-in(s)
    DLL PLUGIN => Searching for Plug-in DLL(s) in folder
    DLL PLUGIN => 0 DLL Plug-in(s) successfully loaded on 0 DLL(s) found
    AGENT => Using network connection with Communication Server
    COM PROVIDER => Loading Communication Provider
    AGENT => Using Communication Provider Version
    AGENT => Sending getLabel request
    COM SERVER => Initializing cURL library for getFile
    COM SERVER => Using cURL without server authentication
    COM SERVER => Disabling cURL proxy support
    COM SERVER => Enabling cURL SSL server validation support using CA Bundle
    COM SERVER => Sending fileGet request to URL
    COM SERVER => fileGet response received
    COM SERVER => Cleaning cURL library
    AGENT => Failed to retrieve Label
    AGENT => Sending Prolog
    DID_CHECK => Read DeviceID and MACs in file
    COM SERVER => Initializing cURL library for sendRequest
    COM SERVER => Using cURL without server authentication
    COM SERVER => Disabling cURL proxy support
    COM SERVER => Enabling cURL SSL server validation support using CA Bundle
    COM SERVER => Sending HTTP Post request to URL
    COM SERVER => HTTP Post response received
    COM SERVER => Cleaning cURL library
    ERROR *** AGENT => Failed to send Prolog
    AGENT => Unloading communication provider
    AGENT => Unloading plug-in(s)
    AGENT => Execution duration: 00:00:00.

    De antemano agradesco el apoyo de compartir informacion y la ayuda.
    Saludos

    • Luis

      En el equipo cliente revisa el log

      %programdata%\OCS Inventory NG\Agent\OCSInventory.log

      acabo de seguir el tuto paso a paso y me ha funcionado, creo que el fallo puede estar en la definición del usuario y password de la base de datos en el archivo z-ocsinventory-server.conf, importante recordar editar:

      sudo vi /etc/apache2/conf-available/z-ocsinventory-server.conf

      modificar usuario y password con los definidos en la creación de la base de datos

      # User allowed to connect to database
      PerlSetEnv OCS_DB_USER ocsuser
      # Password for user
      PerlSetVar OCS_DB_PWD ocspassword

      Hecho esto y ejecutado el agente de inventario en un equipo al entrar en la pantalla principal muestra “Machines in DB: 0” pero si vamos a “All Computers” ya lo tenemos, eso es por que el PROLOG_FREQ por defecto está de 24 por lo que hay que esperar 24 horas para que el contador se actualice. Teniendo ya el equipo disponible en todos los equipos.

      Espero que con todo esto le sirva.

      Saludos

  • El error que me sale es http 404 solo que en los anteriores no me adjuntaba, perdon por el SPAM y es viable borrar los post anteriores, muchas gracias.

    Starting OCS Inventory NG Agent on Wednesday, August 09, 2017 11:58:40.
    AGENT => Running OCS Inventory NG Agent Version 2.3.0.0
    AGENT => Using OCS Inventory NG FrameWork Version 2.3.0.0
    AGENT => Loading plug-in(s)
    AGENT => Using network connection with Communication Server
    AGENT => Using Communication Provider Version
    AGENT => Sending Prolog
    ERROR *** AGENT => Failed to send Prolog ——HTTP Status Code #404————
    AGENT => Unloading communication provider
    AGENT => Unloading plug-in(s)
    AGENT => Execution duration: 00:00:00.

    • Buenas.

      Prueba con un navegador ir a la dirección http://LaIPdeTuServidor/ocsinventory te tiene que salir un error del tipo:

      Bad Request

      Your browser sent a request that this server could not understand.

      Comentame que es lo que te sale.

      Por lo contrario, revisa que error se produce en el log del servidor apache y me lo muestras.

      El log se encuentra en: /var/log/apache2/error.log

      Aquí puede que veamos que es lo que sucede.

      He seguido los pasos de la web al completo y me ha funcionado a la primera, no veo que se nos escapa. Tengan muy en cuenta los datos de conexión definidos en este fichero: /etc/apache2/sites-enabled/z-ocsinventory-server.conf

      Saludos

  • ¿Qué debo hacer para capturar datos de hosts remotos? ¿Qué puertos debo cambiar / abrir y cómo?

    • Buenas.

      La comunicación es por los puertos http o https que tu hayas configurado en tu apache, si no has cambiado nada, por defecto el servidor escucha por el 80 http o 443 https. Los equipos cliente solo tienen que poder navegar por esos dos puertos (Lo más común)

      Saludos

  • Saludos.

    Antes que nada mil gracias por tu tutorial, solo tengo una duda, el proceso no incluye la instalación de plugins, puesto que al intentar copiarlo, me indica :

    Please install the following modules in order to get this feature working :
    – ZipArchive
    Plugin Install
    You can’t install plugins, check error messages above.

    He descargado desde la página oficial de ocs reports el plugin security-master.zip, lo he copiado a la ruta /usr/share/ocsinventory-reports/ocsreports/download y el mensaje persiste, desconozco si sea algún permiso o asignación de usuario, lo he realizado como root a partir de sudo -i.

    ¿Cómo instalo un plugin, por ejemplo el de officekey?

    Muchísimas gracias desde Puebla, México.

Deixa un comentari

Your email address will not be published. Required fields are marked *