Automatización de infraestructura con Terraform y GitHub Actions
Clase 13 de 22 • Curso de Introducción a DevOps
Contenido del curso
- 5

GitHub Projects: gestión básica de tareas y estructura del código
06:39 - 6

Configuración de proyectos .NET con pruebas unitarias automatizadas
06:41 - 7

Blindaje de rama main y gestión de commits en GitHub
07:07 - 8

Configuración de GitHub Actions para validar pruebas en pull requests
08:35 - 9

Creación de imágenes Docker para APIs de ASP.NET Core
06:52 - 10

Configuración de CI/CD con Docker en GitHub Actions
05:58 - 11

Configuración de despliegue continuo con Docker y GitHub Actions
06:22
- 15

Configuración de OpenTelemetry en aplicaciones .NET Core
08:17 - 16

Variables de ambiente en GitHub Actions y Azure Container App
09:50 - 17

Creación de paneles personalizados con Azure Workbooks
09:50 - 18

Creación de método para obtener contactos con pruebas unitarias
04:02 - 19

Automatización de despliegues con GitHub Actions y pull requests
04:30 - 20

Alternativas de herramientas para procesos DevOps completos
04:06 - 21

Integración de DevOps y metodologías ágiles en equipos de software
03:32 - 22

DevOps como diferenciador entre desarrollo y ingeniería de software
02:55
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 plany finalmenteterraform 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:
- Crear y almacenar correctamente los secretos en GitHub.
- Configurar el directorio de trabajo adecuado (
working directory) dentro del YAML. - 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.