community.general.ce_evpn_bd_vni (0.1.1) — module

Manages EVPN VXLAN Network Identifier (VNI) on HUAWEI CloudEngine switches.

Authors: Zhijin Zhou (@QijunPan)

preview | supported by community

Install collection

Install with ansible-galaxy collection install community.general:==0.1.1


Add to requirements.yml

  collections:
    - name: community.general
      version: 0.1.1

Description

Manages Ethernet Virtual Private Network (EVPN) VXLAN Network Identifier (VNI) configurations on HUAWEI CloudEngine switches.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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"
    ce_evpn_bd_vni:
      bridge_domain_id: 20
      evpn: enable
      provider: "{{ cli }}"

  - name: "Configure a route distinguisher (RD) for a BD EVPN instance"
    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"
    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"
    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"
    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"
    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"
    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"
    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"
    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"
    ce_evpn_bd_vni:
      bridge_domain_id: 20
      evpn: disable
      provider: "{{ cli }}"

Inputs

    
evpn:
    choices:
    - enable
    - disable
    default: enable
    description:
    - Create or delete an EVPN instance for a VXLAN in BD view.

state:
    choices:
    - present
    - absent
    default: present
    description:
    - Manage the state of the resource.

vpn_target_both:
    description:
    - 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.

bridge_domain_id:
    description:
    - Specify an existed bridge domain (BD).The value is an integer ranging from 1 to
      16777215.
    required: true

vpn_target_export:
    description:
    - Add VPN targets to the export VPN target list of a BD EVPN instance. The format
      is the same as route_distinguisher.

vpn_target_import:
    description:
    - Add VPN targets to the import VPN target list of a BD EVPN instance. The format
      is the same as route_distinguisher.
    required: true

route_distinguisher:
    description:
    - Configures a route distinguisher (RD) for a BD EVPN instance. The format of an RD
      can be as follows
    - 1) 2-byte AS number:4-byte user-defined number, for example, 1:3. An AS number is
      an integer ranging from 0 to 65535, and a user-defined number is an integer ranging
      from 0 to 4294967295. The AS and user-defined numbers cannot be both 0s. This means
      that an RD cannot be 0:0.
    - 2) Integral 4-byte AS number:2-byte user-defined number, for example, 65537:3. An
      AS number is an integer ranging from 65536 to 4294967295, and a user-defined number
      is an integer ranging from 0 to 65535.
    - 3) 4-byte AS number in dotted notation:2-byte user-defined number, for example,
      0.0:3 or 0.1:0. A 4-byte AS number in dotted notation is in the format of x.y, where
      x and y are integers ranging from 0 to 65535.
    - 4) A user-defined number is an integer ranging from 0 to 65535. The AS and user-defined
      numbers cannot be both 0s. This means that an RD cannot be 0.0:0.
    - 5) 32-bit IP address:2-byte user-defined number. For example, 192.168.122.15:1.
      An IP address ranges from 0.0.0.0 to 255.255.255.255, and a user-defined number
      is an integer ranging from 0 to 65535.
    - 6) 'auto' specifies the RD that is automatically generated.

Outputs

changed:
  description: check to see if a change was made on the device
  returned: always
  sample: true
  type: bool
end_state:
  description: 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'
  type: dict
existing:
  description: 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: []
  type: dict
proposed:
  description: 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'
  type: dict
updates:
  description: 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'
  type: list