Automatización del despliegue de infraestructura con GitHub Actions

Clase 13 de 22Curso de Introducción a DevOps

Resumen

Implementar integración continua y despliegue continuo (CI-CD) con Terraform usando GitHub Actions facilita el manejo eficiente y seguro de infraestructura como código. Trabajar infraestructura con la misma metodología que utilizas para desarrollar aplicaciones promueve coherencia, automatización y seguridad en tus procesos, mejorando significativamente tu flujo de trabajo DevOps.

¿Por qué utilizar GitHub Actions para infraestructura como código?

La metodología DevOps no cambia al pasar de aplicaciones a infraestructura. GitHub Actions permite automatizar procesos y desplegar infraestructura con la misma confiabilidad que el código de las aplicaciones. Cada cambio pasa por revisores de código mediante pull requests, garantizando calidad y consistencia.

¿Cómo crear una acción para desplegar infraestructura en Azure?

Para crear una acción que automatice tu infraestructura en Azure usando Terraform en GitHub Actions, sigue estos pasos básicos:

¿Cómo obtener credenciales seguras para Azure?

Primero, crea un service principal en Azure con el comando correspondiente (sp create for rbAC). Esto generará cuatro datos indispensables:

  • Client ID (App ID)
  • Client Secret (password)
  • Subscription ID
  • Tenant ID

Guarda cuidadosamente estos campos para utilizarlos repetidamente en diferentes automatizaciones.

¿Cómo establecer secretos en GitHub para asegurar credenciales?

Tras obtener estas credenciales, añádelas a GitHub como secretos, facilitando que Actions acceda a Azure sin exponer directamente tus credenciales administrativas:

  1. Ve a Settings > Secrets and Variables.
  2. Agrega las credenciales obtenidas previamente (Client ID, Secret, Subscription, Tenant).
  3. Añade también el sas token para el backend de Terraform, sin incluir comillas adicionales.

Estos secretos permitirán que Terraform ejecute despliegues sin complicaciones, autenticándose automáticamente.

¿Qué definiciones clave tienen las acciones de Terraform?

Luego, copia el YAML de configuración necesario para la acción. Este YAML incluirá pasos claros:

  • terraform init: Inicia tu entorno.
  • terraform validate: Valida que el código esté correcto.
  • terraform plan: Presenta cambios previstos.
  • terraform apply: Realiza efectivamente los cambios en Azure.

Corrige cualquier error menor, como cierre de comillas faltantes, dentro de GitHub Actions sin necesidad de recrear tareas adicionales.

¿Cómo verificar y ejecutar tu configuración correctamente?

Al concluir configuraciones y confirmar que el YAML es correcto, realiza una prueba completa del flujo:

  • Revisa y acepta un pull request.
  • Ejecuta el GitHub Action resultante.
  • Observa el proceso en tiempo real en GitHub Actions.

Al concluir exitosamente, verifica directamente en Azure que esté creada correctamente toda la infraestructura propuesta.