Documentation

ce_switchport - Manages Layer 2 switchport interfaces on HUAWEI CloudEngine switches.

New in version 2.4.

Synopsis

  • Manages Layer 2 switchport interfaces on HUAWEI CloudEngine switches.

Options

parameter required default choices comments
access_vlan
no
If mode=access, used as the access VLAN ID, in the range from 1 to 4094.
interface
yes
Full name of the interface, i.e. 40GE1/0/22.
mode
no
  • access
  • trunk
The link type of an interface.
native_vlan
no
If mode=trunk, used as the trunk native VLAN ID, in the range from 1 to 4094.
state
no present
  • present
  • absent
  • unconfigured
Manage the state of the resource.
trunk_vlans
no
If mode=trunk, used as the VLAN range to ADD or REMOVE from the trunk, such as 2-10 or 2,5,10-15, etc.

Examples

- name: switchport module 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: Ensure 10GE1/0/22 is in its default switchport state
    ce_switchport:
      interface: 10GE1/0/22
      state: unconfigured
      provider: '{{ cli }}'

  - name: Ensure 10GE1/0/22 is configured for access vlan 20
    ce_switchport:
      interface: 10GE1/0/22
      mode: access
      access_vlan: 20
      provider: '{{ cli }}'

  - name: Ensure 10GE1/0/22 only has vlans 5-10 as trunk vlans
    ce_switchport:
      interface: 10GE1/0/22
      mode: trunk
      native_vlan: 10
      trunk_vlans: 5-10
      provider: '{{ cli }}'

  - name: Ensure 10GE1/0/22 is a trunk port and ensure 2-50 are being tagged (doesn't mean others aren't also being tagged)
    ce_switchport:
      interface: 10GE1/0/22
      mode: trunk
      native_vlan: 10
      trunk_vlans: 2-50
      provider: '{{ cli }}'

  - name: Ensure these VLANs are not being tagged on the trunk
    ce_switchport:
      interface: 10GE1/0/22
      mode: trunk
      trunk_vlans: 51-4000
      state: absent
      provider: '{{ cli }}'

Return Values

Common return values are documented here Return Values, the following are the fields unique to this module:

name description returned type sample
end_state k/v pairs of switchport after module execution always dict {'interface': '10GE1/0/22', 'access_vlan': '20', 'mode': 'access', 'switchport': 'enable'}
changed check to see if a change was made on the device always boolean True
updates command string sent to the device always list ['10GE1/0/22', 'port default vlan 20']
proposed k/v pairs of parameters passed into module always dict {'interface': '10GE1/0/22', 'access_vlan': '20', 'mode': 'access'}
existing k/v pairs of existing switchport always dict {'interface': '10GE1/0/22', 'access_vlan': '10', 'mode': 'access', 'switchport': 'enable'}


Notes

Note

  • When state=absent, VLANs can be added/removed from trunk links and the existing access VLAN can be ‘unconfigured’ to just having VLAN 1 on that interface.
  • When working with trunks VLANs the keywords add/remove are always sent in the port trunk allow-pass vlan command. Use verbose mode to see commands sent.
  • When state=unconfigured, the interface will result with having a default Layer 2 interface, i.e. vlan 1 in access mode.

Status

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

Support

This module is community maintained without core committer oversight.

For more information on what this means please read Module Support

For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.