- name: "{{ fqdn }} : set up static ip address on windows" win_shell: | Start-Transcript -Path C:\set_domain_network_log.txt -Append Get-NetIpAddress -InterfaceAlias 'Ethernet' | Remove-NetIPAddress -Confirm:$false New-NetIPAddress -InterfaceAlias 'Ethernet' -IPAddress "{{ ip }}" -PrefixLength 24 -DefaultGateway "{{ gateway }}" Set-DnsClientServerAddress -InterfaceAlias 'Ethernet' -ServerAddresses "{{ dns }}" Get-NetConnectionProfile -InterfaceAlias 'Ethernet' | Set-NetConnectionProfile -NetworkCategory Private Stop-Transcript async: 15 poll: 0 delegate_to: "{{ vm_ip }}" when: os_type == 'windows' vars: ansible_connection: "{{ win_connector }}" ansible_user: "{{ default_win_username }}" ansible_password: "{{ default_win_password }}" ansible_port: "{{ win_port }}" ansible_winrm_transport: basic ansible_winrm_server_cert_validation: ignore - name: "{{ fqdn }} : configure network for linux" block: - name: "{{ fqdn }} : get default interface" ansible.builtin.shell: ip route get 8.8.8.8 | sed -n 's/.*dev \([^\ ]*\).*/\1/p' register: interface_result - name: "{{ fqdn }} : set default interface variable" ansible.builtin.set_fact: linux_interface_name: "{{ interface_result.stdout }}" netplan_ip_address: "{{ ip }}" - name: "{{ fqdn }} : find netplan configs in /etc/netplan" ansible.builtin.find: paths: /etc/netplan recurse: yes register: yaml_configs - name: "{{ fqdn }} : remove all netplan configs in /etc/netplan" ansible.builtin.file: path: "{{ item.path }}" state: absent loop: "{{ yaml_configs.files }}" - name: "{{ fqdn }} : set netplan static ip address" ansible.builtin.template: src: static_ip_netplan.yaml.j2 dest: /etc/netplan/01-netcfg.yaml mode: '0644' - name: "{{ fqdn }} : apply netplan configuration" ansible.builtin.command: netplan apply async: 15 poll: 0 delegate_to: "{{ vm_ip }}" when: os_type == 'linux' vars: ansible_connection: "{{ linux_connector }}" ansible_user: "{{ default_linux_username }}" ansible_password: "{{ default_linux_password }}" ansible_port: "{{ linux_port }}" ansible_host_key_checking: false - name: "{{ fqdn }} : update ip to {{ ip }}" set_fact: ansible_host: "{{ ip }}" - name: "{{ fqdn }} : pause execution for 3 minute to allow ip change and reconnect" pause: minutes: 3