Integración de Ansible y Azure (parte 3)
Azure
Este post pertenece a una serie de publicaciones relacionadas:
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}'
Y así termina esta serie de posts relacionados con Ansible y la relación con Azure. Seguramente escriba más posts sobre Ansible porque realmente es una excelente herramienta que todos los admins o roles relacionados con DevOps deben conocer.
Happy scripting!