El onboarding de nuevos miembros en un equipo técnico suele implicar configurar entornos complejos con múltiples herramientas, dependencias, claves, servicios y flujos específicos. WSL2 permite automatizar completamente esta experiencia, facilitando que cualquier integrante configure un entorno de desarrollo productivo en minutos, con mínima intervención y total reproducibilidad.
Este artículo presenta estrategias y herramientas para automatizar la preparación de entornos WSL2, integrando scripting, dotfiles, Dev Containers, provisioning declarativo y prácticas de mantenimiento colaborativo.
Objetivo
- Establecer un entorno base reproducible en WSL2
- Reducir errores manuales durante onboarding
- Versionar configuraciones y automatizaciones
- Proveer una experiencia coherente entre dispositivos
Paso 1: Script de instalación WSL2 + Distro personalizada
En una máquina limpia, desde PowerShell (Administrador):
wsl --install -d Ubuntu
Configurar distro:
sudo apt update && sudo apt upgrade -y
Instalar herramientas comunes:
sudo apt install -y git curl build-essential zsh python3-pip
Guardar este paso como setup.sh
en el repositorio del equipo.
Paso 2: Clonación y aplicación de dotfiles
Mantener configuraciones como .bashrc
, .zshrc
, .gitconfig
, alias y funciones personalizadas en un repositorio compartido:
git clone https://github.com/empresa/dotfiles ~/.dotfiles
cp ~/.dotfiles/.zshrc ~/.zshrc
cp ~/.dotfiles/.gitconfig ~/.gitconfig
Usar herramientas como:
Paso 3: Provisioning automatizado del stack de herramientas
Ejemplo con Makefile
por proyecto:
install:
bash scripts/install-python-tools.sh
bash scripts/install-node.sh
bash scripts/setup-venv.sh
También se pueden usar ansible-playbook
o bash setup.sh
con detección de sistema, instalación de dependencias y personalización por usuario.
Paso 4: Dev Containers para entornos por proyecto
Usar .devcontainer
para configurar el stack por repositorio:
{
"name": "backend-node-postgres",
"image": "mcr.microsoft.com/devcontainers/javascript-node:18",
"postCreateCommand": "npm install && npm run setup-db",
"customizations": {
"vscode": {
"extensions": ["dbaeumer.vscode-eslint"]
}
}
}
Esto garantiza que todos los miembros usen las mismas versiones y herramientas al abrir el proyecto en VS Code con WSL2.
Paso 5: Automatizar con scripts de bootstrap
Estructura común para bootstrap completo:
onboarding/
├── install.sh
├── setup.sh
├── dotfiles/
├── devcontainer/
├── Makefile
Ejemplo de install.sh
:
#!/bin/bash
echo "Configurando entorno WSL2..."
bash ./setup.sh
git clone https://github.com/org/dotfiles ~/.dotfiles
cd ~/.dotfiles && ./install.sh
code .
Buenas prácticas
- Usar scripts idempotentes (que se pueden correr múltiples veces)
- Documentar variables de entorno necesarias en
.env.example
- Versionar herramientas y librerías clave en
requirements.txt
,package.json
, etc. - Probar en entornos limpios y documentar prerequisitos (ej. Docker Desktop, VS Code)
- Incluir pruebas de validación (
make check-env
)
Conclusión
Automatizar la configuración de entornos WSL2 mejora el onboarding técnico, elimina fricciones y promueve la colaboración entre desarrolladores. Con un diseño reproducible y bien documentado, cada integrante del equipo puede empezar a trabajar con el stack completo en minutos, desde cualquier máquina con Windows, sin perder tiempo en configuraciones manuales.
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