This playbook installs and configures most of the software I use on my Windows 11 machine for software development.
Capabilities:
- Installs software via Chocolatey
- Installs security, critical, and rollup Windows updates
- Removes Bloatware
- Enables and installs WSL2
- Downloads and installs custom fonts
- Configures Explorer
- Configures Taskbar
- Sets sound scheme to 'No sounds'
- Disables mouse acceleration
- Sets hostname
- Removes icons from the Desktop
This playbook was tested on Windows 10 2004 and Windows 11 21H2 (Pro, Ent). Other versions may work but have not tried.
Copy and paste the code below into your PowerShell terminal to get your Windows machine ready to work with Ansible.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$url = "https://raw.githubusercontent.com/AlexNabokikh/windows-playbook/master/setup.ps1"
$file = "$env:temp\setup.ps1"
(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
powershell.exe -ExecutionPolicy ByPass -File $file -Verbose
-
- Upgrade Pip:
sudo pip3 install --upgrade pip
- Install Ansible:
pip3 install ansible
- Upgrade Pip:
-
Clone or download this repository to your local drive.
-
Run
ansible-galaxy install -r requirements.yml
inside this directory to install required Ansible collections. -
Add the IP address and credentials of your Windows machine into the
inventory
file -
Run
ansible-playbook main.yml
inside this directory.
You can filter which part of the provisioning process to run by specifying a set of tags using ansible-playbook
--tags
flag. The tags available are choco
, debloat
, desktop
, explorer
, fonts
, hostname
, mouse
, sounds
, taskbar
, wsl
.
ansible-playbook main.yml --tags "choco,wsl"
You can override any of the defaults configured in default.config.yml
by creating a config.yml
file and setting the overrides in that file. For example, you can customize the installed packages and enable/disable specific tasks with something like:
configure_hostname: true
custom_hostname: myhostname
choco_installed_packages:
- googlechrome
- git
- golang
install_fonts: true
installed_nerdfonts:
- Meslo
install_wsl2: true
wsl2_distribution: wsl-archlinux
remove_bloatware: true
bloatware:
- Microsoft.Messaging
Packages (installed with Chocolatey):
- 7zip
- adobereader
- auto-dark-mode
- awscli
- capture2text
- choco-cleaner
- choco-upgrade-all-at-startup
- Firefox
- git
- golang
- jre8
- kubernetes-cli
- microsoft-windows-terminal
- powertoys
- python3
- telegram
- terraform
- vlc
- vscode
- zoom
This project was created by Alexander Nabokikh (originally inspired by geerlingguy/mac-dev-playbook).
This software is available under the following licenses: