Jeffrey Winn's Blog

Assorted thoughts and information of nominal value

View on GitHub

It is possible to use Anisble to update or interact with Windows.

To do this, you first need to install and configure winrm. This guide will not cover how to do that.

Once you have verified that winrm is working, you can use a playbook like this to update Windows itself:

- hosts: corellia_win
  gather_facts: True

  vars:
    ansible_python_interpreter: /usr/bin/python3
    ansible_remote_tmp: '\tmp'
    ansible_user: <YOUR USERNAME>
    ansible_ssh_port: 5986
    ansible_password: <YOUR PASSWORD>
    ansible_connection: winrm
    ansible_winrm_server_cert_validation: ignore

  tasks:
    - win_updates:
        category_names:
         - SecurityUpdates
         - CriticalUpdates
         - UpdateRollups

…using this same approach, you should be able to do any number of things. For example, we can use win_shell to get a return of the files in C:\Temp:

- hosts: corellia_win
  gather_facts: True

  vars:
    ansible_python_interpreter: /usr/bin/python3
    ansible_remote_tmp: '\tmp'
    ansible_user: <YOUR USERNAME>
    ansible_ssh_port: 5986
    ansible_password: <YOUR PASSWORD>
    ansible_connection: winrm
    ansible_winrm_server_cert_validation: ignore

  tasks:
    - name: List files from C:\Temp...
      win_shell: Get-ChildItem -Path C:\Temp | ForEach-Object { $_.Name }
      register: sqs_list

    - debug: 
       msg: ""

…more to come on using this excellent, if very basic, administration tool. I like it as it makes sense to a UNIX-inclined administrator.

…Get back