Aplicación que pretende ser un paso intermedio para futuras aplicaciones de consulta rápida a la estructura ya montado de NextCloud
Lo que se pretende en este proecto es poder desplegar de manera automática toda la infraestructura necesaria para poder hacer funcionar este middleware y así de esta forma hacer posible la conexión de otras aplicaciones a owncloud de manera mas fácil y trasparente
Los objetivos principales de este proyecto es que se pueda, deplegar lo mas rapidamente una insfraestructura desentralizada on todos los componentes necesarios para que tengamos un asistente personal en nuestro móvil
Para realizar el despliegue de la aplicación simplemente se ha unido la cuenta de Heroku con la cuenta de Github para que se realicen los despliegues automáticos.
Esto simplemente hay que habilitarlo desde el panel de control del usuario de Heroku, en las settings de la propia aplicación que se ha creado para el despliegue
Despliegue https://middleware-nextcloud.herokuapp.com/
Para poder realizar el despliegue de la aplicación se realiza en el proveedor Zeit.com
Contenedor https://middlewarenextcloud-onimeosalb.now.sh
El fichero dockerfile https://hub.docker.com/r/elsudano/middleware_nextcloud/ se sube al repositorio publico de Docker Hub para que sea accesible en cualquier momento.
Antes de poder realizar cualquier despliegue con Vagrant hace falta que tengamos en nuestro repositorio de boxes la maquina base con la cual vamos a empezar a trabajar, para ello tenemos que ejecutar el siguiente comando: vagrant box add <PATH, URL>
.
En este comando podemos especificar una ruta completa de nuestro ordenador para que Vagrant importe dicha imagen o bien podemos usar una ya creada, de las muchas que se encuentran en nuestro proveedor de azure.
Para poder realizar el despliegue de la aplicación es necesario instalar los providers necesarios, para ello utilizaremos el comando: vagrant plugin install <provider>
en nuestro caso tenemos que usar como prividers, azure y vmware_workstation
Después de realizar esto nos aseguraremos que tenemos todas las variables de entorno correctas para poder desplegar en Azure.
Para conseguir todas estas o casi todos estos valores de las variables tenemos que crear nuestro Active Directory en Azure para eso ejecutamos az ad sp create-for-rbac -o json
, y eso nos dará algunas respuestas.
Después de esto tenemos que listar nuestra subscripción para eso ejecutaremos el comando az account list --query "[?isDefault].id" -o json
el cual nos dará el ID de la subscripción.
Ahora ya podemos generar nuestro fichero de configuración de Vagrant o bien con el comando vagrant init
o bien generandolo a mano tal y como se ha realizado en el fichero Vagrant
Una vez que le despliegue de la maquina virtual se lleva a cabo se utiliza ansible para poder configurar la aplicación que queremos ejecutar en dicha maquina, osea tendriamos que configurar las diferentes variables de entorno, programas y dependencias de nuestra aplicación, por ejemplo si necesitamos que nuestra aplicación funcione en un apache se tiene que configurar desde aquí, para ello usamos el fichero Ansible para describir nuestro entorno de despliegue.
Y por ultimo utilizaremos Fabric para controlar la aplicación final tal y como se muestra en el fichero Fabfile
Para comprobar todos los comandos que podemos usar con Fabric ejecutamos: fab --list
en el mismo directorio donde se encuentra el fichero fabfile
Para desplegar la aplicación utilizamos el comando: fab -f despliegue/fabfile.py deploy
Para eliminar la aplicación utilizamos el comando: fab -f despliegue/fabfile.py undeploy
Para poder comprobar que la aplicación funciona correctamente se accederá a la siguiente dirección:
Despliegue final: middleware.westeurope.cloudapp.azure.com
Se usará el sistema de integración continua TRAVIS.CI para poder testear de manera fácil y con los menos errores posibles el MiddleWare que se encargara de realizar conexiones con un servidor de Owncloud.
Los tests serán tests unitarios en un primer momento, mas adelante se intentara que sean tests de covertura.