servers/roles/windows/tasks/interface_address.yml
Timotej Lazar 91de26af57 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.
2025-05-09 17:26:07 +02:00

22 lines
1,020 B
YAML

- 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