Skip to content
Luighi edited this page Feb 28, 2021 · 4 revisions

Wiki para repositorio Devops de OpenPolítica

En este repositorio se alojan varios scripts que tiene por finalidad automatizar tareas para el despliegue de otros repositorios de OpenPolítica.

Los scripts con los que se cuenta se pueden clasificar de la siguiente manera:

Scripts para despliegue completo

deploy-all.sh

Este script se encarga del despliegue completo de los servicios en el servidor, lo cual comprende, la instalación de los software requeridos para el despliegue de las aplicaciones, el despliegue del servidor proxy reverso, del backend, la base de datos y la actualización de la base de datos.

Requiere: Establecimiento de variables de entorno HOST_DOMAIN y EMAIL_DOMAIN.

Ejemplo de uso:

HOST_DOMAIN=mysubdomain.domain.com [email protected] ./deploy-all.sh

Scripts para automatizar instalación

Estos scripts tienen la función de automatizar la instalación del software necesario para desplegar los servicios.

install-docker.sh

Actualiza el sistema y realiza la instalación de docker y docker-compose. Ambos programas son necesarios para lanzar los contenedores.

Requiere: Nada

install-java.sh

Instala la versión de java requerida para realizar la actualización de la base de datos. De no tener este script no se podría ejecutar update-database.sh

Requiere: Nada

install-mysql-client.sh

Instala el cliente de mysql para conectarse con la base de datos alojada en el un contenedor. También instala el conjunto de herramientas expect para conectarse a la base de datos mediante el script.

Requiere: Nada

Scripts para configuración de proxy reverso

En este caso se encarga de la configuración y el despliegue del proxy para que puedan conectarse a las aplicaciones desde afuera

prepare-nginx.sh ROOT_DIRECTORY SERVICES_DIRECTORY_NAME

Emplea un repositorio abierto https://github.com/kassambara/nginx-multiple-https-websites-on-one-server.git para el despliegue de servicios web alojados en otros contenedores a través de nginx.

Requiere: docker y docker-compose instalados a través de install-docker.sh.

Variables:

  • ROOT_DIRECTORY: carpeta base donde se despliega la aplicación. Por defecto es: $HOME
  • SERVICES_DIRECTORY_NAME: donde se alojarán los archivos del proxy-reverso. Por defecto es: services

Ejemplo de uso:

./prepare-nginx.sh /home/ubuntu services

Scripts para despliegue de backend y actualización de base de datos

Estos scripts realizan las tareas necesarias para colocar en funcionamiento al backend, actualizando la información en la base de datos de su contenedor.

deploy-backend.sh SERVICES_DIRECTORY

Despliega los servicios del backend en contenedores, tanto la aplicación desde el repositorio https://github.com/openpolitica/open-politica-backend.git , así como la base de datos mysql donde se alojan los datos.

Requiere:

  • docker y docker-compose instalados a través de install-docker.sh
  • Proxy reverso nginx y la red externa nginx-proxy creada por prepare-nginx.sh.
  • Variables de entorno HOST_DOMAIN y EMAIL_DOMAIN en el archivo .env en la carpeta backend, establecidas de forma global o en el shell. Considerar, que las variables establecidas de forma global o en el shell tienen mayor precedencia que las establecidas en .env.

Variables:

  • SERVICES_DIRECTORY: carpeta base donde se clonará el repositorio del backend y, posteriormente, se desplegarán los contenedores.

Ejemplo de uso:

./deploy-backend.sh /home/ubuntu/services

update-database.sh SERVICES_DIRECTORY

Actualiza la base de datos empleando el script alojado dentro del repositorio de backend: $SERVICES_DIRECTORY/open-politica-backend/src/dbtool/reset_mysql.sh.

Requiere:

  • java para la conversión del tipo de base datos, instalado a través de l script install-java.sh.
  • mysql-client para comunicarse con la base de datos, instalado a través del script install-mysql-client.
  • expect para la configuración de acceso a la base de datos a través de bash, instalado también mediante el script install-mysql-client.

Variables:

  • SERVICES_DIRECTORY: carpeta base donde se encuentra la carpeta del repositorio clonado de backend.

Ejemplo de uso:

./update-database.sh /home/ubuntu/services