eos_l3_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 3 interfaces on Arista EOS devices.
Parameters¶
| Parameter | Defaults / Choices | Comments |
|---|---|---|
| config list / elements=dict |
A dictionary of Layer 3 interface options | |
| config.ipv4 | List of IPv4 addresses to be set for the Layer 3 interface mentioned in I(name) option. | |
| config.ipv6 | List of IPv6 addresses to be set for the Layer 3 interface mentioned in I(name) option. | |
| config.name | Full name of the interface, i.e. Ethernet1. | |
| 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, gathered, rendered |
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) 'eos_l2_interfaces/eos_interfaces' should be used for preparing the interfaces, before applying L3 configurations using this module (eos_l3_interfaces).
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_l3_interfaces:
config:
- name: Ethernet1
ipv4:
- address: 198.51.100.14/24
- name: Ethernet2
ipv4:
- address: 203.0.113.27/24
state: merged
# Task Output
# -----------
#
# before:
# - name: Ethernet1
# - name: Ethernet2
# - ipv4:
# - address: dhcp
# name: Management1
# commands:
# - interface Ethernet1
# - ip address 198.51.100.14/24
# - interface Ethernet2
# - ip address 203.0.113.27/24
# after:
# - ipv4:
# - address: 198.51.100.14/24
# name: Ethernet1
# - ipv4:
# - address: 203.0.113.27/24
# name: Ethernet2
# - ipv4:
# - address: dhcp
# name: Management1
# After state:
# ------------
#
# test#show running-config | section interface
# interface Ethernet1
# ip address 198.51.100.14/24
# !
# interface Ethernet2
# description Configured by Ansible
# shutdown
# ip address 203.0.113.27/24
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
# Using overridden
# Before state:
# -------------
#
# test#show running-config | section interface
# interface Ethernet1
# ip address 198.51.100.14/24
# !
# interface Ethernet2
# ip address 203.0.113.27/24
# !
# 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_l3_interfaces:
config:
- name: Ethernet1
ipv6:
- address: 2001:db8:feed::1/96
- name: Ethernet2
ipv4:
- address: 203.0.113.27/24
- ipv4:
- address: dhcp
name: Management1
state: overridden
# Task Output
# -----------
#
# before:
# - ipv4:
# - address: 198.51.100.14/24
# name: Ethernet1
# - ipv4:
# - address: 203.0.113.27/24
# name: Ethernet2
# - ipv4:
# - address: dhcp
# name: Management1
# commands:
# - interface Ethernet1
# - ipv6 address 2001:db8:feed::1/96
# - no ip address
# after:
# - ipv6:
# - address: 2001:db8:feed::1/96
# name: Ethernet1
# - ipv4:
# - address: 203.0.113.27/24
# name: Ethernet2
# - ipv4:
# - address: dhcp
# name: Management1
# After state:
# ------------
#
# test#show running-config | section interface
# interface Ethernet1
# ipv6 address 2001:db8:feed::1/96
# !
# interface Ethernet2
# ip address 203.0.113.27/24
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
# Using replaced
# Before state:
# -------------
#
# test#show running-config | section interface
# interface Ethernet1
# ipv6 address 2001:db8:feed::1/96
# !
# interface Ethernet2
# ip address 203.0.113.27/24
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
- name: Replace device configuration of specified L2 interfaces with provided configuration.
arista.eos.eos_l3_interfaces:
config:
- name: Ethernet2
ipv4:
- address: 203.0.113.27/24
state: replaced
# Task Output
# -----------
#
# before:
# - ipv6:
# - address: 2001:db8:feed::1/96
# name: Ethernet1
# - ipv4:
# - address: 203.0.113.27/24
# name: Ethernet2
# - ipv4:
# - address: dhcp
# name: Management1
# commands:
# - interface Ethernet2
# - ip address 203.0.113.28/24
# after:
# - ipv6:
# - address: 2001:db8:feed::1/96
# name: Ethernet1
# - ipv4:
# - address: 203.0.113.28/24
# name: Ethernet2
# - ipv4:
# - address: dhcp
# name: Management1
# After state:
# ------------
#
# test#show running-config | section interface
# interface Ethernet1
# ipv6 address 2001:db8:feed::1/96
# !
# interface Ethernet2
# ip address 203.0.113.28/24
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
# Using deleted
# Before state:
# -------------
#
# test#show running-config | section interface
# interface Ethernet1
# ipv6 address 2001:db8:feed::1/96
# !
# interface Ethernet2
# ip address 203.0.113.28/24
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
- name: Delete L3 attributes of given interfaces.
arista.eos.eos_l3_interfaces:
config:
- name: Ethernet1
- name: Ethernet2
state: deleted
# Task Output
# -----------
#
# before:
# - ipv6:
# - address: 2001:db8:feed::1/96
# name: Ethernet1
# - ipv4:
# - address: 203.0.113.28/24
# name: Ethernet2
# - ipv4:
# - address: dhcp
# name: Management1
# commands:
# - interface Ethernet1
# - no ipv6 address 2001:db8:feed::1/96
# - interface Ethernet2
# - no ip address
# after:
# - name: Ethernet1
# - name: Ethernet2
# - ipv4:
# - address: dhcp
# name: Management1
# After state:
# ------------
#
# test#show running-config | section interface
# interface Ethernet1
# !
# interface Ethernet2
# !
# interface Management1
# ip address dhcp
# dhcp client accept default-route
# Using Parsed
# File: parsed.cfg
# ----------------
#
# veos#show running-config | section interface
# interface Ethernet1
# ip address 198.51.100.14/24
# !
# interface Ethernet2
# ip address 203.0.113.27/24
# !
- name: Use parsed to convert native configs to structured data
arista.eos.interfaces:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Module Execution Result:
# ------------------------
#
# parsed:
# - name: Ethernet1
# ipv4:
# - address: 198.51.100.14/24
# - name: Ethernet2
# ipv4:
# - address: 203.0.113.27/24
# Using rendered:
- name: Use Rendered to convert the structured data to native config
arista.eos.eos_l3_interfaces:
config:
- name: Ethernet1
ipv4:
- address: 198.51.100.14/24
- name: Ethernet2
ipv4:
- address: 203.0.113.27/24
state: rendered
# Module Execution Result:
# ------------------------
#
# rendered:
# - interface Ethernet1
# - ip address 198.51.100.14/24
# - interface Ethernet2
# - ip address 203.0.113.27/24
# using gathered:
# Before state:
# -------------
#
# test#show running-config | section interface
# interface Ethernet1
# ip address 198.51.100.14/24
# !
# interface Ethernet2
# ip address 203.0.113.27/24
# !
- name: Gather l3 interfaces facts from the device
arista.eos.l3_interfaces:
state: gathered
# Module Execution Result:
# ------------------------
#
# gathered:
# - name: Ethernet1
# ipv4:
# - address: 198.51.100.14/24
# - name: Ethernet2
# ipv4:
# - address: 203.0.113.27/24
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)