On this page
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.
 
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
| access_vlan
        
        -
         | 
      
        
        If  mode=access, used as the access VLAN ID, in the range from 1 to 4094.
        | 
     |
| interface
        
        - / required
         | 
      
        
        Full name of the interface, i.e. 40GE1/0/22.
         | 
     |
| mode
        
        -
         | 
      
       
  | 
      
        
        The link type of an interface.
         | 
     
| native_vlan
        
        -
         | 
      
        
        If  mode=trunk, used as the trunk native VLAN ID, in the range from 1 to 4094.
        | 
     |
| state
        
        -
         | 
      
       
  | 
      
        
        Manage the state of the resource.
         | 
     
| trunk_vlans
        
        -
         | 
      
        
        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.
        | 
     
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 vlancommand. 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. - This module requires the netconf system service be enabled on the remote device being managed.
 - Recommended connection is 
netconf. - This module also works with 
localconnections for legacy playbooks. 
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, the following are the fields unique to this module:
| Key | Returned | Description | 
|---|---|---|
| changed
        
        boolean
         | 
      always | 
        
        check to see if a change was made on the device
         Sample:
        
       
        True
         | 
     
| end_state
        
        dictionary
         | 
      always | 
        
        k/v pairs of switchport after module execution
         Sample:
        
       
        {'access_vlan': '20', 'interface': '10GE1/0/22', 'mode': 'access', 'switchport': 'enable'}
         | 
     
| existing
        
        dictionary
         | 
      always | 
        
        k/v pairs of existing switchport
         Sample:
        
       
        {'access_vlan': '10', 'interface': '10GE1/0/22', 'mode': 'access', 'switchport': 'enable'}
         | 
     
| proposed
        
        dictionary
         | 
      always | 
        
        k/v pairs of parameters passed into module
         Sample:
        
       
        {'access_vlan': '20', 'interface': '10GE1/0/22', 'mode': 'access'}
         | 
     
| updates
        
        list
         | 
      always | 
        
        command string sent to the device
         Sample:
        
       
        ['10GE1/0/22', 'port default vlan 20']
         | 
     
Status
- This module is not guaranteed to have a backwards compatible interface. [preview]
 - This module is maintained by the Ansible Community. [community]
 
Authors
- QijunPan (@QijunPan)
 
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/2.8/modules/ce_switchport_module.html