Supongo que si llegaste hasta acá te pasó como a mi y decidiste profesionalizar tu departamento de TI siguiendo frameworks como ITIL o lineamientos de Ciberseguridad familiares a la ISO 27001.

O simplemente estas instalando la app para alguién más o saber que onda.

En cualquiera de las dos opciones creo que te puedo ayudar.

La documentación de CMDBUILD es bastante escueta con respecto a la instalación. No explica todo y da por sentado muchas cosas. Durante el proceso he descubierto varias.

Solo es compatible con postgresql 13. Con 14 o superior el dump inicial de la base de datos tira error. Al parecer el cmdbuild.sh tiene hardcodeado un pg_restore y el dump es de una base de datos con PG13, con funciones no compatibles para versiones superiores. De querer instalar en un pg14 deberías poder migrar la base de datos y luego hacer un dump de la misma. Todo esto es una suposición.

La documentación de los conectores posterior a la versión cmdbuild 2.5 es inexistente(o explica la mitad de los procedimientos). Si bien la app es opensource la parte de conectores te la venden como servicio la gente de tecnoteca, que es quiénes desarrollan la app y hacen sus tutoriales. «Tutoriales» es decir demasiado, son ventas disfrazadas de tutoriales.

Hasta ahora he integrado cmdbuild solo con Alfresco para la carga de documentación, lo cuál dejaré para más adelante.

Toda la configuración de la app se carga por defecto en la carpeta que creamos dentro de tomcat (<tomcat>conf/cmdbuild). En los tutoriales que encontré (los cuales ninguno funcionó) no lo explica pero hay que darle permisos al demonio de tomcat para que pueda escribir en ese directorio, sino las configuraciones no funcionan. CMDBUILD escribé las configuraciones en la base de datos y luego las pasa a archivos .conf. Si no puede escribir en ese directorio no funcionarán.

La versión que instalo en este tuto es ready2use, que viene ya lista para empezar tu plan de Gobernanza IT. Pero si querés instalar cualquiera de las otras solo debes reemplazar el war y las librerías de ready2use por cmdbuild u openmaint.

Vamos a los pasos:

#Después de instalar Debian 11, actualizamos todo.
apt update && apt upgrade

Instalamos Postgresql

apt install postgresql-13 postgresql-13-postgis-3 postgresql-13-postgis-3-scripts

Luego editar el archivo pg_hba.conf de la siguiente manera:

nano /etc/postgresql/13/main/pg_hba.conf


local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5
#Reiniciamos postgresql para que se ejecuten los cambios.
systemctl restart postgresql
#Creamos los usuarios que vamos a usar en la base de datos
su - postgres
psql
CREATE DATABASE cmdbuild_db;
CREATE USER cmdbuild_user WITH encrypted password 'password';
GRANT ALL PRIVILEGES ON DATABASE cmdbuild_db TO cmdbuild_user;
DROP DATABASE cmdbuild_db;
CREATE USER cmdbuild_superuser WITH encrypted password 'password';
ALTER USER cmdbuild_superuser WITH SUPERUSER;
\q
exit

Si se fijan bien creamos y eliminamos la base de datos para que quede la referencia de los permisos al usuario. La debemos eliminar antes ya que sino el pg_restore tira un error notando que la base existe y no puede crearla.

apt install openjdk-17-jdk
apt install tomcat9
#bajamos el war de la app
wget https://sourceforge.net/projects/cmdbuild/files/ready2use-2.3/ready2use-2.3-3.4.1-d.war
#y lo copiamos con el nombre correcto a la carpeta de apps de tomcat
#Cuando se descomprima la app creará el directorio con el mismo nombre
cp ready2use-2.3-3.4.1-d.war /var/lib/tomcat9/webapps/cmdbuild.war

#Bajamos los jar para que cmdbuild conecte a postgresql y los copiamos donde corresponde
wget https://sourceforge.net/projects/cmdbuild/files/ready2use-2.3/ready2use-2.3-3.4.1-d-resources.tar.gz
#Descomprimimos
tar xvzf ready2use-2.3-3.4.1-d-resources.tar.gz 
#copiamos
cp tomcat-libs/* /var/lib/tomcat9/lib/
#Reiniciamos para que todo responda correctamente
systemctl restart tomcat9

La primera configuración, la de la base de datos hay que hacerla a mano. Luego con esa configuración se creará la base de datos y se cargarán los datos de, en mi caso ready2use.

mkdir -p /var/lib/tomcat9/conf/cmdbuild
chown -R tomcat:tomcat /var/lib/tomcat9/conf/cmdbuild/

#editamos el archivo database.conf
nano /var/lib/tomcat9/conf/cmdbuild/database.conf


#con los siguientes datos
db.url=jdbc:postgresql://localhost:5432/cmdbuild_db
db.username=cmdbuild_user
db.password=password
db.admin.username=cmdbuild_superuser
db.admin.password=password

#Asignamos permisos de ejecución
chmod +x /var/lib/tomcat10/webapps/cmdbuild/cmdbuild.sh
sh /var/lib/tomcat10/webapps/cmdbuild/cmdbuild.sh dbconfig create empty -configfile /var/lib/tomcat10/conf/cmdbuild/database.conf

El siguiente paso no lo encontré en ningún tutorial y es fundamental. En este paso le damos los permisos adecuados a tomcat9 para que pueda escribir en el directorio de configuración de cmdbuild. En este caso: /var/lib/tomcat9/conf/cmdbuild/

nano /etc/systemd/system/multi-user.target.wants/tomcat9.service
Agregar:
ReadWritePaths=/var/lib/tomcat9/conf/cmdbuild/
#refrescamos las funciones del demonio
systemctl daemon-reload
#Reiniciamos tomcat9
systemctl restart tomcat9
#Este paso no debería ser necesario pero lo es. Si llegaste hasta acá y no te funcionó nada seguí con este:
#reiniciamos debian.
/usr/sbin/reboot

Si todo salió bien ahora deberías poder acceder a cmdbuild desde la siguiente url: http://ip-de-tu-equipo:8080/cmdbuild

Y verías algo así:

CMDBUILD es una app que según la documentación es muy fácil de instalar pero en la práctica genera más problemas que soluciones. Si bien es opensource su funcionamiento es un tanto misterioso. Es típico de las apps que demostraron ser grandiosas como libres y luego pasan a tener un lado freemium que las complica y oscurece su funcionamiento. Aún así contempla todas las etapas de ITIL y simplifica la gestión de activos de ciberseguridad. Si llegaste hasta acá ojalá te haya servido el tutorial. Dejame tus comentarios.

Por Jeremías Palazzesi

Solucionador de Problemas Senior!. No podés con algo?, probá conmigo!

Un comentario en «Instalar CMDBUILD / Ready2Use / OpenMaint en Debian 11»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *