diff --git a/roles/environment/tasks/_configure_network.yml b/roles/environment/tasks/_configure_network.yml index f4ccc37..669fd33 100644 --- a/roles/environment/tasks/_configure_network.yml +++ b/roles/environment/tasks/_configure_network.yml @@ -32,20 +32,36 @@ register: environment_gateway_result changed_when: environment_gateway_result.rc == 0 -- name: Configure DNS resolvers +- name: Configure DNS resolvers via systemd-resolved when: - hypervisor_type == "vmware" - system_cfg.network.dns.servers | default([]) | length > 0 - ansible.builtin.copy: - dest: /etc/resolv.conf - content: | - {% for server in system_cfg.network.dns.servers %} - nameserver {{ server }} - {% endfor %} - {% if system_cfg.network.dns.search | default([]) | length > 0 %} - search {{ system_cfg.network.dns.search | join(' ') }} - {% endif %} - mode: "0644" + ansible.builtin.command: >- + resolvectl dns {{ environment_interface_name }} + {{ system_cfg.network.dns.servers | join(' ') }} + register: environment_dns_result + changed_when: environment_dns_result.rc == 0 + +- name: Configure DNS search domains via systemd-resolved + when: + - hypervisor_type == "vmware" + - system_cfg.network.dns.search | default([]) | length > 0 + ansible.builtin.command: >- + resolvectl domain {{ environment_interface_name }} + {{ system_cfg.network.dns.search | join(' ') }} + register: environment_dns_search_result + changed_when: environment_dns_search_result.rc == 0 + +- name: Verify network connectivity + when: + - hypervisor_type == "vmware" + - system_cfg.network.ip is defined and system_cfg.network.ip | string | length > 0 + ansible.builtin.command: >- + resolvectl query archlinux.org + register: environment_network_check + changed_when: false + retries: 3 + delay: 5 - name: Synchronize clock via NTP ansible.builtin.command: timedatectl set-ntp true