¿Qué es WSL y por qué usarlo con Terraform?
WSL (Windows Subsystem for Linux) te permite ejecutar un entorno Linux directamente en Windows, sin la sobrecarga de una máquina virtual tradicional. Para Terraform, esto es ideal porque:
Terraform se desarrolló originalmente para entornos Unix/Linux
Muchos tutoriales y ejemplos asumen un entorno Linux
Tienes acceso a todas las herramientas de línea de comandos de Linux
Mejor compatibilidad con scripts y automatizaciones

Módulo 1: Instalación de WSL en Windows
Paso 1: Habilitar WSL en Windows
Método 1: Usando PowerShell (Recomendado)
# Ejecutar PowerShell como Administrador y ejecutar:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# Reiniciar el equipo después de ejecutar estos comandosMétodo 2: Usando la Interfaz Gráfica
Abrir "Activar o desactivar características de Windows"
Marcar "Subsistema de Windows para Linux"
Marcar "Plataforma de máquina virtual"
Reiniciar el equipo
Paso 2: Instalar una distribución de Linux
Desde Microsoft Store:
Abrir Microsoft Store
Buscar "Ubuntu" (o la distribución preferida)
Hacer clic en "Instalar"
Desde línea de comandos:
# Listar distribuciones disponibles
wsl
Subsistema de Windows para Linux no tiene distribuciones instaladas.
Para resolverlo, instale una distribución con las instrucciones siguientes:
Use 'wsl.exe --list --online' para enumerar las distribuciones disponibles
y "wsl.exe --install <Distro>" para instalar.
wsl.exe --list --online
A continuación se muestra una lista de distribuciones válidas que se pueden instalar.
Instalar con "wsl.exe --install <Distro>".
NAME FRIENDLY NAME
AlmaLinux-8 AlmaLinux OS 8
AlmaLinux-9 AlmaLinux OS 9
AlmaLinux-Kitten-10 AlmaLinux OS Kitten 10
AlmaLinux-10 AlmaLinux OS 10
Debian Debian GNU/Linux
FedoraLinux-42 Fedora Linux 42
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
SUSE-Linux-Enterprise-15-SP7 SUSE Linux Enterprise 15 SP7
Ubuntu Ubuntu
Ubuntu-24.04 Ubuntu 24.04 LTS
archlinux Arch Linux
kali-linux Kali Linux Rolling
openSUSE-Tumbleweed openSUSE Tumbleweed
openSUSE-Leap-15.6 openSUSE Leap 15.6
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_10 Oracle Linux 8.10
OracleLinux_9_5 Oracle Linux 9.5
wsl.exe --install ubuntu-24.04Paso 3: Configurar WSL 2 como predeterminado
# Establecer WSL 2 como versión predeterminada
wsl --set-default-version 2
# Verificar la versión de WSL
wsl --versionMódulo 2: Configuración inicial de WSL
Primer inicio y configuración de usuario
Al iniciar por primera vez, se te pedirá crear un usuario y contraseña
Este usuario tendrá privilegios sudo
Actualizar el sistema
# Actualizar lista de paquetes
sudo apt update
# Actualizar paquetes instalados
sudo apt upgrade
# Instalar herramientas básicas
sudo apt install curl wget git unzipConfigurar la integración entre Windows y WSL
Acceder a archivos de Windows desde WSL:
# Los discos de Windows se montan en /mnt/
cd /mnt/c/Users/TuUsuario # Acceder a tu carpeta de usuario de WindowsAcceder a archivos de WSL desde Windows:
# En el Explorador de Windows, escribe:
\\wsl$\Ubuntu\home\tu_usuarioMódulo 3: Instalar Terraform en WSL
Método 1: Instalación desde repositorio de HashiCorp
# Instalar dependencias
sudo apt install -y gnupg software-properties-common
# Añadir la clave GPG de HashiCorp
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
# Añadir el repositorio oficial
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
# Actualizar e instalar Terraform
sudo apt update
sudo apt install terraform
# Verificar la instalación
terraform versionMétodo 2: Instalación manual con ZIP
# Descargar la versión deseada
wget https://releases.hashicorp.com/terraform/1.5.0/terraform_1.5.0_linux_amd64.zip
# Descomprimir
unzip terraform_1.5.0_linux_amd64.zip
# Mover al directorio de binarios
sudo mv terraform /usr/local/bin/
# Verificar instalación
terraform versionMódulo 4: Configurar AWS CLI en WSL
Instalación de AWS CLI
# Descargar el instalador
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# Descomprimir
unzip awscliv2.zip
# Instalar
sudo ./aws/install
# Verificar instalación
aws --versionConfigurar credenciales de AWS
# Configurar credenciales (usa tus propias claves)
aws configure
# Alternativamente, puedes usar variables de entorno
echo 'export AWS_ACCESS_KEY_ID="TU_ACCESS_KEY"' >> ~/.bashrc
echo 'export AWS_SECRET_ACCESS_KEY="TU_SECRET_KEY"' >> ~/.bashrc
echo 'export AWS_DEFAULT_REGION="us-east-1"' >> ~/.bashrc
source ~/.bashrcMódulo 5: Configurar un entorno de desarrollo en WSL
Instalar Visual Studio Code con extensión WSL
Instalar VS Code en Windows
Instalar la extensión "Remote - WSL"
Abrir WSL y ejecutar:
code .VS Code se abrirá con la extensión WSL activa
Extensiones recomendadas para VS Code en WSL:
HashiCorp Terraform
Remote - WSL
GitLens
Docker
Configurar Git en WSL
# Configurar usuario de Git
git config --global user.name "Tu Nombre"
git config --global user.email "tu.email@ejemplo.com"
# Generar SSH key para GitHub/GitLab. Se utiliza para generar un par de claves SSH usando el algoritmo Ed25519.
ssh-keygen -t ed25519 -C "tu.email@ejemplo.com"
# Ver la clave pública para añadirla a tu cuenta
cat ~/.ssh/id_ed25519.pubMódulo 6: Primer proyecto de Terraform en WSL
Crear un proyecto de ejemplo
# Crear directorio del proyecto
mkdir ~/terraform-proyecto
cd ~/terraform-proyecto
# Inicializar el proyecto
terraform init
# Crear archivo de configuración principal
nano main.tfContenido de main.tf:
provider "aws" {
region = "us-east-1"
}
resource "aws_instance" "ejemplo" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
tags = {
Name = "EjemploDesdeWSL"
}
}
output "ip_publica" {
value = aws_instance.ejemplo.public_ip
}Ejecutar el proyecto
# Formatear el código
terraform fmt
# Validar la configuración
terraform validate
# Ver el plan de ejecución
terraform plan
# Aplicar los cambios
terraform apply
# Destruir los recursos
terraform destroyMódulo 7: Configuraciones avanzadas de WSL
Archivo de configuración de WSL
Crear o editar ~/.wslconfig en Windows:
[wsl2]
memory=4GB
processors=2
localhostForwarding=true
# Opciones adicionales:
# kernel=C:\\temp\\myCustomKernel
# swap=2GBMejorar el rendimiento
# Limpiar caché de paquetes
sudo apt clean
# Limpiar paquetes innecesarios
sudo apt autoremove
# Monitorear recursos
htopConfigurar Docker con WSL 2
# Instalar Docker
sudo apt install docker.io
# Iniciar servicio Docker
sudo service docker start
# Añadir usuario al grupo docker
sudo usermod -aG docker $USER
# Verificar instalación
docker --versionMódulo 8: Solución de problemas comunes
Problema: WSL no inicia
# Reiniciar el servicio LxssManager
Get-Service LxssManager | Restart-Service
# Reiniciar WSL
wsl --shutdownProblema: Error de memoria
# En el archivo .wslconfig, reducir la memoria asignada
memory=2GBProblema: Lentitud con archivos de Windows
# Trabajar en el sistema de archivos de Linux (~/)
# en lugar de en /mnt/c/ para mejor rendimientoProblema: Conflictos de versiones de Terraform
# Usar tfenv para gestionar múltiples versiones
tfenv list
tfenv use 1.4.0
Comentarios