arista.eos.eos_l3_interfaces – L3 interfaces resource module

From Get docs
Ansible/docs/2.11/collections/arista/eos/eos l3 interfaces module


arista.eos.eos_l3_interfaces – L3 interfaces resource module

Note

This plugin is part of the arista.eos collection (version 1.3.0).

To install it use: ansible-galaxy collection install arista.eos.

To use it in a playbook, specify: arista.eos.eos_l3_interfaces.


New in version 1.0.0: of arista.eos


Synopsis

  • This module provides declarative management of Layer 3 interfaces on Arista EOS devices.

Note

This module has a corresponding action plugin.


Parameters

Parameter Choices/Defaults Comments

config

list / elements=dictionary

A dictionary of Layer 3 interface options

ipv4

list / elements=dictionary

List of IPv4 addresses to be set for the Layer 3 interface mentioned in name option.

address

string

IPv4 address to be set in the format / eg. 192.0.2.1/24, or dhcp to query DHCP for an IP address.

secondary

boolean

  • no
  • yes

Whether or not this address is a secondary address.

ipv6

list / elements=dictionary

List of IPv6 addresses to be set for the Layer 3 interface mentioned in name option.

address

string

IPv6 address to be set in the address format is / eg. 2001:db8:2201:1::1/64 or auto-config to use SLAAC to chose an address.

name

string / required

Full name of the interface, i.e. Ethernet1.

running_config

string

This option is used only with state parsed.

The value of this option should be the output received from the EOS device by executing the command show running-config | section ^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

  • merged

  • replaced
  • overridden
  • deleted
  • parsed
  • gathered
  • rendered

The state of the configuration after module completion



Notes

Note

  • Tested against Arista EOS 4.20.10M
  • This module works with connection network_cli. See the EOS Platform Options. ‘eos_l2_interfaces/eos_interfaces’ should be used for preparing the interfaces , before applying L3 configurations using this module (eos_l3_interfaces).


Examples

# Using deleted

# Before state:
# -------------
#
# veos#show running-config | section interface
# interface Ethernet1
#    ip address 192.0.2.12/24
# !
# interface Ethernet2
#    ipv6 address 2001:db8::1/64
# !
# interface Management1
#    ip address dhcp
#    ipv6 address auto-config

- name: Delete L3 attributes of given interfaces.
  arista.eos.eos_l3_interfaces:
    config:
    - name: Ethernet1
    - name: Ethernet2
    state: deleted

# After state:
# ------------
#
# veos#show running-config | section interface
# interface Ethernet1
# !
# interface Ethernet2
# !
# interface Management1
#    ip address dhcp
#    ipv6 address auto-config


# Using merged

# Before state:
# -------------
#
# veos#show running-config | section interface
# interface Ethernet1
#    ip address 192.0.2.12/24
# !
# interface Ethernet2
#    ipv6 address 2001:db8::1/64
# !
# interface Management1
#    ip address dhcp
#    ipv6 address auto-config

- 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

# After state:
# ------------
#
# veos#show running-config | section interface
# interface Ethernet1
#    ip address 198.51.100.14/24
# !
# interface Ethernet2
#    ip address 203.0.113.27/24
#    ipv6 address 2001:db8::1/64
# !
# interface Management1
#    ip address dhcp
#    ipv6 address auto-config


# Using overridden

# Before state:
# -------------
#
# veos#show running-config | section interface
# interface Ethernet1
#    ip address 192.0.2.12/24
# !
# interface Ethernet2
#    ipv6 address 2001:db8::1/64
# !
# interface Management1
#    ip address dhcp
#    ipv6 address auto-config

- 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: Management1
      ipv4:
      - address: dhcp
    ipv6: auto-config
    state: overridden

# After state:
# ------------
#
# veos#show running-config | section interface
# interface Ethernet1
#    ipv6 address 2001:db8:feed::1/96
# !
# interface Ethernet2
# !
# interface Management1
#    ip address dhcp
#    ipv6 address auto-config


# Using replaced

# Before state:
# -------------
#
# veos#show running-config | section interface
# interface Ethernet1
#    ip address 192.0.2.12/24
# !
# interface Ethernet2
#    ipv6 address 2001:db8::1/64
# !
# interface Management1
#    ip address dhcp
#    ipv6 address auto-config

- 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

# After state:
# ------------
#
# veos#show running-config | section interface
# interface Ethernet1
#    ip address 192.0.2.12/24
# !
# interface Ethernet2
#    ip address 203.0.113.27/24
# !
# interface Management1
#    ip address dhcp
#    ipv6 address auto-config

# Using parsed:

# 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

# Output:

# 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

# Output
# ------------
#rendered:
#   - "interface Ethernet1"
#   - "ip address 198.51.100.14/24"
#   - "interface Ethernet2"
#   - "ip address 203.0.113.27/24"

# using gathered:

# Native COnfig:
# 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: Gather l3 interfaces facts from the device
  arista.eos.l3_interfaces:
    state: gathered

#    gathered:
#      - name: Ethernet1
#        ipv4:
#          - address: 198.51.100.14/24
#      - name: Ethernet2
#        ipv4:
#          - address: 203.0.113.27/24

Return Values

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 Ethernet2', 'ip address 192.0.2.12/24']




Authors

  • Nathaniel Case (@qalthos)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/arista/eos/eos_l3_interfaces_module.html