eos_l2_interfaces¶
Collection Note
This module is part of the arista.eos collection. To install the collection, use:
Added in version1.0.0.
Synopsis¶
- This module provides declarative management of Layer-2 interface on Arista EOS devices.
Parameters¶
| Parameter | Defaults / Choices | Comments |
|---|---|---|
| config list / elements=dict |
A dictionary of Layer-2 interface options | |
| config.access | Switchport mode access command to configure the interface as a layer 2 access. | |
| config.mode | Choices: access, trunk | 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. |
| config.name | Full name of interface, e.g. Ethernet1. | |
| config.trunk | Switchport mode trunk command to configure the interface as a Layer 2 trunk. | |
| running_config str |
This option is used only with state I(parsed). The value of this option should be the output received from the EOS device by executing the command B(show running-config | section ^interface). The state I(parsed) reads the configuration from C(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 I(parsed) key within the result. |
|
| state str |
Default: merged Choices: merged, replaced, overridden, deleted, parsed, rendered, gathered |
The state of the configuration after module completion |
Notes¶
Note
- Tested against Arista EOS 4.24.6F
- This module works with connection C(network_cli). See U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_eos.html)
Examples¶
# Using merged
# Before state:
# -------------
#
# test#show running-config | section interface
# interface Ethernet1
# !
# interface Ethernet2
# description Configured by Ansible
# shutdown
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
- name: Merge provided configuration with device configuration.
arista.eos.eos_l2_interfaces:
config:
- name: Ethernet1
mode: trunk
trunk:
native_vlan: 10
- name: Ethernet2
mode: access
access:
vlan: 30
state: merged
# Task Output
# -----------
#
# before:
# - name: Ethernet1
# - name: Ethernet2
# - name: Management1
# commands:
# - interface Ethernet1
# - switchport mode trunk
# - switchport trunk native vlan 10
# - interface Ethernet2
# - switchport mode access
# - switchport access vlan 30
# after:
# - mode: trunk
# name: Ethernet1
# trunk:
# native_vlan: 10
# - access:
# vlan: 30
# name: Ethernet2
# - name: Management1
# After state:
# ------------
#
# test#show running-config | section interface
# interface Ethernet1
# switchport trunk native vlan 10
# switchport mode trunk
# !
# interface Ethernet2
# description Configured by Ansible
# shutdown
# switchport access vlan 30
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
# Using replaced
# Before state:
# -------------
#
# test#show running-config | section interface
# interface Ethernet1
# switchport trunk native vlan 10
# switchport mode trunk
# !
# interface Ethernet2
# description Configured by Ansible
# shutdown
# switchport access vlan 30
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
- name: Replace device configuration of specified L2 interfaces with provided configuration.
arista.eos.eos_l2_interfaces:
config:
- name: Ethernet1
mode: trunk
trunk:
native_vlan: 20
trunk_allowed_vlans: 5-10, 15
state: replaced
# Task Output
# -----------
#
# before:
# - mode: trunk
# name: Ethernet1
# trunk:
# native_vlan: 10
# - access:
# vlan: 30
# name: Ethernet2
# - name: Management1
# commands:
# - interface Ethernet1
# - switchport trunk native vlan 20
# - switchport trunk allowed vlan 10,15,5,6,7,8,9
# after:
# - mode: trunk
# name: Ethernet1
# trunk:
# native_vlan: 20
# trunk_allowed_vlans:
# - 5-10
# - '15'
# - access:
# vlan: 30
# name: Ethernet2
# - name: Management1
# After state:
# ------------
#
# test#show running-config | section interface
# interface Ethernet1
# switchport trunk native vlan 20
# switchport trunk allowed vlan 5-10,15
# switchport mode trunk
# !
# interface Ethernet2
# description Configured by Ansible
# shutdown
# switchport access vlan 30
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
# Using overridden
# Before state:
# -------------
#
# test#show running-config | section interface
# interface Ethernet1
# switchport trunk native vlan 20
# switchport trunk allowed vlan 5-10,15
# switchport mode trunk
# !
# interface Ethernet2
# description Configured by Ansible
# shutdown
# switchport access vlan 30
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
- name: Override device configuration of all L2 interfaces on device with provided
configuration.
arista.eos.eos_l2_interfaces:
config:
- name: Ethernet2
mode: access
access:
vlan: 30
state: overridden
# Task Output
# -----------
#
# before:
# - mode: trunk
# name: Ethernet1
# trunk:
# native_vlan: 20
# trunk_allowed_vlans:
# - 5-10
# - '15'
# - access:
# vlan: 30
# name: Ethernet2
# - name: Management1
# commands:
# - interface Ethernet1
# - no switchport mode
# - no switchport trunk allowed vlan
# - no switchport trunk native vlan
# - interface Ethernet2
# - switchport mode access
# after:
# - name: Ethernet1
# - access:
# vlan: 30
# name: Ethernet2
# - name: Management1
# After state:
# ------------
#
# test#show running-config | section interface
# interface Ethernet1
# !
# interface Ethernet2
# description Configured by Ansible
# shutdown
# switchport access vlan 30
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
# Using deleted
# Before state:
# -------------
#
# test#show running-config | section interface
# interface Ethernet1
# !
# interface Ethernet2
# description Configured by Ansible
# shutdown
# switchport access vlan 30
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
- name: Delete EOS L2 interfaces as in given arguments.
arista.eos.eos_l2_interfaces:
config:
- name: Ethernet1
- name: Ethernet2
state: deleted
# Task Output
# -----------
#
# before:
# - name: Ethernet1
# - access:
# vlan: 30
# name: Ethernet2
# - name: Management1
# commands:
# - interface Ethernet2
# - no switchport access vlan
# after:
# - name: Ethernet1
# - name: Ethernet2
# - name: Management1
# After state:
# ------------
#
# test#show running-config | section interface
# interface Ethernet1
# !
# interface Ethernet2
# description Configured by Ansible
# shutdown
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
# using rendered
- name: Use Rendered to convert the structured data to native config
arista.eos.eos_l2_interfaces:
config:
- name: Ethernet1
mode: trunk
trunk:
native_vlan: 10
- name: Ethernet2
mode: access
access:
vlan: 30
state: rendered
# Module Execution Result:
# ------------------------
#
# rendered:
# - interface Ethernet1
# - switchport mode trunk
# - switchport trunk native vlan 10
# - interface Ethernet2
# - switchport mode access
# - switchport access vlan 30
# Using parsed
# File: parsed.cfg
# ----------------
#
# interface Ethernet1
# switchport trunk native vlan 10
# switchport mode trunk
# !
# interface Ethernet2
# switchport access vlan 30
# !
- name: Parse the commands for provided configuration
arista.eos.l2_interfaces:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Module Execution Result:
# ------------------------
#
# parsed:
# - name: Ethernet1
# mode: trunk
# trunk:
# native_vlan: 10
# - name: Ethernet2
# mode: access
# access:
# vlan: 30
# Using gathered
# Before state:
# -------------
#
# veos#show running-config | section interface
# interface Ethernet1
# switchport trunk native vlan 10
# switchport mode trunk
# !
# interface Ethernet2
# switchport access vlan 30
# !
- name: Gather interfaces facts from the device
arista.eos.l2_interfaces:
state: gathered
# Module Execution Result:
# ------------------------
#
# gathered:
# - name: Ethernet1
# mode: trunk
# trunk:
# native_vlan: 10
# - name: Ethernet2
# mode: access
# access:
# vlan: 30
Return Values¶
| Key | Data Type | Description | Returned |
|---|---|---|---|
| after | dict | The resulting configuration after module execution. | when changed |
| before | dict | The configuration prior to the module execution. | when I(state) is C(merged), C(replaced), C(overridden), C(deleted) or C(purged) |
| commands | list | The set of commands pushed to the remote device. | when I(state) is C(merged), C(replaced), C(overridden), C(deleted) or C(purged) |
| gathered | list | Facts about the network resource gathered from the remote device as structured data. | when I(state) is C(gathered) |
| parsed | list | The device native config provided in I(running_config) option parsed into structured data as per module argspec. | when I(state) is C(parsed) |
| rendered | list | The provided configuration in the task rendered in device-native format (offline). | when I(state) is C(rendered) |
Authors¶
- Nathaniel Case (@qalthos)