Desplegar Araí
Desde la raíz del repositorio primeramente procederemos a adaptar los archivos de configuración de Araí a las necesidades de su instalación y luego desplegar los distintos stacks.
Configuración General
Cambiar dominio
En los archivos de configuración se asume el dominio uunn.local
, para cambiarlo por el dominio definitivo puede utilizar el siguiente comando (reemplace universidad.edu.ar
por el dominio real que utilizará durante el despliegue)
sed -i 's/uunn.local/universidad.edu.ar/g' \
prod/arai/usuarios.api.env \
prod/arai/usuarios.idp.env \
prod/arai/usuarios.env \
prod/arai/usuarios.yml \
prod/arai/personas.api.env \
prod/arai/personas.env \
prod/arai/personas.yml \
prod/arai/docs.yml \
prod/arai/docs.env \
prod/arai/notificaciones.yml \
prod/arai/notificaciones.env \
prod/arai/solicitudes.yml \
prod/arai/solicitudes.env \
prod/arai/huarpe.env \
prod/arai/huarpe.yml
Huarpe es un caso especial pues existe una expresión regular con la URL que deberemos ajustar:
sed -i 's/uunn\\.local/universidad\\.edu\\.ar/g' prod/arai/huarpe.env
Secretos en Docker
Los secretos son blobs de información que deben almacenarse de forma segura y no pueden ser versionados. Ejemplos de esto son: passwords, claves de SSH, certificados SSL, etc. Más información aquí.
Los servicios que conforman esta documentación requieren que ciertos secretos estén definidos antes de comenzar el despliegue.
Esta es la lista de secretos requeridos por Araí durante el despliegue:
usuarios_db_pass
: Password de la conexión con la base de datos.usuarios_ldap_admin_pass
: Password de bind de admin de ldap.usuarios_ldap_config_pass
: Password de bind del config de ldap.usuarios_pass_salt
: Salt de los passwords generados por Araí-Usuarios.usuarios_api_users
: Json que define pares de usuario/password para la autenticación de la API de usuarios.usuarios_idp_simplesaml_admin
: Password del panel de control de Administrador provisto con SimpleSAMLPhp.personas_db_pass
: Password de la conexión con la base de datos de personas.personas_api_users
: Json que define pares de usuario/password para la autenticación de la API de Personas.docs_api_pass
: Password de la API de Documentos.docs_db_pass
: Password de la conexión con Postgres.docs_repo_pass
: Password de la conexión con Nuxeo.docs_conexion_usuarios
: Credenciales y endpoint de la conexión con Usuarios.docs_conexion_sudocu
: Credenciales y endpoint de la conexión con SUDOCU.huarpe_secret
: Token de 31 caracteres.huarpe_conexion_usuarios
: Credenciales de la conexión por API con Usuarios.huarpe_conexion_docs
: Credenciales de la conexión por API con Documentos.notificaciones_db_pass
: Password de la conexión con la base de datos de notificaciones.notificaciones_api_users
: Json que define pares de usuario/password para la autenticación de la API de Notificaciones.notificaciones_dsn_seguro
: String de conexión a un provider de envió de mailssolicitudes_db_pass
: Password de la conexión con la base de datos de solicitudes.solicitudes_api_pass
: Password de la API de Solicitudessolicitudes_conexion_usuarios
: Password de la conexión con Usuarios.solicitudes_conexion_mapuche
: Password de la conexión con Mapuche.
Creación de secretos
La distribucion provee el script de bash prod/arai/secrets.sh.dist
para ejemplificar como inicializar todos los valores requeridos. Si desea mantener un archivo propio con las claves de su ambiente ejecute:
cp prod/arai/secrets.sh.dist prod/arai/secrets.sh
y modifique el script prod/arai/secrets.sh
con los datos correspondientes a su entorno. Luego ejecutelo para cargar los secretos dentro de Docker.
./prod/arai/secrets.sh
En el caso que se mantenga un repositorio de configuraciones propio, se recomienda ignorar este archivo y evitar subirlo. Tambien es posible no escribir las claves en archivos y configurar los secretos a mano tomando el script
prod/arai/secrets.sh.dist
como referencia.
Configurar y desplegar Araí-Personas
La especificación del stack de este módulo se encuentra en prod/arai/personas.yml
. Existen tambien otros archivos de configuración asociados: prod/arai/personas.api.env
y prod/arai/personas.env
Crear la Base de Datos
Crear la base de datos como recurso externo, recordar que la configuración para la misma se debe incluir en el secreto previo y también en archivo prod/arai/personas.env
DB_HOST=db-personas
DB_PORT=5432
DB_DBNAME=arai_personas
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_SCHEMA=personas
DB_ENCODING=UTF8
Deberá crear la base de datos con los datos definidos previamente. Si requiere mayor información, en el sitio de documentación de Araí-Personas hay mayor detalle de los parámetros involucrados y la base de Postgres.
Inicializar la Base de Datos
Nota: Asume que la base de datos especificada en la sección anterior ya está creada.
Este paso se lleva a cabo mediante el despliegue de la tarea
docker stack deploy \
--with-registry-auth \
-c prod/arai/util/personas_migrar_base.yml \
personas_db
Puede verificar el estado de ejecución del mismo de la siguiente manera:
docker service logs personas_db_migrar -f
Una vez finalizado con éxito, puede borrar el stack:
docker stack rm personas_db