mirror of
https://gitea.0xace.cc/ansible-galaxy/network.git
synced 2025-07-19 22:33:07 +00:00
support interface removal
This commit is contained in:
@ -7,3 +7,4 @@
|
|||||||
- name: Reload interface with nmcli
|
- name: Reload interface with nmcli
|
||||||
command: nmcli conn up "{{ item }}"
|
command: nmcli conn up "{{ item }}"
|
||||||
loop: "{{ reload_interfaces | unique }}"
|
loop: "{{ reload_interfaces | unique }}"
|
||||||
|
when: item.state is not defined or item.state != "absent"
|
||||||
|
@ -1,27 +1,30 @@
|
|||||||
---
|
---
|
||||||
- block:
|
- name: Configure interface {{ iface.conn_name }}
|
||||||
|
when: iface.state is not defined or iface.state != "absent"
|
||||||
|
block:
|
||||||
- name: "{{ iface.conn_name }} | Configure interface with nmcli"
|
- name: "{{ iface.conn_name }} | Configure interface with nmcli"
|
||||||
community.general.nmcli:
|
community.general.nmcli:
|
||||||
conn_name: "{{ iface.conn_name }}"
|
conn_name: "{{ iface.conn_name }}"
|
||||||
|
autoconnect: "{{ iface.autoconnect | default(omit) }}"
|
||||||
type: "{{ iface.type | default('ethernet') }}"
|
type: "{{ iface.type | default('ethernet') }}"
|
||||||
ip4: "{{ omit if iface.ip4 is not defined else (iface.ip4|join(', ')) }}"
|
ip4: "{{ omit if iface.ip4 is not defined else iface.ip4|list }}"
|
||||||
ip6: "{{ omit if iface.ip6 is not defined else (iface.ip6|join(', ')) }}"
|
ip6: "{{ omit if iface.ip6 is not defined else iface.ip6|list }}"
|
||||||
gw4: "{{ iface.gw4 | default(omit) }}"
|
gw4: "{{ iface.gw4 | default(omit) }}"
|
||||||
gw6: "{{ iface.gw6 | default(omit) }}"
|
gw6: "{{ iface.gw6 | default(omit) }}"
|
||||||
dns4: "{{ iface.dns4 | default(omit) }}"
|
dns4: "{{ iface.dns4 | default(omit) }}"
|
||||||
dns6: "{{ iface.dns6 | default(omit) }}"
|
dns6: "{{ iface.dns6 | default(omit) }}"
|
||||||
never_default4: "{{ iface.never_default4 | default(omit) }}"
|
never_default4: "{{ iface.never_default4 | default(omit) }}"
|
||||||
vlanid: "{{ iface.vlanid | default(omit) }}"
|
vlanid: "{{ iface.vlanid | default(omit) }}"
|
||||||
mtu: "{{ iface.mtu | default(0) }}"
|
mtu: "{{ iface.mtu | default(omit) }}"
|
||||||
zone: "{{ iface.zone | default(omit) }}"
|
zone: "{{ iface.zone | default(omit) }}"
|
||||||
state: present
|
state: "{{ iface.state | default('present') }}"
|
||||||
notify:
|
notify:
|
||||||
- Reload interface with nmcli
|
- Reload interface with nmcli
|
||||||
register: configure_interface
|
register: configure_interface
|
||||||
|
|
||||||
- name: "{{ iface.conn_name }} | Add interface to reload list"
|
- name: "{{ iface.conn_name }} | Add interface to reload list"
|
||||||
set_fact:
|
set_fact:
|
||||||
reload_interfaces: "{{ reload_interfaces + [ iface.conn_name ] }}"
|
reload_interfaces: "{{ reload_interfaces + [ iface.conn_name ] }}"
|
||||||
when: configure_interface.changed
|
when: configure_interface.changed
|
||||||
|
|
||||||
- name: "{{ iface.conn_name }} | Get existing ipv4 routes"
|
- name: "{{ iface.conn_name }} | Get existing ipv4 routes"
|
||||||
@ -50,30 +53,40 @@
|
|||||||
- name: "{{ iface.conn_name }} | Update routes and rules with nmcli"
|
- name: "{{ iface.conn_name }} | Update routes and rules with nmcli"
|
||||||
community.general.nmcli:
|
community.general.nmcli:
|
||||||
conn_name: "{{ iface.conn_name }}"
|
conn_name: "{{ iface.conn_name }}"
|
||||||
|
autoconnect: "{{ iface.autoconnect | default(omit) }}"
|
||||||
type: "{{ iface.type | default('ethernet') }}"
|
type: "{{ iface.type | default('ethernet') }}"
|
||||||
ip4: "{{ omit if iface.ip4 is not defined else (iface.ip4|join(', ')) }}"
|
ip4: "{{ omit if iface.ip4 is not defined else iface.ip4|list }}"
|
||||||
ip6: "{{ omit if iface.ip6 is not defined else (iface.ip6|join(', ')) }}"
|
ip6: "{{ omit if iface.ip6 is not defined else iface.ip6|list }}"
|
||||||
gw4: "{{ iface.gw4 | default(omit) }}"
|
gw4: "{{ iface.gw4 | default(omit) }}"
|
||||||
gw6: "{{ iface.gw6 | default(omit) }}"
|
gw6: "{{ iface.gw6 | default(omit) }}"
|
||||||
dns4: "{{ iface.dns4 | default(omit) }}"
|
dns4: "{{ iface.dns4 | default(omit) }}"
|
||||||
dns6: "{{ iface.dns6 | default(omit) }}"
|
dns6: "{{ iface.dns6 | default(omit) }}"
|
||||||
never_default4: "{{ iface.never_default4 | default(omit) }}"
|
never_default4: "{{ iface.never_default4 | default(omit) }}"
|
||||||
vlanid: "{{ iface.vlanid | default(omit) }}"
|
vlanid: "{{ iface.vlanid | default(omit) }}"
|
||||||
routes4: "{{ iface.routes4 if (existing_routes4 != new_routes4) else omit }}"
|
routes4: "{{ iface.routes4 | default([]) if (existing_routes4 != new_routes4) else omit }}"
|
||||||
routing_rules4: "{{ iface.routing_rules4 | default(omit) }}"
|
routing_rules4: "{{ iface.routing_rules4 | default(omit) }}"
|
||||||
routes6: "{{ iface.routes6 if (existing_routes6 != new_routes6) else omit }}"
|
routes6: "{{ iface.routes6 | default([]) if (existing_routes6 != new_routes6) else omit }}"
|
||||||
routing_rules6: "{{ iface.routing_rules6 | default(omit) }}"
|
routing_rules6: "{{ iface.routing_rules6 | default(omit) }}"
|
||||||
mtu: "{{ iface.mtu | default(0) }}"
|
mtu: "{{ iface.mtu | default(omit) }}"
|
||||||
zone: "{{ iface.zone | default(omit) }}"
|
zone: "{{ iface.zone | default(omit) }}"
|
||||||
state: present
|
state: "{{ iface.state | default('present') }}"
|
||||||
notify:
|
notify:
|
||||||
- Reload interface with nmcli
|
- Reload interface with nmcli
|
||||||
register: update_routes_and_rules
|
register: update_routes_and_rules
|
||||||
|
|
||||||
- name: "{{ iface.conn_name }} | Add interface to reload list"
|
- name: "{{ iface.conn_name }} | Add interface to reload list"
|
||||||
set_fact:
|
set_fact:
|
||||||
reload_interfaces: "{{ reload_interfaces + [ iface.conn_name ] }}"
|
reload_interfaces: "{{ reload_interfaces + [ iface.conn_name ] }}"
|
||||||
when: update_routes_and_rules.changed
|
when: update_routes_and_rules.changed
|
||||||
|
|
||||||
|
- name: Delete interface {{ iface.conn_name }}
|
||||||
|
when: iface.state is defined and iface.state == "absent"
|
||||||
|
block:
|
||||||
|
- name: "{{ iface.conn_name }} | Delete interface with nmcli"
|
||||||
|
community.general.nmcli:
|
||||||
|
conn_name: "{{ iface.conn_name }}"
|
||||||
|
type: "{{ iface.type | default('ethernet') }}"
|
||||||
|
state: "{{ iface.state }}"
|
||||||
|
|
||||||
#- debug:
|
#- debug:
|
||||||
# msg: "{{ reload_interfaces }}"
|
# msg: "{{ reload_interfaces }}"
|
||||||
|
@ -1,27 +1,30 @@
|
|||||||
---
|
---
|
||||||
- block:
|
- name: Configure interface {{ iface.conn_name }}
|
||||||
|
when: iface.state is not defined or iface.state != "absent"
|
||||||
|
block:
|
||||||
- name: "{{ iface.conn_name }} | Configure interface with nmcli"
|
- name: "{{ iface.conn_name }} | Configure interface with nmcli"
|
||||||
community.general.nmcli:
|
community.general.nmcli:
|
||||||
conn_name: "{{ iface.conn_name }}"
|
conn_name: "{{ iface.conn_name }}"
|
||||||
|
autoconnect: "{{ iface.autoconnect | default(omit) }}"
|
||||||
type: "{{ iface.type | default('ethernet') }}"
|
type: "{{ iface.type | default('ethernet') }}"
|
||||||
ip4: "{{ omit if iface.ip4 is not defined else (iface.ip4|join(', ')) }}"
|
ip4: "{{ omit if iface.ip4 is not defined else iface.ip4|list }}"
|
||||||
ip6: "{{ omit if iface.ip6 is not defined else (iface.ip6|join(', ')) }}"
|
ip6: "{{ omit if iface.ip6 is not defined else iface.ip6|list }}"
|
||||||
gw4: "{{ iface.gw4 | default(omit) }}"
|
gw4: "{{ iface.gw4 | default(omit) }}"
|
||||||
gw6: "{{ iface.gw6 | default(omit) }}"
|
gw6: "{{ iface.gw6 | default(omit) }}"
|
||||||
dns4: "{{ iface.dns4 | default(omit) }}"
|
dns4: "{{ iface.dns4 | default(omit) }}"
|
||||||
dns6: "{{ iface.dns6 | default(omit) }}"
|
dns6: "{{ iface.dns6 | default(omit) }}"
|
||||||
never_default4: "{{ iface.never_default4 | default(omit) }}"
|
never_default4: "{{ iface.never_default4 | default(omit) }}"
|
||||||
vlanid: "{{ iface.vlanid | default(omit) }}"
|
vlanid: "{{ iface.vlanid | default(omit) }}"
|
||||||
mtu: "{{ iface.mtu | default(0) }}"
|
mtu: "{{ iface.mtu | default(omit) }}"
|
||||||
zone: "{{ iface.zone | default(omit) }}"
|
zone: "{{ iface.zone | default(omit) }}"
|
||||||
state: present
|
state: "{{ iface.state | default('present') }}"
|
||||||
notify:
|
notify:
|
||||||
- Reload interface with nmcli
|
- Reload interface with nmcli
|
||||||
register: configure_interface
|
register: configure_interface
|
||||||
|
|
||||||
- name: "{{ iface.conn_name }} | Add interface to reload list"
|
- name: "{{ iface.conn_name }} | Add interface to reload list"
|
||||||
set_fact:
|
set_fact:
|
||||||
reload_interfaces: "{{ reload_interfaces + [ iface.conn_name ] }}"
|
reload_interfaces: "{{ reload_interfaces + [ iface.conn_name ] }}"
|
||||||
when: configure_interface.changed
|
when: configure_interface.changed
|
||||||
|
|
||||||
- name: "{{ iface.conn_name }} | Get existing ipv4 routes"
|
- name: "{{ iface.conn_name }} | Get existing ipv4 routes"
|
||||||
@ -50,30 +53,40 @@
|
|||||||
- name: "{{ iface.conn_name }} | Update routes and rules with nmcli"
|
- name: "{{ iface.conn_name }} | Update routes and rules with nmcli"
|
||||||
community.general.nmcli:
|
community.general.nmcli:
|
||||||
conn_name: "{{ iface.conn_name }}"
|
conn_name: "{{ iface.conn_name }}"
|
||||||
|
autoconnect: "{{ iface.autoconnect | default(omit) }}"
|
||||||
type: "{{ iface.type | default('ethernet') }}"
|
type: "{{ iface.type | default('ethernet') }}"
|
||||||
ip4: "{{ omit if iface.ip4 is not defined else (iface.ip4|join(', ')) }}"
|
ip4: "{{ omit if iface.ip4 is not defined else iface.ip4|list }}"
|
||||||
ip6: "{{ omit if iface.ip6 is not defined else (iface.ip6|join(', ')) }}"
|
ip6: "{{ omit if iface.ip6 is not defined else iface.ip6|list }}"
|
||||||
gw4: "{{ iface.gw4 | default(omit) }}"
|
gw4: "{{ iface.gw4 | default(omit) }}"
|
||||||
gw6: "{{ iface.gw6 | default(omit) }}"
|
gw6: "{{ iface.gw6 | default(omit) }}"
|
||||||
dns4: "{{ iface.dns4 | default(omit) }}"
|
dns4: "{{ iface.dns4 | default(omit) }}"
|
||||||
dns6: "{{ iface.dns6 | default(omit) }}"
|
dns6: "{{ iface.dns6 | default(omit) }}"
|
||||||
never_default4: "{{ iface.never_default4 | default(omit) }}"
|
never_default4: "{{ iface.never_default4 | default(omit) }}"
|
||||||
vlanid: "{{ iface.vlanid | default(omit) }}"
|
vlanid: "{{ iface.vlanid | default(omit) }}"
|
||||||
routes4: "{{ iface.routes4 if (existing_routes4 != new_routes4) else omit }}"
|
routes4: "{{ iface.routes4 | default([]) if (existing_routes4 != new_routes4) else omit }}"
|
||||||
routing_rules4: "{{ iface.routing_rules4 | default(omit) }}"
|
routing_rules4: "{{ iface.routing_rules4 | default(omit) }}"
|
||||||
routes6: "{{ iface.routes6 if (existing_routes6 != new_routes6) else omit }}"
|
routes6: "{{ iface.routes6 | default([]) if (existing_routes6 != new_routes6) else omit }}"
|
||||||
routing_rules6: "{{ iface.routing_rules6 | default(omit) }}"
|
routing_rules6: "{{ iface.routing_rules6 | default(omit) }}"
|
||||||
mtu: "{{ iface.mtu | default(0) }}"
|
mtu: "{{ iface.mtu | default(omit) }}"
|
||||||
zone: "{{ iface.zone | default(omit) }}"
|
zone: "{{ iface.zone | default(omit) }}"
|
||||||
state: present
|
state: "{{ iface.state | default('present') }}"
|
||||||
notify:
|
notify:
|
||||||
- Reload interface with nmcli
|
- Reload interface with nmcli
|
||||||
register: update_routes_and_rules
|
register: update_routes_and_rules
|
||||||
|
|
||||||
- name: "{{ iface.conn_name }} | Add interface to reload list"
|
- name: "{{ iface.conn_name }} | Add interface to reload list"
|
||||||
set_fact:
|
set_fact:
|
||||||
reload_interfaces: "{{ reload_interfaces + [ iface.conn_name ] }}"
|
reload_interfaces: "{{ reload_interfaces + [ iface.conn_name ] }}"
|
||||||
when: update_routes_and_rules.changed
|
when: update_routes_and_rules.changed
|
||||||
|
|
||||||
|
- name: Delete interface {{ iface.conn_name }}
|
||||||
|
when: iface.state is defined and iface.state == "absent"
|
||||||
|
block:
|
||||||
|
- name: "{{ iface.conn_name }} | Delete interface with nmcli"
|
||||||
|
community.general.nmcli:
|
||||||
|
conn_name: "{{ iface.conn_name }}"
|
||||||
|
type: "{{ iface.type | default('ethernet') }}"
|
||||||
|
state: "{{ iface.state }}"
|
||||||
|
|
||||||
#- debug:
|
#- debug:
|
||||||
# msg: "{{ reload_interfaces }}"
|
# msg: "{{ reload_interfaces }}"
|
||||||
|
Reference in New Issue
Block a user