Actualizar desde versiones 1.0 a 1.1
Consideraciones
Esta guía lo lleva en el proceso de actualizar una instalación pre-existente de EEI. Tenga en cuenta que:
- la versión requerida de EEI en ejecución es la v1.0.9 (última al generar esta guía, no se probaron versiones previas)
- se actualiza toda la solución EEI que se despliega con Docker
Traefik
Con certificados propios
Debido a un cambio menor en la configuración del proxy reverso, aquellos deployments llevados adelante con certificados propios (esto es no utilizan Let's Encrypt), necesitan regenerar el stack traefik
para incorporar dicho cambio.
Si necesita re-generar los certificados, sigua esta guía. Luego ejecute lo siguiente:
docker stack rm traefik
docker stack deploy -c servicios/traefik.yml traefik
Atención: esto pondrá a todo el deploy de EEI fuera de servicio momentaneamente
Arai-Usuarios
Puesta en mantenimiento
Inicialmente, bajamos el stack usuarios
para evitar acceso y tenerlo en mantenimiento.
docker stack rm usuarios
Atención: esto pondrá a todo el servicio de SSO fuera de servicio
Realizar el backup de las bases de datos LDAP y PostgreSQL de manera preventiva.
Actualizar base PostgreSQL
cd prod/arai/util
Sin importar como se ejecuta la base PostgreSQL, es necesario realizar la exportación de datos de instancia local:
docker stack deploy --with-registry-auth --compose-file usuarios_exportar_instalacion.yml usuarios_export
docker service logs usuarios_export_idm -f
Esperar a que exporte y se detenga la ejecución. Si tuvo éxito la operación, eliminar el stack temporal usuarios_export
:
docker stack rm usuarios_export
Usando los datos de instancia local exportados previamente, realizar la migración de la base de datos PostgreSQL:
docker stack deploy --with-registry-auth --compose-file usuarios_actualizar_base.yml usuarios_actualizar_base
docker service logs usuarios_actualizar_base_idm -f
Finalmente, si la migración tuvo éxito, eliminar el stack temporal usuarios_actualizar_base
:
docker stack rm usuarios_actualizar_base
Actualizar base OpenLDAP
Se introducen en esta versión algunos cambios al schema de LDAP, por lo que es necesario actualizarlo previamente.
La forma de actualizar el esquema LDAP depende de si está utilizando una instalación OpenLDAP tradicional o por medio de Docker. Para mayores detalles ver acá.
Realizar el despliegue
En este punto, podremos ajustar las configuraciones mediante variables de entorno. Ver mas detalles acá.
cd prod/arai
Finalizada la configuración, hay que volver a desplegar el stack:
docker stack deploy --with-registry-auth --compose-file usuarios.yml usuarios
Si lo desea puede ejecutar una comprobación para verificar el correcto estado de los servicios.
Arai-Docs
Actualizar Base de Datos
- Realizar el backup de PostgreSQL de manera preventiva
pg_dump -b -O -x --clean --create --disable-triggers --if-exists -h ${DB_HOST} -p ${DB_PORT} -U ${DB_USERNAME} -d ${DB_DBNAME} -f dump_10x.sql
- Desplegar el servicio que actualiza la base de datos
docker stack deploy --with-registry-auth --compose-file util/docs_actualizar_base.yml docs_actualizar_base
Se puede observar el avance del proceso de migración en el log del servicio. Finalizada la migración, se puede eliminar dicho despliegue del servicio
docker service logs docs_actualizar_base_update -f
docker stack rm docs_actualizar_base
Nota: esto requiere acceso a la base de datos para modificar su estructura. Alternativamente, puede seguir esta guía para actualizar la base de datos.
Actualizar API y Worker
0. Bajar stack docs-api
docker stack rm docs
1. Recrear secret de conexion contra Sudocu
- Borrar secret de conexion contra Sudocu
docker secret rm docs_conexion_sudocu
- Volver a crear con los siguientes valores (user/password deberian estar modificados en una version anterior)
DOCS_CONEXION_SUDOCU=$(cat << EOF
"{base_uri:'http://api-server:8080/',method:'basic',user:'integracion',password:'integracion'}"
EOF
)
printf $DOCS_CONEXION_SUDOCU | docker secret create docs_conexion_sudocu -
2. Variable Organismo
En el archivo docs.env prod/arai/docs.env
se puede descomentar y agregar el organismo de la institucion:
- Variables de Organismo
ORGANISMO_TIPO=CUIL
ORGANISMO_IDENTIFICADOR=XXXXXXXX
ORGANISMO_TIPO
puede ser CUIT
o CUIL
ORGANISMO_IDENTIFICADOR
debe poseer el siguiente formato:
- 10 u 11 dígitos numéricos consecutivos ej: 20111111115
- Formato CUIT con
-
y/
ej1: 20-11111111-5 ej2: 20-11111111/5
3. Desplegar las nuevas versiones de la API y del Worker
cd prod/arai
docker stack deploy --with-registry-auth -c docs.yml docs
Huarpe
cd prod/arai
En este punto, podremos ajustar las configuraciones mediante variables de entorno. Finalizada la configuración, hay que
actualizar el despliegue del stack huarpe
:
docker stack deploy --with-registry-auth -c huarpe.yml huarpe
Sudocu
Antes de actualizar
Antes de actualizar es necesario realizar un backup de la base de datos.
pg_dump -h DB_HOST -U DB_USER -p DB_PORT sudocu > sudocu.$(date -I).sql
Borrar el stack actual:
docker stack rm sudocu
Nota: esto elimina tanto los servicios del stack como los configs (que levantan los archivos .json de configuración). Si necesita, puede actualizarlos en este punto.
Actualizar base PostgreSQL
Finalmente, ejecutamos el proceso de migración de la base de datos.
docker run --rm \
--env SUDOCU_DB_HOST=ip-host-db-sudocu \
--env SUDOCU_DB_NAME=sudocu \
--env SUDOCU_DB_PORT=5432 \
--env SUDOCU_DB_USER=postgres \
--env SUDOCU_DB_PASSWORD=postgres \
ungs/sudocu-db-instalador:1.1.9
Nota: Tener en cuenta que
SUDOCU_DB_HOST
debe apuntar al host donde corre el PostgreSQL que contiene dicha base. Si
Desplegar la nueva versión
Realizar nuevo deploy:
docker stack deploy --with-registry-auth --compose-file sudocu.yml sudocu