--- - name: Initialize network management variables ansible.builtin.set_fact: reboot_required: false network_reload_required: false - name: Setup persistent network interface(s) ansible.builtin.include_role: name: net_persist public: true vars: interface: "{{ item }}" loop: "{{ hostvars[inventory_hostname].network_interfaces | default([]) }}" - name: Configure network interface(s) ansible.builtin.include_role: name: net_config public: true vars: interface: "{{ item }}" loop: "{{ hostvars[inventory_hostname].network_interfaces | default([]) }}" - name: Remove stale podman-gw systemd-networkd configuration ansible.builtin.file: path: "{{ item }}" state: absent loop: - /etc/systemd/network/10-podman-gw.netdev - /etc/systemd/network/20-podman-gw.network register: stale_podman_gw - name: Mark networkd reload required after podman-gw cleanup ansible.builtin.set_fact: network_reload_required: true when: stale_podman_gw is changed - name: Tear down podman-gw bridge interface if present ansible.builtin.command: ip link delete podman-gw register: podman_gw_link_del changed_when: podman_gw_link_del.rc == 0 failed_when: - podman_gw_link_del.rc != 0 - "'Cannot find device' not in podman_gw_link_del.stderr" - "'does not exist' not in podman_gw_link_del.stderr" - name: Reload networkd and resolved ansible.builtin.systemd: name: "{{ item }}" state: reloaded daemon_reload: true loop: - systemd-networkd - systemd-resolved when: reboot_required is false and network_reload_required is true - name: Reboot the machine when: reboot_required is true ansible.builtin.reboot: reboot_timeout: 60