Problemas con la instalación

Hola, soy Nicolás de la UNMDP.
Estoy teniendo problemas con la instalación del Sudocu. Las pruebas se están haciendo sobre un Ubuntu server 18.04 y el problema que me salta es a la hora de hacer el Deploy del Araí tira error de conexión con la base de datos, pero si reviso las bases están levantadas con la configuración rápida propuesta en la documentación.

Adjunto scripts y archivos utilizados en la instalación por si necesitan saber los parámetros utilizados, dentro de la carpeta comprimida hay un archivo InstalacionSudocu.txt que detalla los parámetros utilizados.

Desde ya muhcas gracias.

Saludos


instalacion.zip (119 KB)

Hola Nicolas,

Lo que tenes que pasarnos es información sobre el error, como para guiarte a donde mirar.

En el caso de arai-usuarios, tenes la base OpenLDAP y la base PostgreSQL.

  • ¿Ambas no conectan?
  • PostgreSQL/OpenLDAP tienen log, si los activas, se visualiza el intento de conexión de un cliente. Para descartar a cual no llegas, o un motivo…

Sergio, muchas gracias por tu respuesta. Te paso captura del error donde muestra que no se puede conectar a la base Postgres de Araí - Usuarios. La misma si quiero acceder desde el pgAdmin puedo hacerlos perfectamente desde dentro y fuera de la VM usando los parámetros de conección que mestra la pantalla de error.

La base de datos de usuarios de araí está creada usando el scrip del demo con Docker que está en la documentación de Araí Usuarios (instalación rápida)

Te paso los datos del Secret. ( la contraseña del usuario postgres es 12346 al igual que la de LDAP

#!/bin/bash
DIR=“$( cd “$( dirname “${BASH_SOURCE[0]}” )” >/dev/null && pwd )”

################################################################################

Usuarios

################################################################################
printf “123456” | docker secret create usuarios_db_pass -
printf “123456” | docker secret create usuarios_ldap_admin_pass -
printf “123456” | docker secret create usuarios_ldap_config_pass -
printf $(cat /dev/urandom | tr -dc ‘a-zA-Z0-9’ | fold -w 20 | head -n 1) | docker secret create usuarios_pass_salt -
printf “123456” | docker secret create usuarios_idp_simplesaml_admin -

printf ‘[[“documentos”,“documentos123”],[“huarpe”,“huarpe123”]]’ | docker secret create usuarios_api_users -

#docker volume create usuarios_assets_vol

Documentos

Password de API basic

printf “docs123” | docker secret create docs_api_pass -
printf “123456” | docker secret create docs_db_pass -
printf “Administrator” | docker secret create docs_repo_pass -

Conexión con Araí Usuarios

DOCS_CONEXION_USUARIOS=$(cat << EOF
“{base_uri:‘usuarios-api/api/v1/usuarios’,method:‘basic’,user:‘documentos’,password:‘documentos123’}”
EOF
)
printf $DOCS_CONEXION_USUARIOS | docker secret create docs_conexion_usuarios -

Conexión con Sudocu

DOCS_CONEXION_SUDOCU=$(cat << EOF
“{base_uri:‘http://api-server:8080/integracion/',method:‘basic’,user:‘integracion’,password:'integracion’}”
EOF
)
printf $DOCS_CONEXION_SUDOCU | docker secret create docs_conexion_sudocu -

Huarpe

printf $(cat /dev/urandom | tr -dc ‘a-zA-Z0-9’ | fold -w 31 | head -n 1) | docker secret create huarpe_secret -

Tiene que coincidir con el valor del pass del usuario huarpe

del secreto usuarios_api_users

printf ‘huarpe123’ | docker secret create huarpe_usuarios_pass -


Captura de pantalla de 2020-08-31 10-28-34.png

Captura de pantalla de 2020-08-31 10-28-34.png

Hola Nicolás,

La base de datos de usuarios de araí está creada usando el scrip del demo con Docker que está en la documentación de Araí Usuarios (instalación rápida)

Esto es, levantas un docker de PostgreSQL. Perfecto. Lo conectaste a la red donde están corriendo los otros docker, en particular el de migración? La idea es que, para que un contenedor Docker se conecte o llegue a otro, tiene que pasar dos cosas: que establezcas una red entre ambos y el tráfico fluya con las IP/nombres internas, o que abras los puertos del docker y permitas conexiones externas, etc.

El script del demo con Docker que está en la doc de arai-usuarios, arma un docker-compose y y una serie de servicios que estan conectados por la misma red. Tienen que estudiar/evaluar como quieren levantar uds el servicio de PostgreSQL (que es externo a la solución de despliegue de expedientes digital).

El postgres no lo tengo con docker, solo usé los script de la imagen que te nombré para crear la estructura en una instalación de postgres fuera de docker
Pero entiendo por tu respuesta que el problema es configurar una red entre el contenedor y el postgres. Voy a mirarlo y aviso que resultados tuve.
Muchas gracias
Abrazo

Nicolas,

Te comentaba lo de las redes de Docker porque asumía que así lo levantaste, es cierto no lo mencionaste (ni lo aclaraste) antes.

No hay mucho que pueda hacer mas que recomendarte que revises si en el log del postgres hay intentos no permitidos de acceso a la db, etc. Normalmente, o por defecto, desde un contenedor Docker pueden acceder a servicios externos, si estos los permiten claro.

Hola continuo con los inconvenientes, paso a detallarte el problema

estoy trabajando en local con uunn.local

Error
boot_idm.1.owbru5hpq8v6@nico-pc | 1) Inicialización de proyecto
boot_idm.1.owbru5hpq8v6@nico-pc | =============================
boot_idm.1.owbru5hpq8v6@nico-pc |
boot_idm.1.owbru5hpq8v6@nico-pc |
boot_idm.1.owbru5hpq8v6@nico-pc | [NOTA] Se creo la aplicación con id: idm-core
boot_idm.1.owbru5hpq8v6@nico-pc |
boot_idm.1.owbru5hpq8v6@nico-pc |
boot_idm.1.owbru5hpq8v6@nico-pc | In Ldap.php line 33:
boot_idm.1.owbru5hpq8v6@nico-pc |
boot_idm.1.owbru5hpq8v6@nico-pc | LDAP CONNECTION ERROR: ERROR conectandose al LDAP [0] - No se pudo conectar
boot_idm.1.owbru5hpq8v6@nico-pc | al servidor LDAP
boot_idm.1.owbru5hpq8v6@nico-pc |
boot_idm.1.owbru5hpq8v6@nico-pc |
boot_idm.1.owbru5hpq8v6@nico-pc | proyecto:bootstrap [–no-progress] [–password PASSWORD]
boot_idm.1.owbru5hpq8v6@nico-pc |

Comprobaciones LDAP

sudo ldapsearch -LLLQY EXTERNAL -H ldapi:/// -b cn=schema,cn=config “(objectClass=olcSchemaConfig)” dn

dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: cn={4}arai-usuarios,cn=schema,cn=config
dn: cn={5}edu-org,cn=schema,cn=config
dn: cn={6}edu-person,cn=schema,cn=config

sudo ldapsearch -LLLQY EXTERNAL -H ldapi:/// -b cn=schema,cn=config “(objectClass=olcSchemaConfig)” | grep memberOf

olcAttributeTypes: ( 1.2.840.113556.1.2.102 NAME ‘memberOf’ DESC 'Group that t

sudo ldapsearch -x -W -D “cn=admin,dc=uunn,dc=local” -b “dc=uunn,dc=local”

extended LDIF

LDAPv3

base <dc=uunn,dc=local> with scope subtree

filter: (objectclass=*)

requesting: ALL

uunn.local

dn: dc=uunn,dc=local
objectClass: top
objectClass: dcObject
objectClass: organization
o: UNMDP
dc: uunn

admin, uunn.local

dn: cn=admin,dc=uunn,dc=local
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9ZU1vTExpdFNDQ1AzdldOT3lHSUhUb3BFWmh0R3FLbWg=

usuarios, uunn.local

dn: ou=usuarios,dc=uunn,dc=local
objectClass: top
objectClass: organizationalUnit
ou: usuarios

usuariosCuentas, uunn.local

dn: ou=usuariosCuentas,dc=uunn,dc=local
objectClass: top
objectClass: organizationalUnit
ou: usuariosCuentas

groups, uunn.local

dn: ou=groups,dc=uunn,dc=local
objectClass: top
objectClass: organizationalUnit
ou: groups

devs, groups, uunn.local

dn: cn=devs,ou=groups,dc=uunn,dc=local
objectClass: groupOfNames
cn: devs
member: cn=admin,dc=uunn,dc=local

search result

search: 2
result: 0 Success

numResponses: 7

numEntries: 6

usuarios.env

CONFIG LDAP

LDAP_HOST=ldap
LDAP_PORT=389
LDAP_TLS=0
LDAP_METHOD=user
LDAP_BINDUSER=cn=admin,dc=uunn,dc=local
LDAP_BINDPASS=admin
LDAP_BINDPASS_FILE=/run/secrets/usuarios_ldap_admin_pass
LDAP_SEARCHBASE=dc=uunn,dc=local
LDAP_USERS_OU=usuarios
LDAP_USERS_ATTR=ou
LDAP_ACCOUNTS_OU=usuariosCuentas
LDAP_ACCOUNTS_ATTR=ou
LDAP_GROUPS_OU=groups
LDAP_GROUPS_ATTR=ou
LDAP_NODES=

Nota: en LDAP_HOST probé poniendo https://uunn.local y también con localhost pero nada siempre igual

salida del comando: docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c094dbb7cb11 grafana/grafana:master “/run.sh” 2 minutes ago Up 2 minutes 3000/tcp loki_grafana.1.necs5081q8oqbwk5pxhrge9x6
ae2828b74aa7 grafana/loki:1.5.0 “/usr/bin/loki -conf…” 2 minutes ago Up 2 minutes 3100/tcp loki_loki.1.nbv8ez05v5avpdf9ffn0fl45z
192e3d9ee747 traefik:2.2 “/entrypoint.sh --ap…” 2 minutes ago Up 2 minutes 80/tcp traefik_reverse-proxy.wbhbu6mi9ec6esoyoeo4frbr5.31wcr2yvfgvy9hw59d9q5f7g3

Perdón por lo extenso del post, pero quiero darte la mayor info posible.

Desde ya muchas gracias por la ayuda.

Abrazo

Hola Nicolas,

Esto es, arai-usuarios o en este caso el contenedor que inicias para ejecutar el proceso de inicialización, NO llega a la dirección de LDAP que le configuraste.

Este chequeo se ve bien, a priori, estan todas las entidades.

La clave es LDAP_HOST !! Ahí es necesario introducir la dirección donde está ejecutandose el servicio LDAP. Hay varias opciones:

  1. puede ser la IP o DNS que resuleva a una IP. Es el caso de instalaciones manuales de LDAP
  2. si el servicio basado en OpenLDAP lo levantan dentro del cluster swarm con un contenedor docker, o si lo levantan como otro contenedor docker pero por fuera del cluster swarm y lo conectan a la misma network docker, podrían llegar por el nombre del servicio (en el ejemplo en el repo de expedientes, el servicio dev que es sólo para simples pruebas está en “ldap”).

No me queda claro donde instalaron el servicio LDAP. Pero recuerden que desde adentro de un contenedor docker deberán de poder llegar a dicho servicio.

Uds están desplegando con docker swarm la solución de expedientes digitales, acá estás mostrando los contenedores que están corriendo en el nodo máster únicamente. Les recomiendo buscar alguna guía para entender a mayor nivel como funciona Docker Swarm. Estas soluciones de expedientes digitales (sudocu, usuarios, etc) depende de que entiendan mucho de este funcionamiento.

Saludos!