cisco.nxos.nxos_l2_interfaces module – L2 interfaces resource module
Note
This module is part of the cisco.nxos collection (version 11.2.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 cisco.nxos.
To use it in a playbook, specify: cisco.nxos.nxos_l2_interfaces.
New in cisco.nxos 1.0.0
Synopsis
This module manages Layer-2 interfaces attributes of NX-OS Interfaces.
Note
This module has a corresponding action plugin.
Aliases: l2_interfaces
Parameters
Parameter |
Comments |
|---|---|
A List of Layer-2 interface options |
|
Switchport mode access command to configure the interface as a Layer-2 access. |
|
Configure given VLAN in access port. It’s used as the access VLAN ID. |
|
Disable/enable the beacon for an interface Choices:
|
|
Enable/disable CDP on the interface Choices:
|
|
Configure actions on link-flap |
|
Configure the port to error-disable on link-flap |
|
Configure the number of link-flaps to trigger the action |
|
Configure the interval to trigger the action |
|
Mode in which interface needs to be configured. Access mode is not shown in interface facts, so idempotency will not be maintained for switchport mode access and every time the output will come as changed=True. Choices:
|
|
Full name of interface, i.e. Ethernet1/1. |
|
Switchport mode trunk command to configure the interface as a Layer-2 trunk. |
|
List of allowed VLANs in a given trunk port. These are the only VLANs that will be configured on the trunk. The module would consider 1-4093 as the default range enabled if switchport mode is trunk. |
|
This option governs the `switchport trunk allowed vlan none` configuration negation of this command would consider 1-4093 as the default. This attribute does not ensure idempotency. Choices:
|
|
Native VLAN to be configured in trunk port. It is used as the trunk native VLAN ID. |
|
This option is used only with state parsed. The value of this option should be the output received from the NX-OS device by executing the command show running-config | section ^interface. The state parsed reads the configuration from |
|
The state of the configuration after module completion. Choices:
|
Notes
Note
Tested against NXOS 10.3(2) on CML
Unsupported for Cisco MDS
Examples
# Using merged
# Before state:
# -------------
#
# switch# show running-config | section interface
# interface Ethernet1/1
# interface Ethernet1/2
# switchport trunk native vlan 20
# interface mgmt0
# ip address dhcp
# ipv6 address auto-config
- name: Merge provided configuration with device configuration
cisco.nxos.nxos_l2_interfaces:
config:
- name: Ethernet1/1
trunk:
native_vlan: 10
allowed_vlans: 2,4,15
- name: Ethernet1/2
access:
vlan: 30
state: merged
# Task Output
# -----------
#
# before:
# - name: Loopback999
# - name: Ethernet1/2
# - name: mgmt0
# - name: Ethernet1/1
# commands:
# - interface Ethernet1/1
# - switchport trunk allowed vlan 2,4,15
# - switchport trunk native vlan 10
# - interface Ethernet1/2
# - switchport access vlan 30
# after:
# - name: Ethernet1/1
# trunk:
# allowed_vlans: 2,4,15
# native_vlan: 10
# - access:
# vlan: 30
# name: Ethernet1/2
# - name: mgmt0
# - name: Loopback999
# After state:
# ------------
#
# switch# show running-config | section interface
# interface Ethernet1/1
# switchport trunk native vlan 10
# switchport trunk allowed vlans 2,4,15
# interface Ethernet1/2
# switchport access vlan 30
# interface mgmt0
# ip address dhcp
# ipv6 address auto-config
# Using replaced
# Before state:
# -------------
#
# switch# show running-config | section interface
# interface Ethernet1/1
# switchport trunk native vlan 10
# switchport trunk allowed vlans 2,4,15
# interface Ethernet1/2
# switchport access vlan 30
# interface mgmt0
# ip address dhcp
# ipv6 address auto-config
- name: Replace device configuration of specified L2 interfaces with provided configuration.
cisco.nxos.nxos_l2_interfaces:
config:
- name: Ethernet1/1
trunk:
native_vlan: 20
allowed_vlans: 5-10, 15
state: replaced
# Task Output
# -----------
#
# before:
# - name: Ethernet1/1
# trunk:
# allowed_vlans: 2,4,15
# native_vlan: 10
# - access:
# vlan: 30
# name: Ethernet1/2
# - name: mgmt0
# commands:
# - interface Ethernet1/1
# - no switchport trunk native vlan
# - switchport trunk allowed vlan 5-10,15
# - switchport trunk native vlan 20
# after:
# - name: Ethernet1/1
# trunk:
# allowed_vlans: 5-10,15
# native_vlan: 20
# - access:
# vlan: 30
# name: Ethernet1/2
# - name: mgmt0
# After state:
# ------------
#
# switch# show running-config | section interface
# interface Ethernet1/1
# switchport trunk native vlan 20
# switchport trunk allowed vlan 5-10,15
# interface Ethernet1/2
# switchport trunk native vlan 20
# switchport mode trunk
# interface mgmt0
# ip address dhcp
# ipv6 address auto-config
# Using overridden
# Before state:
# -------------
#
# switch# show running-config | section interface
# interface Ethernet1/1
# switchport trunk native vlan 20
# switchport trunk allowed vlan 5-10,15
# interface Ethernet1/2
# switchport trunk native vlan 20
# switchport mode trunk
# interface mgmt0
# ip address dhcp
# ipv6 address auto-config
- name: Override device configuration with provided configuration.
cisco.nxos.nxos_l2_interfaces:
config:
- name: Ethernet1/2
access:
vlan: 30
state: overridden
# Task Output
# -----------
#
# before:
# - name: Ethernet1/1
# trunk:
# allowed_vlans: 5,6,7,8,9,10,15
# native_vlan: 20
# - access:
# vlan: 30
# name: Ethernet1/2
# - name: mgmt0
# commands:
# - interface Ethernet1/1
# - no switchport trunk allowed vlan
# - no switchport trunk native vlan
# after:
# - name: Ethernet1/1
# - access:
# vlan: 30
# name: Ethernet1/2
# - name: mgmt0
# After state:
# ------------
#
# switch# show running-config | section interface
# interface Ethernet1/1
# interface Ethernet1/2
# switchport access vlan 30
# interface mgmt0
# ip address dhcp
# ipv6 address auto-config
# Using deleted
# Before state:
# -------------
#
# switch# show running-config | section interface
# interface Ethernet1/1
# switchport trunk native vlan 10
# switchport trunk allowed vlan 2,4,15
# interface Ethernet1/2
# switchport access vlan 30
# interface mgmt0
# ip address dhcp
# ipv6 address auto-config
- name: Delete L2 attributes of given interfaces (Note This won't delete the interface
itself).
cisco.nxos.nxos_l2_interfaces:
config:
- name: Ethernet1/1
- name: Ethernet1/2
state: deleted
# Task Output
# -----------
#
# before:
# - name: Ethernet1/1
# trunk:
# allowed_vlans: 2,4,15
# native_vlan: 10
# - access:
# vlan: 30
# name: Ethernet1/2
# - name: mgmt0
# commands:
# - interface Ethernet1/1
# - no switchport trunk allowed vlan
# - no switchport trunk native vlan
# - interface Ethernet1/2
# - no switchport access vlan
# after:
# - name: Ethernet1/1
# - name: Ethernet1/2
# - name: mgmt0
# After state:
# ------------
#
# switch# show running-config | section interface
# interface Ethernet1/1
# interface Ethernet1/2
# interface mgmt0
# ip address dhcp
# ipv6 address auto-config
# Using rendered
- name: Render platform specific configuration lines (without connecting to the device)
cisco.nxos.nxos_l2_interfaces:
config:
- name: Ethernet1/1
trunk:
native_vlan: 10
allowed_vlans: 2,4,15
- name: Ethernet1/2
access:
vlan: 30
- name: Ethernet1/3
trunk:
native_vlan: 20
allowed_vlans: 5-10, 15
state: rendered
# Task Output
# -----------
#
# rendered:
# - interface Ethernet1/1
# - switchport trunk allowed vlan 2,4,15
# - switchport trunk native vlan 10
# - interface Ethernet1/2
# - switchport access vlan 30
# - interface Ethernet1/3
# - switchport trunk allowed vlan 5-10,15
# - switchport trunk native vlan 20
# Using parsed
# parsed.cfg
# ------------
#
# interface Ethernet1/800
# switchport access vlan 18
# switchport trunk allowed vlan 210
# interface Ethernet1/801
# switchport trunk allowed vlan 2,4,15
- name: Use parsed state to convert externally supplied config to structured format
cisco.nxos.nxos_l2_interfaces:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Task output
# -----------
#
# parsed:
# - name: Ethernet1/800
# access:
# vlan: 18
# trunk:
# allowed_vlans: "210"
# - name: Ethernet1/801
# trunk:
# allowed_vlans: "2,4,15"
# Using gathered
# Before state:
# -------------
#
# switch# sh running-config | section ^interface
# interface Ethernet1/1
# switchport access vlan 6
# switchport trunk allowed vlan 200
# interface Ethernet1/2
# switchport trunk native vlan 10
- name: Gather l2_interfaces facts from the device using nxos_l2_interfaces
cisco.nxos.nxos_l2_interfaces:
state: gathered
# Task output
# -----------
#
# gathered:
# - name: "Ethernet1/1"
# access:
# vlan: 6
# trunk:
# allowed_vlans: "200"
# - name: "Ethernet1/2"
# trunk:
# native_vlan: 10
# Using allowed_vlans_none
# Before state:
# -------------
#
# switch# show running-config | section interface
# interface Ethernet1/1
# switchport mode trunk
# switchport trunk allowed vlan 10-100
# interface Ethernet1/2
# switchport mode trunk
- name: Configure trunk interface to allow no VLANs (block all traffic)
cisco.nxos.nxos_l2_interfaces:
config:
- name: Ethernet1/1
trunk:
allowed_vlans_none: true
state: merged
# Task Output
# -----------
#
# before:
# - name: Ethernet1/1
# trunk:
# allowed_vlans: "10-100"
# - name: Ethernet1/2
# trunk:
# allowed_vlans: "1-4094"
# commands:
# - interface Ethernet1/1
# - switchport trunk allowed vlan none
# after:
# - name: Ethernet1/1
# trunk:
# allowed_vlans_none: true
# - name: Ethernet1/2
# trunk:
# allowed_vlans: "1-4094"
# After state:
# ------------
#
# switch# show running-config | section interface
# interface Ethernet1/1
# switchport mode trunk
# switchport trunk allowed vlan none
# interface Ethernet1/2
# switchport mode trunk
# Note: When allowed_vlans_none is not configured on a trunk interface,
# the module assumes the default allowed VLANs range of 1-4094.
# This is consistent with NX-OS default behavior where all VLANs are
# allowed on trunk ports unless explicitly restricted.
- name: Configure specific VLANs after removing none restriction
cisco.nxos.nxos_l2_interfaces:
config:
- name: Ethernet1/1
trunk:
allowed_vlans: "10,20,30"
- name: Ethernet1/2
trunk:
allowed_vlans_none: true
state: replaced
# Task Output
# -----------
#
# commands:
# - interface Ethernet1/1
# - switchport trunk allowed vlan 10,20,30
# - interface Ethernet1/2
# - switchport trunk allowed vlan none
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
|---|---|
The configuration as structured data after module completion. Returned: when changed Sample: |
|
The configuration as structured data prior to module invocation. Returned: always Sample: |
|
The set of commands pushed to the remote device. Returned: always Sample: |
|
Facts about the network resource gathered from the remote device as structured data. Returned: when state is Sample: |
|
The device native config provided in running_config option parsed into structured data as per module argspec. Returned: when state is Sample: |