Note
This plugin is part of the community.network collection.
To install it use: ansible-galaxy collection install community.network.
To use it in a playbook, specify: community.network.ce_switchport.
| Parameter | Choices/Defaults | Comments |
|---|---|---|
| default_vlan string | If mode=access, or mode=dot1qtunnel, used as the access VLAN ID, in the range from 1 to 4094. | |
| interface string / required | Full name of the interface, i.e. 40GE1/0/22. | |
| mode string |
| The link type of an interface. |
| pvid_vlan string | If mode=trunk, or mode=hybrid, used as the trunk native VLAN ID, in the range from 1 to 4094. | |
| state string |
| Manage the state of the resource. |
| tagged_vlans string | If mode=hybrid, used as the VLAN range to ADD or REMOVE from the trunk, such as 2-10 or 2,5,10-15, etc. | |
| trunk_vlans string | 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. | |
| untagged_vlans string | If mode=hybrid, used as the VLAN range to ADD or REMOVE from the trunk, such as 2-10 or 2,5,10-15, etc. |
Note
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.port trunk allow-pass vlan command. Use verbose mode to see commands sent.state=unconfigured, the interface will result with having a default Layer 2 interface, i.e. vlan 1 in access mode.netconf.local connections for legacy playbooks.- 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
community.network.ce_switchport:
interface: 10GE1/0/22
state: unconfigured
provider: '{{ cli }}'
- name: Ensure 10GE1/0/22 is configured for access vlan 20
community.network.ce_switchport:
interface: 10GE1/0/22
mode: access
default_vlan: 20
provider: '{{ cli }}'
- name: Ensure 10GE1/0/22 only has vlans 5-10 as trunk vlans
community.network.ce_switchport:
interface: 10GE1/0/22
mode: trunk
pvid_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)
community.network.ce_switchport:
interface: 10GE1/0/22
mode: trunk
pvid_vlan: 10
trunk_vlans: 2-50
provider: '{{ cli }}'
- name: Ensure these VLANs are not being tagged on the trunk
community.network.ce_switchport:
interface: 10GE1/0/22
mode: trunk
trunk_vlans: 51-4000
state: absent
provider: '{{ cli }}'
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: {'default_vlan': '20', 'interface': '10GE1/0/22', 'mode': 'access', 'switchport': 'enable'} |
| existing dictionary | always | k/v pairs of existing switchport Sample: {'default_vlan': '10', 'interface': '10GE1/0/22', 'mode': 'access', 'switchport': 'enable'} |
| proposed dictionary | always | k/v pairs of parameters passed into module Sample: {'default_vlan': '20', 'interface': '10GE1/0/22', 'mode': 'access'} |
| updates list / elements=string | always | command string sent to the device Sample: ['10GE1/0/22', 'port default vlan 20'] |
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/network/ce_switchport_module.html