{"id":1116,"date":"2023-08-22T14:58:06","date_gmt":"2023-08-22T17:58:06","guid":{"rendered":"https:\/\/www.nerdadas.com\/blog\/?p=1116"},"modified":"2023-08-22T15:00:16","modified_gmt":"2023-08-22T18:00:16","slug":"instalar-cmdbuild-ready2use-openmaint-en-debian-11","status":"publish","type":"post","link":"https:\/\/www.nerdadas.com\/blog\/instalar-cmdbuild-ready2use-openmaint-en-debian-11\/","title":{"rendered":"Instalar CMDBUILD \/ Ready2Use \/ OpenMaint en Debian 11"},"content":{"rendered":"\n<p>Supongo que si llegaste hasta ac\u00e1 te pas\u00f3 como a mi y decidiste profesionalizar tu departamento de TI siguiendo frameworks como<strong> ITIL<\/strong> o lineamientos de Ciberseguridad familiares a la<strong> ISO 27001.<\/strong><\/p>\n\n\n\n<p> O simplemente estas instalando la app para algui\u00e9n m\u00e1s o saber que onda.<\/p>\n\n\n\n<p>En cualquiera de las dos opciones creo que te puedo ayudar.<\/p>\n\n\n\n<p>La documentaci\u00f3n de CMDBUILD es bastante escueta con respecto a la instalaci\u00f3n. No explica todo y da por sentado muchas cosas. Durante el proceso he descubierto varias.<\/p>\n\n\n\n<p>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\u00edas poder migrar la base de datos y luego hacer un dump de la misma. Todo esto es una suposici\u00f3n. <\/p>\n\n\n\n<p>La documentaci\u00f3n de los conectores posterior a la versi\u00f3n 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 <a href=\"https:\/\/www.tecnoteca.com\/\">tecnoteca<\/a>, que es qui\u00e9nes desarrollan la app y hacen sus tutoriales. \u00abTutoriales\u00bb es decir demasiado, son ventas disfrazadas de tutoriales.<\/p>\n\n\n\n<p>Hasta ahora he integrado cmdbuild solo con <a href=\"https:\/\/www.alfresco.com\/\">Alfresco<\/a> para la carga de documentaci\u00f3n, lo cu\u00e1l dejar\u00e9 para m\u00e1s adelante.<\/p>\n\n\n\n<p>Toda la configuraci\u00f3n de la app se carga por defecto en la carpeta que creamos dentro de tomcat (&lt;tomcat&gt;conf\/cmdbuild). En los tutoriales que encontr\u00e9 (los cuales ninguno funcion\u00f3) 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\u00e9 las configuraciones en la base de datos y luego las pasa a archivos .conf. Si no puede escribir en ese directorio no funcionar\u00e1n.<\/p>\n\n\n\n<p>La versi\u00f3n que instalo en este tuto es <strong>ready2use<\/strong>, que viene ya lista para empezar tu plan de Gobernanza IT. Pero si quer\u00e9s instalar cualquiera de las otras solo debes reemplazar el war y las librer\u00edas de ready2use por cmdbuild u openmaint.<\/p>\n\n\n\n<p>Vamos a los pasos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#Despu\u00e9s de instalar Debian 11, actualizamos todo.\napt update &amp;&amp; apt upgrade\n<\/code><\/pre>\n\n\n\n<p>Instalamos Postgresql<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install postgresql-13 postgresql-13-postgis-3 postgresql-13-postgis-3-scripts<\/code><\/pre>\n\n\n\n<p>Luego editar el archivo pg_hba.conf de la siguiente manera:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/postgresql\/13\/main\/pg_hba.conf<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/Captura-desde-2023-08-18-16-28-41.png\"><img loading=\"lazy\" decoding=\"async\" width=\"705\" height=\"424\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/Captura-desde-2023-08-18-16-28-41.png\" alt=\"\" class=\"wp-image-1117\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/Captura-desde-2023-08-18-16-28-41.png 705w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/Captura-desde-2023-08-18-16-28-41-300x180.png 300w\" sizes=\"auto, (max-width: 705px) 100vw, 705px\" \/><\/a><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>\n\nlocal   all             postgres                                peer\n\n# TYPE  DATABASE        USER            ADDRESS                 METHOD\n\n# \"local\" is for Unix domain socket connections only\nlocal   all             all                                     trust\n# IPv4 local connections:\nhost    all             all             127.0.0.1\/32            md5\n# IPv6 local connections:\nhost    all             all             ::1\/128                 md5\n# Allow replication connections from localhost, by a user with the\n# replication privilege.\nlocal   replication     all                                     peer\nhost    replication     all             127.0.0.1\/32            md5\nhost    replication     all             ::1\/128                 md5\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#Reiniciamos postgresql para que se ejecuten los cambios.\nsystemctl restart postgresql<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#Creamos los usuarios que vamos a usar en la base de datos\nsu - postgres\npsql\nCREATE DATABASE cmdbuild_db;\nCREATE USER cmdbuild_user WITH encrypted password 'password';\nGRANT ALL PRIVILEGES ON DATABASE cmdbuild_db TO cmdbuild_user;\nDROP DATABASE cmdbuild_db;\nCREATE USER cmdbuild_superuser WITH encrypted password 'password';\nALTER USER cmdbuild_superuser WITH SUPERUSER;\n\\q\nexit<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/config-postgres.png\"><img loading=\"lazy\" decoding=\"async\" width=\"915\" height=\"363\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/config-postgres.png\" alt=\"\" class=\"wp-image-1123\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/config-postgres.png 915w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/config-postgres-300x119.png 300w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/config-postgres-768x305.png 768w\" sizes=\"auto, (max-width: 915px) 100vw, 915px\" \/><\/a><\/figure>\n\n\n\n<p>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.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install openjdk-17-jdk\napt install tomcat9<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#bajamos el war de la app\nwget https:\/\/sourceforge.net\/projects\/cmdbuild\/files\/ready2use-2.3\/ready2use-2.3-3.4.1-d.war\n#y lo copiamos con el nombre correcto a la carpeta de apps de tomcat\n#Cuando se descomprima la app crear\u00e1 el directorio con el mismo nombre\ncp ready2use-2.3-3.4.1-d.war \/var\/lib\/tomcat9\/webapps\/cmdbuild.war\n\n#Bajamos los jar para que cmdbuild conecte a postgresql y los copiamos donde corresponde\nwget https:\/\/sourceforge.net\/projects\/cmdbuild\/files\/ready2use-2.3\/ready2use-2.3-3.4.1-d-resources.tar.gz\n#Descomprimimos\ntar xvzf ready2use-2.3-3.4.1-d-resources.tar.gz \n#copiamos\ncp tomcat-libs\/* \/var\/lib\/tomcat9\/lib\/\n#Reiniciamos para que todo responda correctamente\nsystemctl restart tomcat9<\/code><\/pre>\n\n\n\n<p>La primera configuraci\u00f3n, la de la base de datos hay que hacerla a mano. Luego con esa configuraci\u00f3n se crear\u00e1 la base de datos y se cargar\u00e1n los datos de, en mi caso ready2use.<br \/><br \/>mkdir -p \/var\/lib\/tomcat9\/conf\/cmdbuild<br \/>chown -R tomcat:tomcat \/var\/lib\/tomcat9\/conf\/cmdbuild\/<\/p>\n\n\n\n<p>#editamos el archivo database.conf<br \/>nano \/var\/lib\/tomcat9\/conf\/cmdbuild\/database.conf<\/p>\n\n\n\n<p><br \/>#con los siguientes datos<br \/>db.url=jdbc:postgresql:\/\/localhost:5432\/cmdbuild_db<br \/>db.username=cmdbuild_user<br \/>db.password=password<br \/>db.admin.username=cmdbuild_superuser<br \/>db.admin.password=password<br \/><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#Asignamos permisos de ejecuci\u00f3n\nchmod +x \/var\/lib\/tomcat10\/webapps\/cmdbuild\/cmdbuild.sh\nsh \/var\/lib\/tomcat10\/webapps\/cmdbuild\/cmdbuild.sh dbconfig create empty -configfile \/var\/lib\/tomcat10\/conf\/cmdbuild\/database.conf<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/dump.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"342\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/dump-1024x342.png\" alt=\"\" class=\"wp-image-1124\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/dump-1024x342.png 1024w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/dump-300x100.png 300w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/dump-768x256.png 768w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/dump.png 1214w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>El siguiente paso no lo encontr\u00e9 en ning\u00fan tutorial y es fundamental. En este paso le damos los permisos adecuados a tomcat9 para que pueda escribir en el directorio de configuraci\u00f3n de cmdbuild. En este caso: \/var\/lib\/tomcat9\/conf\/cmdbuild\/<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/systemd\/system\/multi-user.target.wants\/tomcat9.service\nAgregar:\nReadWritePaths=\/var\/lib\/tomcat9\/conf\/cmdbuild\/\n#refrescamos las funciones del demonio\nsystemctl daemon-reload\n#Reiniciamos tomcat9\nsystemctl restart tomcat9\n#Este paso no deber\u00eda ser necesario pero lo es. Si llegaste hasta ac\u00e1 y no te funcion\u00f3 nada segu\u00ed con este:\n#reiniciamos debian.\n\/usr\/sbin\/reboot<\/code><\/pre>\n\n\n\n<p>Si todo sali\u00f3 bien ahora deber\u00edas poder acceder a cmdbuild desde la siguiente url: <a href=\"http:\/\/ipequipo:8080\/cmdbuild\">http:\/\/ip-de-tu-equipo:8080\/cmdbuild<\/a><\/p>\n\n\n\n<p>Y ver\u00edas algo as\u00ed:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/Captura-desde-2023-08-22-11-49-39.png\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"603\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/Captura-desde-2023-08-22-11-49-39.png\" alt=\"\" class=\"wp-image-1121\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/Captura-desde-2023-08-22-11-49-39.png 720w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2023\/08\/Captura-desde-2023-08-22-11-49-39-300x251.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/figure>\n\n\n\n<p>CMDBUILD es una app que seg\u00fan la documentaci\u00f3n es muy f\u00e1cil de instalar pero en la pr\u00e1ctica genera m\u00e1s problemas que soluciones. Si bien es opensource su funcionamiento es un tanto misterioso. Es t\u00edpico 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\u00fan as\u00ed contempla todas las etapas de ITIL y simplifica la gesti\u00f3n de activos de ciberseguridad. Si llegaste hasta ac\u00e1 ojal\u00e1 te haya servido el tutorial. Dejame tus comentarios.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Instalar CMDBUILD en Debian 11<\/p>\n","protected":false},"author":1,"featured_media":1126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[161,1,17,804],"tags":[1210,1211,1207,823,1213,1214,1216,220,1215,37,1209,1208,1017,1212],"class_list":["post-1116","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seguridad","category-sin-categoria","category-tecnologia","category-ti","tag-1210","tag-1211","tag-cmdbuild","tag-debian","tag-gobernanza","tag-instalacion","tag-iso27001","tag-it","tag-itil","tag-linux","tag-openmaint","tag-ready2use","tag-ti","tag-tomcat"],"_links":{"self":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts\/1116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/comments?post=1116"}],"version-history":[{"count":6,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts\/1116\/revisions"}],"predecessor-version":[{"id":1129,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts\/1116\/revisions\/1129"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/media\/1126"}],"wp:attachment":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/media?parent=1116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/categories?post=1116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/tags?post=1116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}