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_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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/network/ce_switchport_module.html