Uwaga: rozwiązanie jest w fazie eksperymentalnej. Użycie może w skrajnych wypadkach uszkodzić system.
Automatyczny provisioning środowiska developerskiego: Windows + WSL (Ubuntu) + Docker (w WSL) + Codex + JetBrains Toolbox + Docker Desktop + Windows Terminal + Windows Terminal Quake.
Repo zawiera:
windows/bootstrap.ps1: bootstrap na Windows (Admin) → instaluje WSL + Ubuntu (z fallback--web-download), pobiera archiwum repo, odpala Ansible w WSL.site.yml+ role Ansible: właściwa konfiguracja WSL i Windows (przezwinget.exeuruchamiany z WSL).
Uwaga: w WSL instalacje APT/Node/Codex są pomijane, jeśli komponent jest już zainstalowany; w Windows winget zwykle zgłasza brak zmian dla już zainstalowanych aplikacji.
- JetBrains Toolbox
- Docker Desktop
- PowerShell 7
- Windows Terminal
- Windows Terminal Quake
- Tworzy (lub zapewnia) użytkownika
dev_user: jeśli wykryje domyślnego użytkownika WSL, używa jego; w przeciwnym razie bierzeDEVBOX_USER(domyślniedev) +sudobez hasła - Bazowe narzędzia CLI:
git,openssh-client,curl - Włącza
systemd=truew/etc/wsl.conf - Docker Engine + docker compose plugin (w WSL)
- nvm + Node.js 22 (default)
- Codex CLI:
npm i -g @openai/codex@latest - Dodaje użytkownika dev do grupy
docker
- Otwórz PowerShell jako Administrator
- Wklej one-liner:
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/wkulinski/wsl-provisioner/master/windows/bootstrap.ps1 | iex"Skrypt:
- zainstaluje WSL/Ubuntu jeśli trzeba (i zrestartuje Windows, jeśli wymagane),
- po restarcie sam dokończy (Scheduled Task),
- odpali provisioning Ansible w WSL,
- jeśli Ansible włączy
systemd=true, zrobiwsl --shutdowni odpali playbook drugi raz (żeby systemd/Docker wstały poprawnie).
W WSL:
docker version
docker compose version
codex --versionW Windows (PowerShell) log WSL:
Get-Content -Path $env:TEMP\wsl-provisioner-wsl.log -Tail 200Przyklad uruchomienia komendy jako root w Ubuntu:
wsl -d Ubuntu -u root -- bash -lc "apt-get install -y XXX"Skrypt bootstrap pobiera archiwum repo do: /root/code/wsl-provisioner i stamtąd odpala playbook.
Dalej Twoje projekty trzymaj w /home/<dev_user>/code/... (np. ~/code).