60 lines
1.7 KiB
YAML
60 lines
1.7 KiB
YAML
---
|
|
- 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
|