Installing Windows operating systems across multiple devices is a time-consuming task that can be streamlined significantly with Ansible automation. By automating Windows installations, IT teams can save time, reduce manual errors, and ensure consistent configurations across their infrastructure.

---

Why Automate Windows Installations?

  • Time Efficiency: Automate repetitive tasks, such as partitioning disks and configuring settings.
  • Consistency: Ensure uniform configurations across all deployed systems.
  • Scalability: Deploy Windows to multiple devices simultaneously.
  • Error Reduction: Eliminate manual errors by using pre-defined playbooks.

---

How to Automate Windows Installations with Ansible

Manual Steps for Windows Installation

1. Prepare Installation Media:

- Use the [Media Creation Tool](https://www.microsoft.com/software-download/windows10) to create a bootable USB drive or ISO file.

2. Partition Disk:

- Configure disk partitions using the Windows setup wizard.

3. Install Windows:

- Follow the installation prompts to complete the process.

4. Configure System:

- Set up user accounts, network settings, and system updates manually.

---

Automating with Ansible

#### Example Playbook for Preparing Windows Installation

This playbook downloads the Windows ISO file and creates bootable installation media.

``yaml

  • name: Prepare Windows installation media

hosts: localhost

tasks:

- name: Download Windows ISO

ansible.builtin.get_url:

url: "https://software-download.microsoft.com/ISO_URL"

dest: "/tmp/windows.iso"

- name: Create bootable USB

ansible.builtin.shell: >

dd if=/tmp/windows.iso of=/dev/sdX bs=4M status=progress

`

---

#### Example Playbook for Installing Windows Using a Pre-Configured Answer File

Use an answer file to automate Windows setup.

`yaml

  • name: Automate Windows installation

hosts: windows_servers

tasks:

- name: Upload answer file to target

ansible.windows.win_copy:

src: "/path/to/answer_file.xml"

dest: "C:\\Windows\\Panther\\unattend.xml"

- name: Reboot and boot into setup

ansible.windows.win_reboot:

msg: "Rebooting to start Windows installation"

reboot_timeout: 600

`

---

#### Example Playbook for Post-Installation Configuration

Configure the newly installed Windows system.

`yaml

  • name: Configure Windows after installation

hosts: windows_servers

tasks:

- name: Set hostname

ansible.windows.win_hostname:

name: "NewWindowsHost"

- name: Configure Windows Update settings

ansible.windows.win_updates:

category_names:

- SecurityUpdates

- CriticalUpdates

reboot: yes

- name: Install essential software

ansible.windows.win_package:

path: "C:\\installers\\software_installer.msi"

state: present

``

---

Tips for Streamlining Windows Installations