From 6abc03577cba5747c845391c395bb30933bc8df4 Mon Sep 17 00:00:00 2001 From: Sandwich Date: Thu, 12 Mar 2026 04:45:40 +0100 Subject: [PATCH] fix(environment): bring interface up before IP assignment, add network verification --- .../environment/tasks/_configure_network.yml | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/roles/environment/tasks/_configure_network.yml b/roles/environment/tasks/_configure_network.yml index f4ccc37..ea0e015 100644 --- a/roles/environment/tasks/_configure_network.yml +++ b/roles/environment/tasks/_configure_network.yml @@ -13,6 +13,14 @@ | default('') }} +- name: Bring up network interface + when: + - hypervisor_type == "vmware" + - environment_interface_name | default('') | length > 0 + ansible.builtin.command: "ip link set {{ environment_interface_name }} up" + register: environment_link_result + changed_when: environment_link_result.rc == 0 + - name: Set IP-Address when: - hypervisor_type == "vmware" @@ -32,6 +40,21 @@ register: environment_gateway_result changed_when: environment_gateway_result.rc == 0 +- name: Verify network configuration + when: + - hypervisor_type == "vmware" + - system_cfg.network.ip is defined and system_cfg.network.ip | string | length > 0 + ansible.builtin.command: "ip addr show {{ environment_interface_name }}" + register: environment_ip_verify + changed_when: false + +- name: Display network configuration + when: + - hypervisor_type == "vmware" + - environment_ip_verify is defined + ansible.builtin.debug: + msg: "{{ environment_ip_verify.stdout_lines }}" + - name: Configure DNS resolvers when: - hypervisor_type == "vmware" @@ -47,6 +70,26 @@ {% endif %} mode: "0644" +- name: Verify gateway reachability + when: + - hypervisor_type == "vmware" + - system_cfg.network.gateway is defined and system_cfg.network.gateway | string | length > 0 + ansible.builtin.command: "ping -c 2 -W 3 {{ system_cfg.network.gateway }}" + register: environment_gateway_ping + changed_when: false + retries: 3 + delay: 3 + +- name: Verify DNS resolution + when: + - hypervisor_type == "vmware" + - system_cfg.network.dns.servers | default([]) | length > 0 + ansible.builtin.command: "getent hosts archlinux.org" + register: environment_dns_check + changed_when: false + retries: 3 + delay: 5 + - name: Synchronize clock via NTP ansible.builtin.command: timedatectl set-ntp true register: environment_ntp_result