You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/win_dns_client/tasks/main.yml

207 lines
5.8 KiB
YAML

---
- set_fact:
get_ip_script: |
$adapter = Get-CimInstance -ClassName Win32_NetworkAdapter -Filter "NetConnectionID='{{ network_adapter_name }}'"
$config = Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration -Filter "Index=$($adapter.DeviceID)"
$ips = $config.DNSServerSearchOrder
if ($ips) {
$config.DNSServerSearchOrder[0]
$config.DNSServerSearchOrder[1]
}
- name: set a single IPv4 address (check mode)
win_dns_client:
adapter_names: '{{ network_adapter_name }}'
ipv4_addresses: 192.168.34.5
register: set_single_check
check_mode: yes
- name: get result of set a single IPv4 address (check mode)
win_shell: '{{ get_ip_script }}'
changed_when: no
register: set_single_actual_check
- name: assert set a single IPv4 address (check mode)
assert:
that:
- set_single_check is changed
- set_single_actual_check.stdout_lines == []
- name: set a single IPv4 address
win_dns_client:
adapter_names: '{{ network_adapter_name }}'
ipv4_addresses: 192.168.34.5
register: set_single
- name: get result of set a single IPv4 address
win_shell: '{{ get_ip_script }}'
changed_when: no
register: set_single_actual
- name: assert set a single IPv4 address
assert:
that:
- set_single is changed
- set_single_actual.stdout_lines == ["192.168.34.5"]
- name: set a single IPv4 address (idempotent)
win_dns_client:
adapter_names: '{{ network_adapter_name }}'
ipv4_addresses: 192.168.34.5
register: set_single_again
- name: assert set a single IPv4 address (idempotent)
assert:
that:
- not set_single_again is changed
- name: change IPv4 address to another value (check mode)
win_dns_client:
adapter_names: '{{ network_adapter_name }}'
ipv4_addresses: 192.168.34.6
register: change_single_check
check_mode: yes
- name: get result of change IPv4 address to another value (check mode)
win_shell: '{{ get_ip_script }}'
changed_when: no
register: check_single_actual_check
- name: assert change IPv4 address to another value (check mode)
assert:
that:
- change_single_check is changed
- check_single_actual_check.stdout_lines == ["192.168.34.5"]
- name: change IPv4 address to another value
win_dns_client:
adapter_names: '{{ network_adapter_name }}'
ipv4_addresses: 192.168.34.6
register: change_single
- name: get result of change IPv4 address to another value
win_shell: '{{ get_ip_script }}'
changed_when: no
register: check_single_actual
- name: assert change IPv4 address to another value
assert:
that:
- change_single is changed
- check_single_actual.stdout_lines == ["192.168.34.6"]
- name: set multiple IPv4 addresses (check mode)
win_dns_client:
adapter_names: '{{ network_adapter_name }}'
ipv4_addresses:
- 192.168.34.7
- 192.168.34.8
register: set_multiple_check
check_mode: yes
- name: get result of set multiple IPv4 addresses (check mode)
win_shell: '{{ get_ip_script }}'
changed_when: no
register: set_multiple_actual_check
- name: assert set multiple IPv4 addresses (check mode)
assert:
that:
- set_multiple_check is changed
- set_multiple_actual_check.stdout_lines == ["192.168.34.6"]
- name: set multiple IPv4 addresses
win_dns_client:
adapter_names: '{{ network_adapter_name }}'
ipv4_addresses:
- 192.168.34.7
- 192.168.34.8
register: set_multiple
- name: get result of set multiple IPv4 addresses
win_shell: '{{ get_ip_script }}'
changed_when: no
register: set_multiple_actual
- name: assert set multiple IPv4 addresses
assert:
that:
- set_multiple is changed
- set_multiple_actual.stdout_lines == ["192.168.34.7", "192.168.34.8"]
- name: set multiple IPv4 addresses (idempotent)
win_dns_client:
adapter_names: '{{ network_adapter_name }}'
ipv4_addresses:
- 192.168.34.7
- 192.168.34.8
register: set_multiple_again
- name: assert set multiple IPv4 addresses (idempotent)
assert:
that:
- not set_multiple_again is changed
- name: reset IPv4 DNS back to DHCP (check mode)
win_dns_client:
adapter_names: '{{ network_adapter_name }}'
ipv4_addresses: []
register: set_dhcp_check
check_mode: yes
- name: get result of reset IPv4 DNS back to DHCP (check mode)
win_shell: '{{ get_ip_script }}'
changed_when: no
register: set_dhcp_actual_check
- name: assert reset IPv4 DNS back to DHCP (check mode)
assert:
that:
- set_dhcp_check is changed
- set_dhcp_actual_check.stdout_lines == ["192.168.34.7", "192.168.34.8"]
- name: reset IPv4 DNS back to DHCP
win_dns_client:
adapter_names: '{{ network_adapter_name }}'
ipv4_addresses: []
register: set_dhcp
- name: get result of reset IPv4 DNS back to DHCP
win_shell: '{{ get_ip_script }}'
changed_when: no
register: set_dhcp_actual
- name: assert reset IPv4 DNS back to DHCP
assert:
that:
- set_dhcp is changed
- set_dhcp_actual.stdout_lines == []
# Legacy WMI does not support setting IPv6 addresses so we can only test this on newer hosts that have the new cmdlets
- name: check if server supports IPv6
win_shell: if (Get-Command -Name Get-NetAdapter -ErrorAction SilentlyContinue) { $true } else { $false }
changed_when: no
register: new_os
- name: run IPv6 tests
when: new_os.stdout | trim | bool
block:
- name: set IPv6 DNS address
win_dns_client:
adapter_names: '{{ network_adapter_name }}'
dns_servers:
- 2001:db8::1
- 2001:db8::2
register: set_ipv6
- name: get result of set IPv6 DNS address
win_shell: (Get-DnsClientServerAddress -InterfaceAlias '{{ network_adapter_name }}' -AddressFAmily IPv6).ServerAddresses
changed_when: no
register: set_ipv6_actual
- name: assert set IPv6 DNS address
assert:
that:
- set_ipv6 is changed
- set_ipv6_actual.stdout_lines == ['2001:db8::1', '2001:db8::2']