Add windows role

Set up network interfaces and SSH for Windows hosts.

We can’t gather facts before we know which remote shell to use, so
first run a win_ping to determine if a given host is running Windows.
This commit is contained in:
Timotej Lazar 2025-05-09 17:03:53 +02:00
parent aa78b407c8
commit 91de26af57
7 changed files with 123 additions and 21 deletions

View file

@ -0,0 +1,22 @@
- name: Add IP address
win_shell: >
New-NetIPAddress -InterfaceAlias {{ interface.name }}
-AddressFamily IPv{{ address.family.value }}
-IPAddress "{{ address.address | ipaddr("address") }}" -PrefixLength {{ address.address | ipaddr("prefix") }}
register: result
changed_when: "not result.stderr or 'Instance MSFT_NetIPAddress already exists' not in result.stderr"
failed_when: false
- set_fact:
prefix: "{{ prefixes | selectattr('prefix', '==', address.address|ipaddr('subnet')) | first }}"
- name: Set gateway
when: address.family.value == 4 and prefix.custom_fields.gateway
win_shell: >
New-NetRoute -InterfaceAlias {{ interface.name }}
-AddressFamily IPv{{ address.family.value }}
-DestinationPrefix {{ "0.0.0.0/0" if address.family.value == 4 else "::/0" }}
-NextHop {{ prefix.custom_fields.gateway.address | ipaddr("address") }}
register: result
changed_when: "not result.stderr or 'Instance MSFT_NetRoute already exists' not in result.stderr"
failed_when: false