Integración de Ansible y Azure (parte 3)

Este post pertenece a una serie de publicaciones relacionadas:

  • Integración de Ansible y Azure - Introducción
  • Integración de Ansible y Azure - Hello world!
  • Integración de Ansible y Azure - Desplegar una VM
  • Con lo expuesto en las entradas anteriores sobre Ansible vamos a desplegar una VM en Azure de una forma sencilla utilizando la CLI de Azure y un playbook con unas pocas líneas de código, sin tener que instalar ningún tipo de software adicional.

    Lo primero obviamente es ingresar a https://shell.azure.com y validar nuestro usuario con las credenciales correspondientes.

    Ya habiendo iniciado sesión, el primer paso es generar un Resource Group.

    Resource Group

    Desde la consola Azure Cloud Shell ejecutar el siguiente comando:

    az group create --name Ansible --location eastus

    A modo de comprobar que se ejecutó correctamente el comando anterior, es posible determinar si el recurso fue creado o no, ejecutando:

        az group list --o table

    Networking

    Luego de contar con el Resource Group, lo siguiente es crear la red a la que se va a conectar la VM:

        az network vnet create --resource-group Ansible --name vNET --address-prefix 10.0.0.0/16 --subnet-name Subnet --subnet-prefix 10.0.1.0/24

    En caso de querer observar si los recursos de networking han sido creados satisfactoriamente, se encuentra a disposición la siguiente línea de código:

        
        az resource list --resource-group Ansible --o table

    Obtener nuestra clave pública

    Para conectarnos de forma más segura, en lugar de definir una contraseña, vamos a utilizar una clave pública (para ello previamente se deben de haber realizado los pasos definidos en la siguiente entrada https://blog.victorsilva.com.uy/integracion-ansible-azure/):

        cat ~/.ssh/id_rsa.pub

    Crear el Playbook

    Luego de cumplir con los requisitos para el despliegue, resta generar el archivo .yml donde se definirán los recursos a implementar en Azure:

        vi azure_create_vm.yml

    Dentro del archivo que acabamos de generar, debemos insertar la siguiente información:

        
        - name: Create Azure VM
        hosts: localhost
        connection: local
        tasks:
        - name: Create VM
            azure_rm_virtualmachine:
            resource_group: Ansible
            name: CentOS
            vm_size: Standard_DS1_v2
            admin_username: vmsilvamolina
            ssh_password_enabled: false
            ssh_public_keys: 
                - path: /home/vmsilvamolina/.ssh/authorized_keys
                key_data: "ssh-rsa AAAAB3Nza{spin}q4711"
            image:
                offer: CentOS
                publisher: OpenLogic
                sku: '7.5'
                version: latest

    Ejecutar el Playbook

    Resta únicamente ejecutar el Playbook para aprovisionar nuestra VM en Azure desde la consola Azure Cloud Shell:

        
        ansible-playbook azure_create_vm.yml

    En caso de querer identificar la IP pública de la VM recién implementada, una opción es ejecutar lo siguiente:

        azure vm show Ansible CentOS | grep "Public IP address" | awk -F ":" '{print $3}'

    Comments