Note
This plugin is part of the cisco.iosxr collection.
To install it use: ansible-galaxy collection install cisco.iosxr
.
To use it in a playbook, specify: cisco.iosxr.iosxr_l2_interfaces
.
New in version 1.0.0: of cisco.iosxr
Note
This module has a corresponding action plugin.
Parameter | Choices/Defaults | Comments | ||
---|---|---|---|---|
config list / elements=dictionary | A dictionary of Layer-2 interface options | |||
l2protocol list / elements=dictionary | Configures Layer 2 protocol tunneling and protocol data unit (PDU) filtering on an interface. | |||
cdp string |
| Cisco Discovery Protocol (CDP) tunneling and data unit parameters. | ||
pvst string |
| Configures the per-VLAN Spanning Tree Protocol (PVST) tunneling and data unit parameters. | ||
stp string |
| Spanning Tree Protocol (STP) tunneling and data unit parameters. | ||
vtp string |
| VLAN Trunk Protocol (VTP) tunneling and data unit parameters. | ||
l2transport boolean |
| Switchport mode access command to configure the interface as a layer 2 access | ||
name string / required | Full name of the interface/sub-interface excluding any logical unit number, e.g. GigabitEthernet0/0/0/1 or GigabitEthernet0/0/0/1.100. | |||
native_vlan integer | Configure a native VLAN ID for the trunk | |||
propagate boolean |
| Propagate Layer 2 transport events. Note that it will work only when the l2tranport option is set to TRUE | ||
q_vlan list / elements=integer | 802.1Q VLAN configuration. Note that it can accept either 2 VLAN IDs when configuring Q-in-Q VLAN, or it will accept 1 VLAN ID and 'any' as input list when configuring Q-in-any vlan as input. Note, that this option is valid only with respect to Sub-Interface and is not valid when configuring for Interface. | |||
running_config string | This option is used only with state parsed. The value of this option should be the output received from the IOS-XR device by executing the command show running-config interface. The state parsed reads the configuration from running_config option and transforms it into Ansible structured data as per the resource module's argspec and the value is then returned in the parsed key within the result. | |||
state string |
| The state of the configuration after module completion |
Note
network_cli
. See the IOS-XR Platform Options.# Using merged # # Before state: # ------------- # # viosxr#show running-config interface # interface GigabitEthernet0/0/0/3 # description Ansible Network # vrf custB # ipv4 address 10.10.0.2 255.255.255.0 # duplex half # shutdown # ! # interface GigabitEthernet0/0/0/4 # description Test description # ! - name: Merge provided configuration with device configuration cisco.iosxr.iosxr_l2_interfaces: config: - name: GigabitEthernet0/0/0/3 native_vlan: 20 - name: GigabitEthernet0/0/0/4 native_vlan: 40 l2transport: true l2protocol: - stp: tunnel - name: GigabitEthernet0/0/0/3.900 l2transport: true q_vlan: - 20 - 40 state: merged # After state: # ------------ # # viosxr#show running-config interface # interface GigabitEthernet0/0/0/3 # description Ansible Network # vrf custB # ipv4 address 10.10.0.2 255.255.255.0 # duplex half # shutdown # dot1q native vlan 20 # ! # interface GigabitEthernet0/0/0/4 # description Test description # dot1q native vlan 10 # l2transport # l2protocol stp tunnel # ! # ! # interface GigabitEthernet0/0/0/3.900 l2transport # dot1q vlan 20 40 # ! # Using replaced # # Before state: # ------------- # # viosxr#show running-config interface # interface GigabitEthernet0/0/0/3 # description Ansible Network # vrf custB # ipv4 address 10.10.0.2 255.255.255.0 # duplex half # shutdown # dot1q native vlan 20 # ! # interface GigabitEthernet0/0/0/4 # description Test description # dot1q native vlan 10 # l2transport # l2protocol stp tunnel # ! # ! # interface GigabitEthernet0/0/0/3.900 l2transport # dot1q vlan 20 40 # ! - name: Replaces device configuration of listed interfaces with provided configuration cisco.iosxr.iosxr_l2_interfaces: config: - name: GigabitEthernet0/0/0/4 native_vlan: 40 l2transport: true l2protocol: - stp: forward - name: GigabitEthernet0/0/0/3.900 q_vlan: - 20 - any state: replaced # After state: # ------------- # # viosxr#show running-config interface # interface GigabitEthernet0/0/0/3 # description Ansible Network # vrf custB # ipv4 address 10.10.0.2 255.255.255.0 # duplex half # shutdown # dot1q native vlan 20 # ! # interface GigabitEthernet0/0/0/4 # description Test description # dot1q native vlan 40 # l2transport # l2protocol stp forward # ! # ! # interface GigabitEthernet0/0/0/3.900 l2transport # dot1q vlan 20 any # ! # Using overridden # # Before state: # ------------- # # viosxr#show running-config interface # interface GigabitEthernet0/0/0/3 # description Ansible Network # vrf custB # ipv4 address 10.10.0.2 255.255.255.0 # duplex half # shutdown # dot1q native vlan 20 # ! # interface GigabitEthernet0/0/0/4 # description Test description # dot1q native vlan 10 # l2transport # l2protocol stp tunnel # ! # ! # interface GigabitEthernet0/0/0/3.900 l2transport # dot1q vlan 20 40 # ! - name: Override device configuration of all interfaces with provided configuration cisco.iosxr.iosxr_l2_interfaces: config: - name: GigabitEthernet0/0/0/4 native_vlan: 40 l2transport: true l2protocol: - stp: forward - name: GigabitEthernet0/0/0/3.900 q_vlan: - 20 - any state: overridden # After state: # ------------- # # viosxr#show running-config interface # interface GigabitEthernet0/0/0/3 # description Ansible Network # vrf custB # ipv4 address 10.10.0.2 255.255.255.0 # duplex half # shutdown # ! # interface GigabitEthernet0/0/0/4 # description Test description # dot1q native vlan 40 # l2transport # l2protocol stp forward # ! # ! # interface GigabitEthernet0/0/0/3.900 # dot1q vlan 20 any # ! # Using deleted # # Before state: # ------------- # # viosxr#show running-config interface # interface GigabitEthernet0/0/0/3 # description Ansible Network # vrf custB # ipv4 address 10.10.0.2 255.255.255.0 # duplex half # shutdown # dot1q native vlan 20 # ! # interface GigabitEthernet0/0/0/4 # description Test description # dot1q native vlan 10 # l2transport # l2protocol stp tunnel # ! # ! # - name: "Delete L2 attributes of given interfaces (Note: This won't delete the interface itself)" cisco.iosxr.iosxr_l2_interfaces: config: - name: GigabitEthernet0/0/0/4 state: deleted # After state: # ------------ # # viosxr#show running-config interface # interface GigabitEthernet0/0/0/3 # description Ansible Network # vrf custB # ipv4 address 10.10.0.2 255.255.255.0 # duplex half # shutdown # dot1q native vlan 20 # ! # interface GigabitEthernet0/0/0/4 # description Test description # ! # Using Deleted without any config passed # "(NOTE: This will delete all of configured resource module attributes from each configured interface)" # # Before state: # ------------- # # viosxr#show running-config interface # interface GigabitEthernet0/0/0/3 # description Ansible Network # vrf custB # ipv4 address 10.10.0.2 255.255.255.0 # duplex half # shutdown # dot1q native vlan 20 # ! # interface GigabitEthernet0/0/0/4 # description Test description # dot1q native vlan 10 # l2transport # l2protocol stp tunnel # ! # ! - name: "Delete L2 attributes of all interfaces (Note: This won't delete the interface itself)" cisco.iosxr.iosxr_l2_interfaces: state: deleted # After state: # ------------ # # viosxr#show running-config interface # interface GigabitEthernet0/0/0/3 # description Ansible Network # vrf custB # ipv4 address 10.10.0.2 255.255.255.0 # duplex half # shutdown # ! # interface GigabitEthernet0/0/0/4 # description Test description # ! # Using parsed # parsed.cfg # ------------ # # interface Loopback888 # description test for ansible # shutdown # ! # interface MgmtEth0/0/CPU0/0 # ipv4 address 10.8.38.70 255.255.255.0 # ! # interface GigabitEthernet0/0/0/0 # description Configured and Merged by Ansible-Network # mtu 110 # ipv4 address 172.31.1.1 255.255.255.0 # duplex half # ! # interface GigabitEthernet0/0/0/1 # dot1q native vlan 10 # l2transport # l2protocol cdp forward # l2protocol pvst tunnel # propagate remote-status # ! # ! # interface GigabitEthernet0/0/0/3 # shutdown # ! # interface GigabitEthernet0/0/0/3.900 # encapsulation dot1q 20 second-dot1q 40 # ! # interface GigabitEthernet0/0/0/4 # shutdown # dot1q native vlan 40 # ! - name: Convert L2 interfaces config to argspec without connecting to the appliance cisco.iosxr.iosxr_l2_interfaces: running_config: "{{ lookup('file', './parsed.cfg') }}" state: parsed # Task Output (redacted) # ----------------------- # "parsed": [ # { # "name": "GigabitEthernet0/0/0/0" # }, # { # "l2protocol": [ # { # "cdp": "forward" # }, # { # "pvst": "tunnel" # } # ], # "l2transport": true, # "name": "GigabitEthernet0/0/0/1", # "native_vlan": 10, # "propagate": true # }, # { # "name": "GigabitEthernet0/0/0/3" # }, # { # "name": "GigabitEthernet0/0/0/3.900", # "q_vlan": [ # 20, # 40 # ] # }, # { # "name": "GigabitEthernet0/0/0/4", # "native_vlan": 40 # } # ] # Using rendered - name: Render platform specific commands from task input using rendered state cisco.iosxr.iosxr_l2_interfaces: config: - name: GigabitEthernet0/0/0/1 native_vlan: 10 l2transport: true l2protocol: - pvst: tunnel - cdp: forward propagate: true - name: GigabitEthernet0/0/0/3.900 q_vlan: - 20 - 40 - name: GigabitEthernet0/0/0/4 native_vlan: 40 state: rendered # Task Output (redacted) # ----------------------- # "rendered": [ # "interface GigabitEthernet0/0/0/1", # "dot1q native vlan 10", # "l2transport l2protocol pvst tunnel", # "l2transport l2protocol cdp forward", # "l2transport propagate remote-status", # "interface GigabitEthernet0/0/0/3.900", # "dot1q vlan 20 40", # "interface GigabitEthernet0/0/0/4", # "dot1q native vlan 40" # ] # Using gathered # Before state: # ------------ # # RP/0/0/CPU0:an-iosxr-02#show running-config interface # interface Loopback888 # description test for ansible # shutdown # ! # interface MgmtEth0/0/CPU0/0 # ipv4 address 10.8.38.70 255.255.255.0 # ! # interface GigabitEthernet0/0/0/0 # description Configured and Merged by Ansible-Network # mtu 110 # ipv4 address 172.31.1.1 255.255.255.0 # duplex half # ! # interface GigabitEthernet0/0/0/1 # dot1q native vlan 10 # l2transport # l2protocol cdp forward # l2protocol pvst tunnel # propagate remote-status # ! # ! # interface GigabitEthernet0/0/0/3 # shutdown # ! # interface GigabitEthernet0/0/0/3.900 # encapsulation dot1q 20 second-dot1q 40 # ! # interface GigabitEthernet0/0/0/4 # shutdown # dot1q native vlan 40 # ! - name: Gather IOSXR l2 interfaces as in given arguments cisco.iosxr.iosxr_l2_interfaces: config: state: gathered # Task Output (redacted) # ----------------------- # # "gathered": [ # { # "name": "GigabitEthernet0/0/0/0" # }, # { # "l2protocol": [ # { # "cdp": "forward" # }, # { # "pvst": "tunnel" # } # ], # "l2transport": true, # "name": "GigabitEthernet0/0/0/1", # "native_vlan": 10, # "propagate": true # }, # { # "name": "GigabitEthernet0/0/0/3" # }, # { # "name": "GigabitEthernet0/0/0/3.900", # "q_vlan": [ # 20, # 40 # ] # }, # { # "name": "GigabitEthernet0/0/0/4", # "native_vlan": 40 # } # ] # After state: # ------------ # # RP/0/0/CPU0:an-iosxr-02#show running-config interface # interface Loopback888 # description test for ansible # shutdown # ! # interface MgmtEth0/0/CPU0/0 # ipv4 address 10.8.38.70 255.255.255.0 # ! # interface GigabitEthernet0/0/0/0 # description Configured and Merged by Ansible-Network # mtu 110 # ipv4 address 172.31.1.1 255.255.255.0 # duplex half # ! # interface GigabitEthernet0/0/0/1 # dot1q native vlan 10 # l2transport # l2protocol cdp forward # l2protocol pvst tunnel # propagate remote-status # ! # ! # interface GigabitEthernet0/0/0/3 # shutdown # ! # interface GigabitEthernet0/0/0/3.900 # encapsulation dot1q 20 second-dot1q 40 # ! # interface GigabitEthernet0/0/0/4 # shutdown # dot1q native vlan 40 # !
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
after list / elements=string | when changed | The configuration as structured data after module completion. Sample: The configuration returned will always be in the same format of the parameters above. |
before list / elements=string | always | The configuration as structured data prior to module invocation. Sample: The configuration returned will always be in the same format of the parameters above. |
commands list / elements=string | always | The set of commands pushed to the remote device Sample: ['interface GigabitEthernet0/0/0/2', 'l2transport l2protocol pvst tunnel'] |
© 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/cisco/iosxr/iosxr_l2_interfaces_module.html