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.
Contents
¿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:
- AWS
- Google Cloud
- Azure
- DigitalOcean
- Proxmox
- Y muchos más…
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 comofluffy-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