Pasar al contenido principal
Alberto Permuy Leal

Menú de navegación

  • Home
  • Blog
  • Proyectos
  • Arsenal
  • Conciertos
  • Acerca de
  • Contacto

Ruta de navegación

  1. Inicio
  2. Blog de Alberto Permuy Leal

OCS Inventory configuración Ubuntu Server 12.04

By apermuy, 4 Diciembre, 2013

¿Qué es OCS Inventory? [Fuente: Wikipedia]

 

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

Open Computer and Software Inventory Next Generation (OCS) es un software libre que permite a los usuarios administrar el inventario de sus activos de TI. OCS-NG recopila información sobre el hardware y software de equipos que hay en la red que ejecutan el programa de cliente OCS ("agente OCS de inventario"). OCS puede utilizarse para visualizar el inventario a través de una interfaz web. Además, OCS comprende la posibilidad de implementación de aplicaciones en los equipos de acuerdo a criterios de búsqueda. Además, tiene muchas opciones más como escanear la red por medio del IPDiscovery, o instalar aplicaciones remotamente creando Builds.

 

 

 

Motivación

 

 



Después pelear unos días con la instalación y configuración de OCS Inventory, he decidido publicar este post para detallar la instalación en un servidor Ubuntu Server 12.04. Ya tengo mis notas de instalación, pero me apetecía mucho escribir este post y compartir con todos vosotros la experiencia.



Si bien es cierto que para Debian GNU/Linux y Ubuntu hay paquetes disponibles, tanto para la versión "servidor" como "agente", mi experiencia no es muy satisfactoria instalando OCS desde un repositorio.

 

Consejos

 

 

  • aptitude update && aptitude upgrade antes de nada. 
  • Un mysqldump y un tar cf apache2.tar /etc/apache2 tampoco están de más.
  • No intentéis la instalación en un servidor en producción directamente, en teoría nunca pasa nada, pero en la práctica siempre "pasa algo.
  • Usad si o si SSL .
  • Cerrar acceso al /ocsreports con directivas Allow en Apache2.

Instalación servidor



Instalación de paquetes necesarios. Partimos de la base de que ya disponemos de un servidor LAMP correctamente configurado y operativo.



apt-get install libapache2-mod-perl2 libapache-dbi-perl libxml-simple-perl libio-compress-perl libdbi-perl libdbd-mysql-perl libnet-ip-perl php5-gd php5-mysql nmap snmp make



Si queremos habilitar el acceso vía webservice, debemos instalar los módulos Perl necesarios



perl -MCPAN -e 'install SOAP::Lite'



Para Apache2::SOAP



cd /usr/src

wget http://www.cpan.org/authors/id/R/RK/RKOBES/Apache2-SOAP-0.73.tar.gz

tar zxf Apache2-SOAP-0.73.tar.gz 

mkdir /usr/include/apache2

perl Makefile.pl && make && make install





Descargamos en el directorio /usr/src la última versión de OCS Inventory NG Management Server desde la URL http://www.ocsinventory-ng.org/en/download/download-server.html



cd /usr/src

wget https://launchpad.net/ocsinventory-server/stable-2.1/2.1rc1/+download/O…

tar zxf OCSNG_UNIX_SERVER-2.1rc1.tar.gz

rm -rf OCSNG_UNIX_SERVER-2.1rc1.tar.gz



Ejecutamos el script de instalación dentro del directorio OCSNG_UNIX_SERVER-2.1rc1



cd OCSNG_UNIX_SERVER-2.1rc1 

/setup.sh



La primera preguntas que debemos responder corresponden con la localización del ejecutable, usuario y ficheros de configuración de Apache. Si has instalado Apache2 desde los repositorios oficiales de Ubuntu, acepta todas las propuestas. Idem para la configuración de MySQL Server/MariaDB.

 



El siguiente paso en la instalación es la ubicación del fichero de configuración de OCS, por defecto el script de instalación lo ubicará en /etc/apache2/conf.d . Es muy importante que recuerdes la localización de este fichero para futuros cambios.

Avanzamos confirmando el PATH para intérprete de Perl(/usr/bin/perl en mi caso). Imprecindible instalar "make", de lo contario la instalación no podrá continuar. Llegados a este punto confirmamos el directorio dónde OCS guardará los logs (/var/log/ocsinventory-server), importante tomar nota para un futuro por si tenemos "problemas". El asistente comprobará si están instalados en el sistema los módulos necesarios para el correcto funcionamiento de OCS.



+----------------------------------------------------------+

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



Es probable que recibamos un "warning" del tipo



*** Warning: PERL module Apache2::SOAP is not installed ! o *** Warning: PERL module XML::Entities is not installed !





La instalación de este módulo sólo es necesaria(lo indica el instalador) si queremos utilizar SOAP WebService, no es el caso. Continuamos la instalación.





Do you wish to continue ([y]/n] ?y



Después de realizar las comprobaciones necesarias(módulos Perl instalados), en script de instalación pregunta si queremos permitir al instalador que modifique el fichero de configuración 'ocsinventory-server.conf', renonbrándolo a 'z-ocsinventory-server.conf'. Respondemos si(Y)

 

 

 

 



+----------------------------------------------------------+

| OK, Communication server setup sucessfully finished ;-)  |

|                                                          |

| Please, review /etc/apache2/conf.d/z-ocsinventory-server.conf

| to ensure all is good. Then restart Apache daemon.       |

+----------------------------------------------------------+





Momento de configurar el acceso web OCS. En esta parte de la instalación he modificado la propuesta de directorios basada en FHS :



/var/lib/ocsinventory-reports => "download directory" para almacenar datos de los equipos, datos SNMP e IPDiscover

/var/www/ocsreports => ficheros PHP para Web Console







Momento de configurar el acceso web OCS. En esta parte de la instalación he modificado la propuesta de directorios basada en FHS :



/var/lib/ocsinventory-reports = "download directory" para almacenar datos de los equipos, datos SNMP e IPDiscover

/var/www/ocsreports = ficheros PHP para Web Console

 

 

 

 

 

Configuración del servidor web OCSReports



La configuración por defecto permite acceder al directorio /ocsreports desde cualquier virtualhost configurado en el máquina. En el escenario que he utilizado para documentar la instalación, usamos un subdomonio con SSL activado e incluímos la configuración dentro del propio fichero de configuración de Apache y eliminamos el fichero /etc/apache2/conf.d/ocsinventory-server.conf para evitar el acceso a /ocsreports. Muy importante en este punto, a la hora de generar el certificado, que el FQDN coincida con el nombre DNS de la máquina, de lo contrario, no los "agentes" no se podrán comunicar con el servidor pues recibirán un error de validación del certificado.



Generamos el certificado para el servidor:



cd /etc/apache2/ssl && mkdir ocs-certs 

cd ocs-certs

openssl req -new -x509 -days 3650 -nodes -out ocs.crt -keyout ocs.key



Country Name (2 letter code) [AU]:ES

State or Province Name (full name) [Some-State]:ACoruna

Locality Name (eg, city) []:Ames

Organization Name (eg, company) [Internet Widgits Pty Ltd]:CannibalCorpse

Organizational Unit Name (eg, section) []:IT

Common Name (e.g. server FQDN or YOUR name) []:ocs.cannibalcorpse.net

Email Address []:



NOTA : Common Name (e.g. server FQDN or YOUR name) []:ocs.cannibalcorpse.net , debe coincidir con el valor de la directiva ServerName de virtualhost de Apache2



NOTA II: Copiamos el fichero ocs.crt al fichero cacert.pem y lo incluimos dentro de la carpeta del instalador del agente Windows(en mi caso). Luego veremos en qué paso lo usuaremos.



Continuamos. Voy a incluir el fichero configuración del virtualhost de Apache2, pero antes de nada, movemos el fichero ocsinventory-server.conf a un lugar seguro



mv /etc/apache2/conf.d/ocsinventory-server.conf /root/stuff



El contenido del fichero lo podéis descargar desde esta URL:





https://dl.dropboxusercontent.com/u/6108202/vhost_ocs.txt



Descargamos el fichero y comprobamos la sintaxis



alex@cannibalcorpse.net:/etc/apache2/sites-available# apachectl -t

Syntax OK




Si no hay ningún error, activamos el módulo SSL, habilitamos el sitio y recargamos la configuración.



a2enmod ssl &&2ensite oscannibalcorpsenet

service apache2 restart

 

 

 

 

 

 



En teoría ya podemos acceder a https://ocs.cannibalcorpse.net/ocsreports y finalizar la configuración del cliente web. El primer paso es crear una base de datos(MySQL/MariaDB) y un usuario con privilegios. Es muy sencillo.



mysql>; CREATE DATABASE ocs;

mysql>; GRANT ALL PRIVILEGES ON ocs.* TO 'ocs'@'localhost' IDENTIFIED BY 'UNPASSWORDQUETECAGASDECOMPLEJO' WITH GRANT OPTION;



NOTA III: Muy importante actualizar el fichero /etc/apache2/conf.d/z-ocsinventory-server.conf con las credenciales de acceso correctas a la base de datos que hemos creado.



Detalle del fichero z-ocsinventory-server.conf con las credenciales modificadas

  # Name of database

  PerlSetEnv OCS_DB_NAME ocs

  PerlSetEnv OCS_DB_LOCAL ocs

  # User allowed to connect to database

  PerlSetEnv OCS_DB_USER ocs

  # Password for user

  PerlSetVar OCS_DB_PWD UNPASSWORDQUETECAGASDECOMPLEJO



Recargamos la configuración de Apache2



service apache2 reload



Eliminamos el fichero install.php



cd /var/www/ocsreports/ocsreports && rm -rf install.php



echo "Instalación finalizada. Salud"

 

 

Quizá te interesen estos artículos...

Activar Wake On LAN (wol) al iniciar Debian 12

Publicado el 28/09/2024

Usuario y contraseña router ZTE ZXHN H298Q R Cable

Publicado el 05/01/2024

Convertir fichero ECW a JPG con Docker y GDAL

Publicado el 30/12/2023

Aviso legal 


Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.

Sígueme en Mastodon

Powered by Drupal