community.network.ce_evpn_bd_vni – Manages EVPN VXLAN Network Identifier (VNI) on HUAWEI CloudEngine switches.
Note
This plugin is part of the community.network collection (version 3.0.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.network
.
To use it in a playbook, specify: community.network.ce_evpn_bd_vni
.
Synopsis
Manages Ethernet Virtual Private Network (EVPN) VXLAN Network Identifier (VNI) configurations on HUAWEI CloudEngine switches.
Parameters
Parameter |
Comments |
---|---|
Specify an existed bridge domain (BD).The value is an integer ranging from 1 to 16777215. |
|
Create or delete an EVPN instance for a VXLAN in BD view. Choices:
|
|
Configures a route distinguisher (RD) for a BD EVPN instance. The format of an RD can be as follows
|
|
Manage the state of the resource. Choices:
|
|
Add VPN targets to both the import and export VPN target lists of a BD EVPN instance. The format is the same as route_distinguisher. |
|
Add VPN targets to the export VPN target list of a BD EVPN instance. The format is the same as route_distinguisher. |
|
Add VPN targets to the import VPN target list of a BD EVPN instance. The format is the same as route_distinguisher. |
Notes
Note
Ensure that EVPN has been configured to serve as the VXLAN control plane when state is present.
Ensure that a bridge domain (BD) has existed when state is present.
Ensure that a VNI has been created and associated with a broadcast domain (BD) when state is present.
If you configure evpn:false to delete an EVPN instance, all configurations in the EVPN instance are deleted.
After an EVPN instance has been created in the BD view, you can configure an RD using route_distinguisher parameter in BD-EVPN instance view.
Before configuring VPN targets for a BD EVPN instance, ensure that an RD has been configured for the BD EVPN instance
If you unconfigure route_distinguisher, all VPN target attributes for the BD EVPN instance will be removed at the same time.
When using state:absent, evpn is not supported and it will be ignored.
When using state:absent to delete VPN target attributes, ensure the configuration of VPN target attributes has existed and otherwise it will report an error.
This module requires the netconf system service be enabled on the remote device being managed.
Recommended connection is
netconf
.This module also works with
local
connections for legacy playbooks.
Examples
- name: EVPN BD VNI test
hosts: cloudengine
connection: local
gather_facts: no
vars:
cli:
host: "{{ inventory_hostname }}"
port: "{{ ansible_ssh_port }}"
username: "{{ username }}"
password: "{{ password }}"
transport: cli
tasks:
- name: "Configure an EVPN instance for a VXLAN in BD view"
community.network.ce_evpn_bd_vni:
bridge_domain_id: 20
evpn: enable
provider: "{{ cli }}"
- name: "Configure a route distinguisher (RD) for a BD EVPN instance"
community.network.ce_evpn_bd_vni:
bridge_domain_id: 20
route_distinguisher: '22:22'
provider: "{{ cli }}"
- name: "Configure VPN targets to both the import and export VPN target lists of a BD EVPN instance"
community.network.ce_evpn_bd_vni:
bridge_domain_id: 20
vpn_target_both: 22:100,22:101
provider: "{{ cli }}"
- name: "Configure VPN targets to the import VPN target list of a BD EVPN instance"
community.network.ce_evpn_bd_vni:
bridge_domain_id: 20
vpn_target_import: 22:22,22:23
provider: "{{ cli }}"
- name: "Configure VPN targets to the export VPN target list of a BD EVPN instance"
community.network.ce_evpn_bd_vni:
bridge_domain_id: 20
vpn_target_export: 22:38,22:39
provider: "{{ cli }}"
- name: "Unconfigure VPN targets to both the import and export VPN target lists of a BD EVPN instance"
community.network.ce_evpn_bd_vni:
bridge_domain_id: 20
vpn_target_both: '22:100'
state: absent
provider: "{{ cli }}"
- name: "Unconfigure VPN targets to the import VPN target list of a BD EVPN instance"
community.network.ce_evpn_bd_vni:
bridge_domain_id: 20
vpn_target_import: '22:22'
state: absent
provider: "{{ cli }}"
- name: "Unconfigure VPN targets to the export VPN target list of a BD EVPN instance"
community.network.ce_evpn_bd_vni:
bridge_domain_id: 20
vpn_target_export: '22:38'
state: absent
provider: "{{ cli }}"
- name: "Unconfigure a route distinguisher (RD) of a BD EVPN instance"
community.network.ce_evpn_bd_vni:
bridge_domain_id: 20
route_distinguisher: '22:22'
state: absent
provider: "{{ cli }}"
- name: "Unconfigure an EVPN instance for a VXLAN in BD view"
community.network.ce_evpn_bd_vni:
bridge_domain_id: 20
evpn: disable
provider: "{{ cli }}"
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
check to see if a change was made on the device Returned: always Sample: true |
|
k/v pairs of end attributes on the device Returned: always Sample: {“bridge_domain_id”: “2”, “evpn”: “enable”, “route_distinguisher”: “22:22”, “vpn_target_both”: [“22:100”, “22:101”], “vpn_target_export”: [“22:38”, “22:39”], “vpn_target_import”: [“22:22”, “22:23”]} |
|
k/v pairs of existing attributes on the device Returned: always Sample: {“bridge_domain_id”: “2”, “evpn”: “disable”, “route_distinguisher”: null, “vpn_target_both”: [], “vpn_target_export”: [], “vpn_target_import”: []} |
|
k/v pairs of parameters passed into module Returned: always Sample: {“bridge_domain_id”: “2”, “evpn”: “enable”, “route_distinguisher”: “22:22”, “state”: “present”, “vpn_target_both”: [“22:100”, “22:101”], “vpn_target_export”: [“22:38”, “22:39”], “vpn_target_import”: [“22:22”, “22:23”]} |
|
command list sent to the device Returned: always Sample: [“bridge-domain 2”, ” evpn”, ” route-distinguisher 22:22”, ” vpn-target 22:38 export-extcommunity”, ” vpn-target 22:39 export-extcommunity”, ” vpn-target 22:100 export-extcommunity”, ” vpn-target 22:101 export-extcommunity”, ” vpn-target 22:22 import-extcommunity”, ” vpn-target 22:23 import-extcommunity”, ” vpn-target 22:100 import-extcommunity”, ” vpn-target 22:101 import-extcommunity”] |
Authors
Zhijin Zhou (@QijunPan)