Uno de los beneficios clave de WSL2 es la capacidad de automatizar la configuración del entorno Linux que corre sobre Windows. Esto permite establecer comportamientos predefinidos y provisionar distros listas para el trabajo sin intervención manual. En este artículo exploramos dos mecanismos clave: wsl.conf
y cloud-init
.
⚙️ ¿Qué es wsl.conf
?
Es un archivo de configuración ubicado en /etc/wsl.conf
dentro de cada distro. Permite modificar cómo WSL monta discos, configura redes y gestiona el entorno.
Ejemplo básico:
[automount]
enabled = true
root = /mnt/
options = "metadata,umask=22,fmask=11"
[network]
generateResolvConf = false
[user]
default = devuser
- Monta unidades de Windows con metadatos de permisos.
- Previene conflictos DNS con
resolv.conf
. - Define el usuario predeterminado al iniciar la terminal.
✅ Ideal para escenarios donde múltiples usuarios usan la misma distro o cuando se quiere mantener un entorno consistente.
☁️ ¿Qué es cloud-init
?
Originalmente pensado para entornos cloud como EC2 o Azure VM, cloud-init
también funciona en algunas distros WSL2 (por ejemplo, Ubuntu). Permite definir:
- Paquetes a instalar
- Archivos de configuración
- Comandos post-instalación
- Creación de usuarios
Ejemplo YAML:
# /etc/cloud/cloud.cfg.d/01-wsl-autoconfig.cfg
packages:
- git
- zsh
- build-essential
runcmd:
- echo "WSL2 provisionado automáticamente" >> /etc/motd
- chsh -s $(which zsh) devuser
Activación:
sudo cloud-init init
sudo cloud-init status --long
🧠 Tip: Se puede combinar esto con setup.sh
para instalar temas, dotfiles y CLI personales.
🛠️ Ejemplo de flujo automatizado para onboarding
- Crear distro base con
wsl --import
- Configurar
wsl.conf
y archivos decloud-init
- Ejecutar provisioning
- Compartir imagen exportada (
.tar
) con otros desarrolladores
Ver también
- Construcción de un asistente contextual para escritorio usando IA local con acceso al sistema
- Integración de inferencia local ONNX con Windows ML en apps modernas
- Integración con servicios locales vía App Services y extensión de funcionalidades entre apps
- Implementación de Background Tasks persistentes en apps modernas
- Empaquetado de apps modernas con MSIX y configuración avanzada del manifiesto