¿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 comandos
Mé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.04
Paso 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 --version
Mó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 unzip
Configurar 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 Windows
Acceder a archivos de WSL desde Windows:
# En el Explorador de Windows, escribe: \\wsl$\Ubuntu\home\tu_usuario
Mó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 version
Mé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 version
Mó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 --version
Configurar 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 ~/.bashrc
Mó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.pub
Mó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.tf
Contenido 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 destroy
Mó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=2GB
Mejorar el rendimiento
# Limpiar caché de paquetes sudo apt clean # Limpiar paquetes innecesarios sudo apt autoremove # Monitorear recursos htop
Configurar 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 --version
Módulo 8: Solución de problemas comunes
Problema: WSL no inicia
# Reiniciar el servicio LxssManager Get-Service LxssManager | Restart-Service # Reiniciar WSL wsl --shutdown
Problema: Error de memoria
# En el archivo .wslconfig, reducir la memoria asignada memory=2GB
Problema: Lentitud con archivos de Windows
# Trabajar en el sistema de archivos de Linux (~/) # en lugar de en /mnt/c/ para mejor rendimiento
Problema: Conflictos de versiones de Terraform
# Usar tfenv para gestionar múltiples versiones tfenv list tfenv use 1.4.0
Comentarios