0Pricing
DevOps Bootcamp · Lección

IaC con Terraform y GitHub Actions

Comprenda cómo integrar Terraform en sus workflows de GitHub Actions para aprovisionar y gestionar la infraestructura.

IaC con Terraform y GitHub Actions es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.

Infraestructura como código (IaC)

¡Le damos la bienvenida! En esta lección, profundizaremos en la infraestructura como código (IaC). Este enfoque consiste en gestionar y aprovisionar su infraestructura, como servidores, bases de datos y redes, mediante código en lugar de procesos manuales.

Considérelo como escribir software para su infraestructura. Esto aporta muchas ventajas, como coherencia, repetibilidad y control de versiones para toda su configuración.

Conozca Terraform para IaC

Una de las herramientas más populares para IaC es Terraform, una herramienta de código abierto desarrollada por HashiCorp.

Terraform le permite definir sus recursos de infraestructura en archivos de configuración legibles para las personas. A continuación, utiliza estos archivos para aprovisionar y gestionar recursos en distintos proveedores de nube, como AWS, Azure y GCP, y otros servicios.

Sintaxis HCL de Terraform

Terraform utiliza su propio lenguaje declarativo, denominado HashiCorp Configuration Language (HCL). HCL está diseñado para que las personas puedan leerlo y escribirlo fácilmente, lo que permite crear definiciones claras de su infraestructura.

A continuación se muestra un pequeño ejemplo de HCL que define una VPC de AWS (Virtual Private Cloud):

resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "my-vpc"
  }
}

Flujo de trabajo principal de Terraform

Terraform sigue un flujo de trabajo coherente de tres pasos para gestionar su infraestructura:

  • terraform init: Inicializa el directorio de trabajo y descarga los complementos de proveedor necesarios.
  • terraform plan: Genera un plan de ejecución que muestra los cambios que Terraform realizará en su infraestructura.
  • terraform apply: Ejecuta los cambios indicados en el plan y aprovisiona o modifica sus recursos.

Automatización con GitHub Actions

Integrar Terraform con GitHub Actions potencia considerablemente su estrategia de IaC. Le permite automatizar pasos fundamentales de su canalización de implementación de infraestructura.

Con GitHub Actions, puede:

  • Ejecutar automáticamente terraform plan en cada pull request.
  • Garantizar que los cambios de infraestructura se revisen y aprueben.
  • Automatizar terraform apply para realizar implementaciones controladas.

Archivo de flujo de trabajo de Terraform

Un flujo de trabajo de GitHub Actions para Terraform se define en un archivo YAML dentro del directorio .github/workflows/ de su repositorio. Este archivo especifica cuándo se ejecuta el flujo de trabajo y qué pasos realiza.

A continuación se muestra la estructura básica de un flujo de trabajo que podría planificar cambios:

name: 'Terraform CI'
on: 
  pull_request:
    branches:
      - main
jobs:
  terraform:
    name: 'Terraform'
    runs-on: ubuntu-latest
    steps:
      # Your workflow steps will go here

Configuración de Terraform y paso init

Antes de ejecutar cualquier comando de Terraform, el flujo de trabajo debe obtener su código, configurar la CLI de Terraform e inicializar el directorio de trabajo.

La acción hashicorp/setup-terraform facilita este proceso:

- name: Checkout Code
  uses: actions/checkout@v4

- name: Setup Terraform
  uses: hashicorp/setup-terraform@v2
  with:
    terraform_version: 1.5.x

- name: Terraform Init
  run: terraform init

Paso de terraform plan

El comando terraform plan es un paso fundamental en cualquier flujo de trabajo de IaC. Realiza una ejecución de prueba para determinar qué acciones son necesarias a fin de alcanzar el estado deseado definido en sus archivos de configuración.

Este paso le permite revisar los cambios propuestos antes de que se modifique realmente nada en su entorno de nube.

- name: Terraform Plan
  run: terraform plan
  env:
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

Comprobación rápida: Terraform plan

Comprender los comandos principales es fundamental para utilizar Terraform de forma eficaz en sus flujos de trabajo automatizados.

Consideraciones sobre terraform apply

El comando terraform apply es donde ocurre la magia: realiza cambios reales en su infraestructura.

En las canalizaciones automatizadas, es habitual ejecutar terraform apply solo después de que una persona haya revisado el resultado de plan, o únicamente al fusionar cambios en ramas específicas, como main o production. Esto evita cambios accidentales o no aprobados en la infraestructura.

Repaso de IaC con Terraform y Actions

En esta lección, hemos explorado cómo la infraestructura como código (IaC) ayuda a gestionar la infraestructura mediante código. Nos hemos centrado en Terraform como herramienta principal para IaC y hemos aprendido sobre su sintaxis HCL y el flujo de trabajo esencial de init, plan, apply.

También ha visto cómo GitHub Actions puede automatizar los pasos terraform init y terraform plan, haciendo que sus implementaciones de infraestructura sean más seguras, coherentes y estén totalmente integradas en sus canalizaciones de CI/CD.

Preguntas frecuentes

¿La lección «IaC con Terraform y GitHub Actions» es gratis?

Sí — el texto completo de «IaC con Terraform y GitHub Actions» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué aprenderé en «IaC con Terraform y GitHub Actions»?

Comprenda cómo integrar Terraform en sus workflows de GitHub Actions para aprovisionar y gestionar la infraestructura. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar DevOps Bootcamp?

No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «IaC con Terraform y GitHub Actions»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?

Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. IaC con Terraform y GitHub Actions
  2. Gestión de recursos en la nube
  3. Automatización de actualizaciones de infraestructura
  4. Gestión del estado de Terraform y backends remotos
← Volver a DevOps Bootcamp