problema con instalacion de...

Hola

Estoy tratando de instalar la solución de expedientes electrónicos y no me funciona cuando dicen que tengo que poder acceder a expedientes.unca.edu.ar/usuarios.

Sinceramente no entiendo el lio de redes que muestra la aplicacion de la imagen adjunta y creo que me faltó/falló la configuración de algo.

Podrían darme una idea para avanzar?

Gracias

Emilio


redes_docker_swarm.JPG

redes_docker_swarm.JPG_thumb.png

Hola Emilio,

las que interesan para la solucion de expedientes son

  • traefik-public
  • red-siu

Estas recibiendo algun error?, algo mas que me puedas agregar?.. por otro lado, que version de expedientes estas trabajando?

Lo importante seria saber si estas llegando al contenedor de Traefik y que pasa luego, ponelo en modo DEBUG asi podes ver mejor que es lo que esta haciendo.

Si no estas llegando al contenedor ese, entonces el despiole viene mas por el lado de la infraestructura.

Saludos

Hola Richard

Alguna de esas dos redes debería tener las ip de las máquinas virtuales que la esta soportando?

En estos momentos, al navegar a expediente.unca.edu.ar/usuarios, me dice que no puede hacer una conexion segura. Calculo problemas de certificados

ya veo el resto, e intento nuevamente

Yo estoy siguiendo, https://expedientes.siu.edu.ar/docs/instalacion/ calculo que bajará la última.

Emilio

P.S.
Te agrego una imagen. Al contenedor traefik,llego


traefik_usuarios.JPG

traefik_usuarios.JPG_thumb.png

Hola Emilio,

no necesariamente, son redes virtuales … recorda que el punto de entrada es Traefik que mapea el puerto 80/443 de dicha VM hacia el contenedor del mismo.

De ahi para adentro tenes la red traefik-public via la cual se conectan aquellos servicios que son accesibles de forma publica, pero desde fuera esa red no tiene porque estar en el rango de la VM.

Ademas tenes red-siu que involucra aquellos contenedores que no son publicos (x ej: db, ldap, memcached, nuxeo, jasper, etc) pero que son accesibles por otros contenedores, esta red desde fuera tampoco tiene porque estar en el rango de la VM. Suponiendo que los tenes en contendores.

En estos momentos, al navegar a expediente.unca.edu.ar/usuarios, me dice que no puede hacer una conexion segura. Calculo problemas de certificados

Bien, fijate este link, tene en cuenta que si usas certificados propios (para produccion) tienen que ser validos, no sirven autofirmados y sino tenes la chance de usar Let’s Encrypt para los mismos.

Si es para testing podes ir con autofirmados pero los navegadores te van a tirar la bronca y segun cual quizas no te deje acceder directamente.

Yo estoy siguiendo, https://expedientes.siu.edu.ar/docs/instalacion/ calculo que bajará la última.
Perfecto, al dia de hoy v1.0.8 es la ultima version disponible... cada vez que sacamos version se actualiza la documentacion, asi que si ves que cambia el nro es porque hay algo nuevo.
Te agrego una imagen. Al contenedor traefik,llego
Igual cuando vi que te dio error por el certificado asumi que estabas llegando, ya que Traefik es quien los presenta.

Saludos

Hola Richard

recorda que el punto de entrada es Traefik que mapea el puerto 80/443 de dicha VM hacia el contenedor del mismo.

O sea que no me estoy pudiendo conectar a traefik via https, La conexión a los servidores de arai la hace traefik como quiere? o tambien es https?

Si es para testing podes ir con autofirmados pero los navegadores te van a tirar la bronca y segun cual quizas no te deje acceder directamente.

Este no es un error de certificado inválido. Me parece que el error pasa por otro lado.

Seguiré buscando
Emilio

Hola

El problema está en que, traefik, no encuentra los certificados autofirmados.

Alguna ayuda para configurarlo?

Gracias

Emilio

Hola Emilio,

no se como tengas los puertos mapeados internamente, igual la config por defecto que tiene expedientes te redirige hacia el protocolo seguro.

El problema está en que, traefik, no encuentra los certificados autofirmados.
Por defecto ya trae un par de autofirmados (para prueba) el repo, lo que quizas este faltando es que los cargues en docker como [i]secret[/i] y [i]config[/i] respectivamente. El paso para cargarlos seria [url=https://expedientes.siu.edu.ar/docs/redes/#certificados-existentes]este[/url]

Fijate que aca se direccionan los certificados en cuestion como secrets y/o configs.

Saludos

PD: Los autofirmados que estan en el repo estan mas vencidos que el jarabe que tomaba de chico, asi que mejor create un par key/cert nuevo via openssl y pisa esos archivos de ahi, el resto si es valido.

Hola

no se como tengas los puertos mapeados internamente

Por ahora no toco ninguna configuración extra a lo que dice la documentación.

El problema arranca Configurar redes y Traefik · Solución de Expediente Electrónico Integrado

En eso está faltando el archivo tls.toml que contiene la cadena mencionada.

Ademas en dichos archivos está

uunn.local.cert

mientras que los archivos son

uunn.local.crt

Este certificado “uunn.local” es el que pasa a traefik. Creo que el certificado de traefik.uunn.local no pasa al contenedor

Si el certificado uunn.local fuese del tipo *.uunn.local podria funcionar, pero creo que no lo es.

Corregidos estos problemas, me sale el error de la imágen al acceder a uunn.local/usuarios en conexion segura.

Algo para ver, que se te ocurra?

Seguiremos avanzando

Gracias

Emilio


algo_usuarios.JPG

algo_usuarios.JPG_thumb.png

Hola Emilio,

tenes razon, por lo que veo esta faltando agregar eso a la documentacion ya que sino quedan fuera de sincronia los nombres.
Gracias por el aviso, ahi meto un fix para la doc de la proxima version.

Ademas en dichos archivos está
uunn.local.cert

mientras que los archivos son

uunn.local.crt

Esto no seria problema, uunn.local.crt es como lo tenes vos en disco… mientras uunn.local.cert es como lo espera internamente el contenedor, el mapeo se hace via config/secret al especificar el target.

Este certificado "uunn.local" es el que pasa a traefik. Creo que el certificado de traefik.uunn.local no pasa al contenedor
Es correcto cuando deployas con certificados propios, [b]traefik.uunn.local[/b] se necesita solo si haces el deploy con Let's Encrypt.. y el certificado no lo incluis vos de antemano.
Corregidos estos problemas, me sale el error de la imágen al acceder a uunn.local/usuarios en conexion segura. Algo para ver, que se te ocurra?

Bien, una vez hecho el paso anterior… completaste la inicializacion de Arai?

Saludos

Hola Richard

Si. La habia hecho.

Ahora voy a hacer todo de nuevo, teniendo cuidado en los mapeos.

Si yo quiero que el directorio “\expedientes\recursos” sea el que utilice para almacenar las fotos y lo que sea, como tengo que definirlo?

Intenté varias formas y me sigue diciendo que usuarios_usuarios_assets en el directorio de docker.

Emilio

Hola Emiliio,

bien, si te vuelve a suceder lo mismo…te voy a pedir que nos pases el log del contenedor del IDP.
Lo podes obtener con:


docker service logs [Opciones]  serviceId

Si yo quiero que el directorio "\expedientes\recursos" sea el que utilice para almacenar las fotos y lo que sea, como tengo que definirlo? Intenté varias formas y me sigue diciendo que usuarios_usuarios_assets en el directorio de docker.

Fijate que al final del archivo usuarios.yml tenes una seccion que dice


volumes:
  usuarios_assets:

Ahi mismo tenes comentado un ejemplo sobre como definir dicho volumen para un filesystem con NFS.
Si lo queres hacer con un dir local para probar, lo que tendrias que hacer estimo seria algo asi


volumes:
  usuarios_assets:
    driver: local
    driver-opts: 
      device: /path/to/dir

El tema con hacerlo a un dir local es que tiene sus inconvenientes (ponele que para una prueba zafan):

  • No tenes escalabilidad fuera de dicha maquina
  • Segun que SO uses podes no tener opciones para el driver, lo que te dificulta el asunto.

Probemos con la config pelada (que igual te crea un volumen) y despues vemos si lo podemos mapear a un dir puntual.

Saludos

Hola

Te debo la respuesta a lo anterior. Encontre otro problema que nunca se menciona. Tiempo

Cambiando de tema

docker service logs docs_docs-worker >logs_docs_docs-worker.txt
docs_docs-worker.1.hayawnmf6c52@expte3    | [2021-03-31 15:24:58] MAIN.INFO: Corriendo Worker . . . [] []
docs_docs-worker.1.hayawnmf6c52@expte3    |
docs_docs-worker.1.ozkdj1a1tis4@worker2    | [2021-03-31 11:49:19] MAIN.INFO: Corriendo Worker . . . [] []
docs_docs-worker.1.ozkdj1a1tis4@worker2    |
docs_docs-worker.1.ozkdj1a1tis4@worker2    | [2021-03-31 12:04:35] MAIN.ERROR: DriverException: An exception occurred while executing 'SELECT id FROM public.queue WHERE (queue IN (?, ?)) AND (delayed_until IS NULL OR delayed_until <= ?) AND (delivery_id IS NULL) ORDER BY priority asc, published_at asc LIMIT 1' with params ["__rest_hooks__QUEUE", "__rest_hooks__RETRY_QUEUE", 1617203075]:
docs_docs-worker.1.ozkdj1a1tis4@worker2    |
docs_docs-worker.1.ozkdj1a1tis4@worker2    | SQLSTATE[57P01]: Admin shutdown: 7 FATAL:  terminando la conexión debido a una orden del administrador
docs_docs-worker.1.ozkdj1a1tis4@worker2    | SSL connection has been closed unexpectedly [] []
docs_docs-worker.1.ozkdj1a1tis4@worker2    |
docs_docs-worker.1.ozkdj1a1tis4@worker2    | [2021-03-31 12:04:35] MAIN.INFO: Se reintentará correr el worker [] []
docs_docs-worker.1.ozkdj1a1tis4@worker2    |
docs_docs-worker.1.ozkdj1a1tis4@worker2    | [2021-03-31 12:04:40] MAIN.INFO: Corriendo Worker . . . [] []
docs_docs-worker.1.ozkdj1a1tis4@worker2    |

que puede estar faltando?

Emilio

Hola

Hay alguna forma que las referencias

image: hub.siu.edu.ar...

que están en los archivos .yml, puedan hacerse “locales”? un archivo o un git ?

O algo que no demore mucho tiempo en funcionar…

Emilio

Hola

Con mejor conexion avanzo un poco mas

ahora tengo esto al querer loguearme a huarpe

huarpe_webapp.1.qh7nwxhr9vcr@worker2    | [Wed Apr 07 08:38:48.320300 2021] [php7:notice] [pid 31] [client 10.0.2.6:34482] [2021-04-07 08:38:48] app.ERROR: cURL error 6: Could not resolve host: usuarios-api (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) [] [], referer: https://uunn.local/idp/saml2/idp/SSOService.php?SAMLRequest=fVPLbtswELz7Kwzdbb2CRCZsAa6dtAZcW7DUHHIpVtQ6JiCRKrlq3L8v9UjjFIl5kbScmZ0hV3MDVVmzZUMnecBfDRoaje06V6U0rNtcOI2WTIERhkmo0DDiLF1%2B37Jg6rFaK1Jclc5%2FtOssMAY1CSV72ma9cPa7%2B%2B3%2B62b3M88xjIqowCAPb9HLvcDnt9EsCH2OXgT5zPNhNoOwpz6iNlZn4VhZZ9SrGdPgRhoCSbZu%2BRPvZuLdZb7Pwojd3D311LUNKyRQRz8R1Ya5btNIOS0Vh9IVRe22UYLuLU33KerfguO0PtW9QjKE%2FyJkIeTz9cx5DzLsW5Ylk2SfZr3I8vUsVkqapkI9tPlx2H5oq7XkAjdO3NHn7TfrMuv4M3iFBAUQzN1L9Bu%2FZjvrd7NOVCn4n67ergelK6DPY%2FlTv6uIYnLsoKyRpkYujgIL55%2FMsizVy0ojEC4c0g06Y%2Fdd82HysOjm0J4D4ZnGK1XVoIVprwfPwGlI%2FJb6Er4q7VAd8BhfnTvOeIuz5cQ%2BXpQu2jtEbntnGqx5pWk4pA%2FFe9fuFdvx6HX78qeK%2FwI%3D&RelayState=https%3A%2F%2Fuunn.local%2Fsaml%2Flogin

Hay dos definiciones donde esta

"{base_uri:'usuarios-api/api/v1/usuarios'

Como debería escribirse?

Emilio

Hola Emilio,

en teoria lo unico que tiene que hacer docker cuando vos realizas el deploy es ir y chequear si hay alguna version nueva de la imagen (osea otro SHA) no mas que eso.
En mi maquina localmente suele tardar tambien, no se si sea por la conexion, porque realiza chequeos extra por sobre un run comun o por que alguna de las configuraciones de CPU en los yml influya en como se comporta.

Podrias usar algo asi quizas… que seria una especie de proxy cache, el tema es que quizas no sea la conexion el problema sino el proceso en si o la maquina.
Yo cuando hago un stack deploy tengo unos 20 o 30 sgs hasta que el contenedor esta corriendo correctamente.

Tenes descomentada esta seccion en la configuracion de traefik?

Saludos

Hola

Yo cuando hago un stack deploy tengo unos 20 o 30 sgs hasta que el contenedor esta corriendo correctamente.

segundos???
Ojalá
Hay veces que me sale un mensaje “No puedo iniciar sesion en memcached” o parecido.
Obviamente no bajó completo ese servicio, por mencionar uno que no es del siu.

Esto no es tecnologia para el tercer mundo.

Tenes descomentada esta seccion en la configuracion de traefik?

No. Ya voy a pasar todo en limpio y hacerlo con buena conexion y veo.

Gracias por tu paciencia.

Emilio

Esto apunta al servicio “usuarios-api” que se creó en el stack “usuarios” servicio “api”. Es como una especie de dns directo autogenerado por Docker, y entre contenedores es posible referenciarse así. Podes conectarte a uno y desde adentro hacer ping a otro por ese nombre, debería funcionar (estando en la misma red, etc).