Skip to content

Latest commit

 

History

History
265 lines (142 loc) · 6.97 KB

ConfiguracionAzure.md

File metadata and controls

265 lines (142 loc) · 6.97 KB

Despliegue en Azure

Herramientas necesarias

Instalar vagrant

Me daba un error al hacer:

vagrant box add azure https://github.com/azure/vagrant-azure/raw/v2.0/dummy.box --provider azure

Por lo que lo instalé así:

wget -c https://releases.hashicorp.com/vagrant/2.0.3/vagrant_2.0.3_x86_64.deb
sudo dpkg -i vagrant_2.0.3_x86_64.deb

como vi aquí: dotless-de/vagrant-vbguest#292

Instalar ansible

Añadir en /etc/apt/sources.list

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main

Ejecutar:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt-get update
$ sudo apt-get install ansible

Documentacion Ansible

Instalar Fabric y su biblioteca

sudo apt-get install fabric
pip install fabric

Como a mí me daba problemas al ejecutar el fabfile lo instalé así:

pip install fabric==1.13.1

Encontrada solución aquí

Instalar el CLI de Azure

Prerrequisitos:

  sudo apt-get install apt-transport-https lsb-release software-properties-common dirmngr -y

Modificar lista de las fuentes:

AZ_REPO=$(lsb_release -cs)
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" | \
    sudo tee /etc/apt/sources.list.d/azure-cli.list

Obtener la key de Microsoft:

  sudo apt-key --keyring /etc/apt/trusted.gpg.d/Microsoft.gpg adv \
       --keyserver packages.microsoft.com \
       --recv-keys BC528686B50D79E339D3721CEB3E94ADBE1229CF

Instalar el CLI:

  sudo apt-get update
  sudo apt-get install azure-cli

Fuente Original

Provisionamiento con Ansible

Para indicarle a nuestro sistema la configuración que necesitamos usamos Ansible. Para hacerlo, crearemos un archivo playbook.yml que es el que se encargará de realizar la tarea.

img

Enlace donde explica hosts, become y remote_user. Documentación

Me salio un Warning diciendo que usará el module apt en vez de hacer apt-get Por lo que lo cambié siguiendo esta documentación

También cambié el comando de clonar github por el modulo git aquí

Por último, también cambié la manera de instalar los requirements. Haciéndolo con el modulo pip, siguiendo la documentación, pero me daba error y lo dejé con command.

Crear máquina virtual en Azure con Vagrant

Instalamos plugin de azure para vagrant:

vagrant plugin install vagrant-azure

Instalamos una base para nuestra máquina del proveedor de azure:

vagrant box add azure https://github.com/azure/vagrant-azure/raw/v2.0/dummy.box --provider azure

Entramos en nuestra cuenta de Azure ejecutando en nuestra consola:

  az login

img

Generamos AAD (Azure Active Directory) que pueda acceder a nuestros recursos en Azure:

az ad sp create-for-rbac

img

Creamos un Vagrantfile

El vagrantfile lo he copiado de 2 lugares:
PARTE 1: vagrant-azure
PARTE 2: vagrant-ansible

img

Para entender que hace cada línea lo he consultado en los siguientes enlaces:

Comentar que he quitado el override, de esta línea porque además de no utilizarlo, al final de la documentación recomienda hacerlo sin override siempre que sea posible. De esta forma si se utilizasen más proveedores todos tendrían la misma configuración.

Exportamos variables de Azure

img

Levantamos nuestra máquina:

vagrant up --provider=azure

img

Podemos comprobar que se ha creado bien con:

vagrant ssh

img

Desde el portal de Azure podemos ver los recursos que se han creado:

img

Datos de la máquina virtual:

img

Como podemos observar, podemos ver el nombre del dominio y la ip.

Despliegue de la aplicación con Fabric

Con Fabric podremos realizar acciones como lanzar y parar la máquina de una forma mucho más rápida. Documentación

img

Ahora podremos lanzar la aplicación con:

fab -f despliegue/fabfile.py -H vagrant@"ip_maquina" "Start"

img

Ya podemos mirar la aplicación desde el navegador:

img

img

Paramos el proceso:

fab -f despliegue/fabfile.py -H vagrant@"ip_maquina" "Stop"

img

El terminal que estaba ejecutando el Start finaliza tras el Stop:

img

Borramos el proyecto:
img

Instalar el proyecto:
img

Actualizar el proyecto:
img