Open Computer and Software Inventory Next Generation (OCS) es un software libre que permite a los Administradores de TI (Tecnología de Información) gestionar el inventario de los activos de Tecnológicos. OCS-NG recopila información sobre el hardware y software de equipos por medio de un agente que debe ser instalado en cada host. Lo mejor es que puede utilizarse para visualizar el inventario a través de una interfaz web.
Pre-requisitos son tener LAMP instalado, lo voy a mostrar en un Debian 10 recién instalado, sin explicar mucho los pasos, podes entender bien como funciona LAMP podes verlo en publicaciones anterior.
Paso 1: Instalación de LAMP
apt install -y apache2 php libapache2-mod-php php-mysql php-mbstring php-xml php-zip mariadb-server
Ejecutamos el script de instalación de Mariadb
mysql_secure_installation
Le damos un enter cuando pregunte la contraseña, colocamos el password para el usuario root de la base de datos y después enter hasta el final.
Paso 2: Carga de módulos
Voy a dividir la instalación de módulos en 2, esta primer parte deben estar si o si para que funcione bien.
apt install -y libapache2-mod-php libapache2-mod-perl2 libapache-dbi-perl libapache-db-perl
Los siguientes son necesarios para la interface web.
apt install -y php-soap php-curl php-json php-xml php-mbstring php-gd php-pclzip php-xmlrpc
Paso 3: En este punto es importante tener instaladas las herramientas de desarrollo para Debian 10 y que nada falle en la instalación:
apt install -y cmake gcc make build-essential make
Paso 4: Creando la base para OCS Inventory
Como ya instalamos MariaDB vamos a generar la base de datos, un usuario con contraseña y asignarle los permisos para administrar la base de datos.
mysql -u root -p CREATE DATABASE ocsdb; GRANT ALL PRIVILEGES ON ocsdb.* TO 'ocsuser'@'localhost' IDENTIFIED BY 'ocspassword'; FLUSH PRIVILEGES; exit;
Paso 5: Cargando módulos de Perl
Como OCS inventory esta desarrollado en Perl vamos a necesitar lo siguiente.
apt install -y perl libnet-ip-perl libxml-simple-perl libarchive-zip-perl libxml-simple-perl libcompress-zlib-perl libdbi-perl libdbd-mysql-perl libnet-ip-perl libsoap-lite-perl libio-compress-perl libapache-dbi-perl libapache2-mod-perl2 libapache2-mod-perl2-dev libdbd-mysql-perl
Y es necesario hacer un paso que deberemos tener pasciencia, dado que algunos módulos de Perl necesarios no se encuentran en formato de paquetes de Debian 10, así que los instalaremos con la utilidad cpan de Perl:
cpan install XML::Entities Apache2::SOAP Net::IP Apache::DBI Mojolicious Switch Plack::Handler Archive::Zip
Paso 6: Descargar e instalar OCS Inventory
Vamos a instalar la última versión desde su sitio de github, https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases
cd /opt wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.8.1/OCSNG_UNIX_SERVER_2.8.1.tar.gz
Descomprimimos
tar -xvzf OCSNG_UNIX_SERVER_2.8.1.tar.gz
Antes de lanzar el instalador te recomiendo hacer un paso adicional, que nos ahorrará tiempo a futuro. Ingresamos al directorio y modificamos el archivo setup.sh y ajustamos los valores de la base de datos:
cd OCSNG_UNIX_SERVER_2.8.1
nano setup.sh
Los parámetros son los que usamos en pasos previos
DB_SERVER_HOST="localhost" DB_SERVER_PORT="3306" DB_SERVER_USER="ocsuser" DB_SERVER_PWD="ocspassword"
Guardamos los cambios y lanzamos el script, a cada pregunta que haga le vamos a dar Enter para que tome los valores por defecto hasta que llegue al final.
./setup.sh
No deberíamos ver ningún error, caso contrario hay que solucionarlo.
Paso 7: Ajustes finales
Vamos a crear unos enlaces para hacer que la interface web de OCS Inventory funcione correctamente.
ln -s /etc/apache2/conf-available/ocsinventory-reports.conf /etc/apache2/conf-enabled/ocsinventory-reports.conf ln -s /etc/apache2/conf-available/z-ocsinventory-server.conf /etc/apache2/conf-enabled/z-ocsinventory-server.conf
Ajustamos permisos de ejecución
chown -R www-data:www-data /var/lib/ocsinventory-reports/
Y finalmente ajustamos la configuración de los parámetros de la base de datos en el archivo de configuración de OCS. Lo más importante es ajustar OCS_DB_NAME, OCS_DB_LOCAL, OCS_DB_USER
nano /etc/apache2/conf-available/z-ocsinventory-server.conf
Y reinciamos apache para que tome los cambios.
systemctl restart apache2
Firewall: en el caso de usar UFW recordá habilitar el puerto remoto.
ufw allow 3306/tcp
Paso 8: Iniciar la aplicación
En mi caso tengo un Debian con instalación mínima, así que desde otro equipo ejecutamos en el navegador http://ip-server/ocsreports/
Donde vamos a colocar los parámetros de la base de datos, solo 4 que se muestran a continuación el resto queda como esta:
MySQL Login: ocsuser MySQL Password: ocspassword Name of Database ocsdb MySQL HostName: localhost
Si todo salió bien, hacemos clic en el enlace OCS-NG GUI y nos llevará a la interface principal donde pide usuario y contraseña, que por defecto OCS Inventory usa admin para nombre de usuario y admin para la contraseña.
Si nos da un mensaje
SECURITY ALERT! Your install.php exists in your installation directory. The default SQL login/password is activate on your database: ocsweb The default login/password is activate on OCS-NG GUI
Hay que eliminar el archivo install.php, puede dar otros mensajes por lo que te recomiendo no usar los parámetros por defecto y cambiar la contraseña del usuario admin que es admin por defecto.
rm /usr/share/ocsinventory-reports/ocsreports/install.php
Y con esto ya podemos comenzar a cargar equipos.