24 abril, 2025

Tu primer Hola Mundo con Terraform (explicado fácil)

Terraform es una herramienta que te permite crear y administrar infraestructura como si fuera código.
En lugar de crear servidores o redes manualmente en la nube, simplemente escribes un archivo, y Terraform se encarga de hacerlo realidad.

¿Qué es Terraform?

Terraform es una herramienta de Infraestructura como Código (IaC).
Eso significa que puedes describir tu infraestructura en archivos de texto, y luego ejecutarlos para que se creen automáticamente en servicios como:

Instalar Terraform

En Debian/Ubuntu:

sudo apt update
sudo apt install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update
sudo apt install terraform

Verifica que se haya instalado correctamente:

terraform -v

Crear tu primer proyecto

Crea una carpeta para tu proyecto Terraform:

mkdir terraform-hola
cd terraform-hola

Crea un archivo llamado main.tf:

nano main.tf
terraform {
  required_providers {
    random = {
      source = "hashicorp/random"
    }
  }
}

provider "random" {}

resource "random_pet" "mi_mascota" {
  length    = 2
  separator = "-"
}

output "nombre_mascota" {
  value = random_pet.mi_mascota.id
}

Guarda con: ctrl + s, ctrl + x

¿Qué hace esto?

Este archivo:

  • Le dice a Terraform que use el proveedor random (para generar texto aleatorio).
  • Crea un “recurso” llamado random_pet, que generará un nombre aleatorio como fluffy-bear.
  • Muestra el resultado como salida (output).

No necesitas conectarte a ningún proveedor en la nube para esto: todo es local, perfecto para aprender.

Inicializar Terraform

Terraform necesita preparar el entorno:

terraform init

Ejecutar Terraform

Ver lo que va a hacer:

terraform plan

Verás un resumen como: “Plan: 1 to add, 0 to change, 0 to destroy.”

Aplicar el plan (crear el recurso):

terraform apply

Cuando te pregunte “Do you want to perform these actions?:, escribe: yes

Verás algo como:

Apply complete! Resources: 1 added.
nombre_mascota = "lucky-otter"

Borrar los recursos

Aunque en este ejemplo no se crea nada físico, siempre es buena práctica eliminar los recursos al terminar:

terraform destroy

Para el siguiente tutorial, lo vamos a integrar con ESXi