mirror of
				https://gitea.0xace.cc/ansible-galaxy/network.git
				synced 2025-11-04 04:37:23 +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,20 +1,23 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
- 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
 | 
				
			||||||
@@ -50,22 +53,23 @@
 | 
				
			|||||||
  - 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
 | 
				
			||||||
@@ -75,5 +79,14 @@
 | 
				
			|||||||
      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,20 +1,23 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
- 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
 | 
				
			||||||
@@ -50,22 +53,23 @@
 | 
				
			|||||||
  - 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
 | 
				
			||||||
@@ -75,5 +79,14 @@
 | 
				
			|||||||
      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