Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3...
Transcript of Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3...
![Page 1: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/1.jpg)
Departamento de
Lenguajes y Sistemas Informáticos
escuela técnica superiorde ingeniería informática
Evolución y gestión de la configuración
4º Grado en Ingeniería Informática -Ingeniería del Software
Instalación de Decide
![Page 2: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/2.jpg)
Índice
● Entorno de desarrollo vs despliegue
● Introducción a decide
● Entorno de despliegue con Docker
● Entorno de desarrollo
Python, virtual enviroment,
● Un pequeño cambio
● Usando el cambio en el entorno de despliegue (versión 1)
![Page 3: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/3.jpg)
DESARROLLO DESPLIEGUE
![Page 4: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/4.jpg)
La herramienta
DECIDE →https://github.com/wadobo/decide/
Nuestra copia de trabajo → https://github.com/EGCETSII/decide
![Page 5: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/5.jpg)
Módulos
●Authentication: Sistema de autenticación para saber quien puedevotar.
●Base: Código común o base
●Booth: Cabina de votación.
●Census: Censo de personas a votar.
●Decide: Aplicacion de votación (main).
●Mixnet: Módulo de criptografía.
●Postproc: Post-procesado de la votación.
●Store: Almacen de votos.
●Test-scripts: Pruebas.
●Visualizer: Visualizador de votos.
●Voting: Votación.
git clone https://github.com/EGCETSII/decide.git
![Page 6: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/6.jpg)
Entorno de despliegue
![Page 7: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/7.jpg)
Database
WebServer
Files
Compose es una herramienta para definir y ejecutar aplicaciones Docker multicontenedores. Con Componer, se utiliza un archivo YAML para configurar los servicios de la aplicación.
Docker compose
![Page 8: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/8.jpg)
decide_db
decide_nginx
decide_web
Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro con un servidor web nginx para servir los ficheros estáticos y hacer de proxy al servidor django.
Docker compose en decide
![Page 9: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/9.jpg)
$ cd docker
$ docker-compose up –d
$ docker exec -ti decide_web ./manage.py createsuperuser
Ejecuta entorno despliegue docker
![Page 10: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/10.jpg)
https://github.com/wadobo/decide/wiki/Como-funciona-Decide
Probar que todo funciona
![Page 11: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/11.jpg)
Entorno de desarrollo
![Page 12: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/12.jpg)
Selecciona tu IDE
• http://www.pydev.org/
• https://code.visualstudio.com/
![Page 13: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/13.jpg)
ToolsetPara configurar el proyecto, podremos crearnos un fichero local_settings.py basado en el local_settings.example.py, donde podremos configurar la ruta de nuestras apps o escoger que módulos ejecutar.
Una vez hecho esto, será necesario instalar las dependencias del proyecto, las cuales están en el fichero requirements.txt:
pip install -r requirements.txt
Tras esto tendremos que crearnos nuestra base de datos con postgres:
sudo su - postgres
psql -c "create user decide with password 'decide'"
psql -c "create database decide owner decide"
Entramos en la carpeta del proyecto (cd decide) y realizamos la primera migración para preparar la base de datos que utilizaremos:
./manage.py migrate
./manage.py createsuperuser
Por último, ya podremos ejecutar el módulos o módulos seleccionados en la configuración de la siguiente manera:
./manage.py runserver
![Page 14: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/14.jpg)
Localsettings.pyALLOWED_HOSTS = ["*"]# Modules in use, commented modules that you won't use
MODULES = [ 'authentication', 'base', 'booth', 'census', 'mixnet', 'postproc', 'store', 'visualizer', 'voting’,]
APIS = {
'authentication': 'http://localhost:8000',
'base': 'http://localhost:8000',
'booth': 'http://localhost:8000',
'census': 'http://localhost:8000',
'mixnet': 'http://localhost:8000',
'postproc': 'http://localhost:8000',
'store': 'http://localhost:8000',
'visualizer': 'http://localhost:8000',
'voting': 'http://localhost:8000’,
}
BASEURL = 'http://localhost:8000'DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'decide',
'PASSWORD': 'decide',
'HOST': '127.0.0.1', 'PORT': '5432', }}# number of bits for the key, all auths should use the same number of bitsKEYBITS = 256
Mirar las URL en localhost
Password de postgres
![Page 15: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/15.jpg)
Probando que todo funciona
![Page 16: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/16.jpg)
Haciendo un cambio
![Page 17: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/17.jpg)
Viendo el cambio
![Page 18: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/18.jpg)
Probando el cambio en el entorno de despliegue
Dockerfile
WORKDIR /app
RUN git clone https://github.com/wadobo/decide.git .
RUN pip install -r requirements.txt
WORKDIR /app/decide
# local settings.py
ADD docker-settings.py /app/decide/local_settings.py
MODIFICAR PARA USAR EL DIRECTORIO LOCAL con
ADD
![Page 19: Instalación de Decide - 1984.lsi.us.es · Existe una configuración de docker compose que lanza 3 contenedores, uno para el servidor de base de datos, otro para el django y otro](https://reader030.fdocuments.ec/reader030/viewer/2022040411/5ed3bb19ba125d781d5da20d/html5/thumbnails/19.jpg)
Departamento de
Lenguajes y Sistemas Informáticos
escuela técnica superiorde ingeniería informática
Evolución y gestión de la configuración
4º Grado en Ingeniería Informática -Ingeniería del Software
Instalación de Decide