Automatización de infraestructura con Terraform y GitHub Actions

Clase 13 de 22Curso de Introducción a DevOps

Resumen

Optimizar el despliegue de infraestructura automáticamente utilizando Terraform y GitHub Actions es posible y práctico. Este proceso sigue el mismo flujo de trabajo que empleas para aplicaciones, mostrando claramente cómo el concepto de DevOps aplica por igual a infraestructura y software. El uso de GitHub Actions y Azure facilita crear un entorno automatizado para manejar recursos sin utilizar credenciales personales.

¿Qué necesitas para automatizar la infraestructura con Terraform en Azure?

Para comenzar, primero es necesario crear un service principal en Azure, que actúa como usuario automatizado en la administración y el despliegue de recursos. Este proceso implica ejecutar un comando específico en Azure CLI para obtener los siguientes datos esenciales:

  • Client ID: conocido también como app ID.
  • Client Secret: es el password del service principal.
  • Subscription ID: identificador de la suscripción Azure utilizada.
  • Tenant ID: identificador único del tenant en Azure.

Estos datos deben guardarse cuidadosamente, ya que serán indispensables más adelante durante la configuración del flujo de trabajo.

¿Cómo configurar GitHub Actions para automatizar Terraform?

La configuración en GitHub Actions implica añadir secretos a tu repositorio con la información obtenida del paso anterior y crear un archivo YAML con instrucciones específicas:

  • Dirígete a la pestaña Actions de tu repositorio y crea un nuevo flujo de trabajo.
  • Copia el YAML indicado en tu documentación.
  • Añade los secretos obtenidos del service principal desde la sección settings > secrets and variables.
  • Configura la sección de Terraform con comandos como terraform init, terraform validate, terraform plan y finalmente terraform apply.
  • Es esencial prestar atención a detalles como las comillas en las configuraciones de variables para evitar errores al momento del despliegue.

¿Cuáles son los pasos para ejecutar una GitHub Action correctamente?

Debes asegurar los siguientes puntos para un flujo exitoso:

  1. Crear y almacenar correctamente los secretos en GitHub.
  2. Configurar el directorio de trabajo adecuado (working directory) dentro del YAML.
  3. Ejecutar las acciones automáticamente mediante pull request revisado y aprobado.

Puede surgir la necesidad de corregir errores inmediatamente después del primer despliegue; estos suelen provenir de detalles menores como las configuraciones incorrectas de formato o variables.

¿En qué consiste la verificación correcta del despliegue?

La verificación implica confirmar que el recurso creado automáticamente es visible en tu cuenta Azure exactamente como cuando lo desplegaste manualmente. GitHub Actions ofrece indicadores claros sobre cada paso, notificando de manera visual si la operación termina correctamente o presenta fallos.

Comparte tus experiencias en automatización de infraestructura o cuéntanos tus dudas en la sección de comentarios.