Skip to content

eos_ospfv3

Collection Note

This module is part of the arista.eos collection. To install the collection, use:

ansible-galaxy collection install arista.eos
Added in version 1.1.0.

Synopsis

  • This module configures and manages the attributes of ospfv3 on Arista EOS platforms.

Parameters

Parameter Defaults / Choices Comments
config
dict
A list of configurations for ospfv3.
config.processes A list of dictionary specifying the ospfv3 processes.
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 ospfv3).
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: deleted, merged, overridden, replaced, gathered, rendered, parsed
The state the configuration should be left in.

Notes

Note

  • Tested against Arista EOS 4.24.6F
  • This module works with connection C(network_cli). See the L(EOS Platform Options,../network/user_guide/platform_eos.html).

Examples

# Using merged

# Before state:
# -------------
# veos#show running-config | section ospfv3
# veos#

- name: Merge the provided configuration with the existing running configuration
  arista.eos.eos_ospfv3:
    config:
      processes:
        - address_family:
            - timers:
                lsa: 22
              graceful_restart:
                grace_period: 35
              afi: "ipv6"
          timers:
            pacing: 55
          fips_restrictions: true
          router_id: "2.2.2.2"
          vrf: "vrfmerge"
    state: merged


# Task output:
# ------------
# before: {}
#
# commands:
# - router ospfv3 vrf vrfmerge
# - address-family ipv6
# - graceful-restart grace-period 35
# - timers lsa arrival 22
# - exit
# - timers pacing flood 55
# - fips restrictions
# - router-id 2.2.2.2
# - exit
#
# after:
#     processes:
#     - address_family:
#       - afi: ipv6
#         fips_restrictions: true
#         graceful_restart:
#           grace_period: 35
#       fips_restrictions: true
#       router_id: 2.2.2.2
#       timers:
#         pacing: 55
#       vrf: vrfmerge

# After state:
# ------------
# veos#show running-config | section ospfv3
# router ospfv3 vrf vrfmerge
#    router-id 2.2.2.2
# test
#    fips restrictions
#    timers pacing flood 55
#    !
#    address-family ipv6
#       fips restrictions
#       timers lsa arrival 22
#       graceful-restart grace-period 35

# using replaced

# Before state:
# -------------
# veos#show running-config | section ospfv3
# router ospfv3
#    fips restrictions
#    area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=
# !
# router ospfv3 vrf vrfmerge
#    router-id 2.2.2.2
#    fips restrictions
#    timers pacing flood 55
#    !
#    address-family ipv6
#       fips restrictions
#       timers lsa arrival 22
#       graceful-restart grace-period 35

- name: Replace a section of running config with provided config
  arista.eos.eos_ospfv3:
    config:
      processes:
        - areas:
            - area_id: "0.0.0.0"
              encryption:
                spi: 43
                encryption: "null"
                algorithm: "md5"
                encrypt_key: false
                passphrase: "7hl8FV3lZ6H1mAKpjL47hQ=="
          vrf: "default"
          address_family:
            - afi: "ipv4"
              router_id: "7.1.1.1"
    state: replaced

# Task output:
# ------------
# before:
#     processes:
#     - areas:
#       - area_id: 0.0.0.0
#         encryption:
#           algorithm: md5
#           encryption: 'null'
#           hidden_key: true
#           passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
#           spi: 43
#       fips_restrictions: true
#       vrf: default
#     - address_family:
#       - afi: ipv6
#         fips_restrictions: true
#         graceful_restart:
#           grace_period: 35
#       fips_restrictions: true
#       router_id: 2.2.2.2
#       timers:
#         pacing: 55
#       vrf: vrfmerge
#
# commands:
# - router ospfv3 vrf vrfmerge
# - address-family ipv6
# - no fips restrictions
# - no graceful-restart
# - no timers lsa arrival 22
# - area 0.0.0.3 range 10.1.2.2/24 advertise
# - area 0.0.0.3 range 60.1.1.1 255.255.0.0 cost 30
# - exit
# - passive-interface default
# - no router-id
# - no fips restrictions
# - no timers pacing flood 55
# - exit
#
# after:
#     processes:
#     - areas:
#       - area_id: 0.0.0.0
#         encryption:
#           algorithm: md5
#           encryption: 'null'
#           hidden_key: true
#           passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
#           spi: 43
#       vrf: default
#     - address_family:
#       - afi: ipv6
#         areas:
#         - area_id: 0.0.0.3
#           ranges:
#           - address: 10.1.2.0/24
#           - address: 60.1.0.0/16
#             cost: 30
#       passive_interface: true
#       vrf: vrfmerge

# After state:
# ------------
# veos#show running-config | section ospfv3
# router ospfv3
#    area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=
# !
# router ospfv3 vrf vrfmerge
#    passive-interface default
#    !
#    address-family ipv6
#       area 0.0.0.3 range 10.1.2.0/24
#       area 0.0.0.3 range 60.1.0.0/16 cost 30

# using overridden

# Before state:
# -------------
# veos#show running-config | section ospfv3
# router ospfv3
#    area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=
# !
# router ospfv3 vrf vrfmerge
#    passive-interface default
#    !
#    address-family ipv6
#       area 0.0.0.3 range 10.1.2.0/24
#       area 0.0.0.3 range 60.1.0.0/16 cost 30

- name: Override running config with provided config
  arista.eos.eos_ospfv3:
    config:
      processes:
        - address_family:
            - areas:
                - area_id: "0.0.0.3"
                  ranges:
                    - address: 10.1.2.2/24
                      advertise: true
                    - address: 60.1.1.1
                      subnet_mask: 255.255.0.0
                      cost: 30
              afi: "ipv6"
          passive_interface: true
          vrf: "vrfmerge"
    state: overridden

# Task output:
# ------------
# before:
#     processes:
#     - areas:
#       - area_id: 0.0.0.0
#         encryption:
#           algorithm: md5
#           encryption: 'null'
#           hidden_key: true
#           passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
#           spi: 43
#       vrf: default
#     - address_family:
#       - afi: ipv6
#         areas:
#         - area_id: 0.0.0.3
#           ranges:
#           - address: 10.1.2.0/24
#           - address: 60.1.0.0/16
#             cost: 30
#       passive_interface: true
#       vrf: vrfmerge
#
# commands:
# - no router ospfv3
# - router ospfv3 vrf vrfmerge
# - address-family ipv6
# - no area 0.0.0.3 range 10.1.2.0/24
# - no area 0.0.0.3 range 60.1.0.0/16 cost 30
# - area 0.0.0.3 range 10.1.2.2/24 advertise
# - area 0.0.0.3 range 60.1.1.1 255.255.0.0 cost 30
# - exit
# - exit
#
# after:
#     processes:
#     - address_family:
#       - afi: ipv6
#         areas:
#         - area_id: 0.0.0.3
#           ranges:
#           - address: 10.1.2.0/24
#           - address: 60.1.0.0/16
#             cost: 30
#       passive_interface: true
#       vrf: vrfmerge

# After state:
# ------------
# veos#show running-config | section ospfv3
# router ospfv3 vrf vrfmerge
#    passive-interface default
#    !
#    address-family ipv6
#       area 0.0.0.3 range 10.1.2.0/24
#       area 0.0.0.3 range 60.1.0.0/16 cost 30

# using deleted

# Before state:
# -------------
# veos#show running-config | section ospfv3
# router ospfv3
#    area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=
# !
# router ospfv3 vrf vrfmerge
#    passive-interface default
#    !
#    address-family ipv4
#       redistribute connected
#       redistribute static route-map MAP01
#       area 0.0.0.3 range 10.1.2.0/24
#       area 0.0.0.3 range 60.1.0.0/16 cost 30
#    !
#    address-family ipv6
#       area 0.0.0.3 range 10.1.2.0/24
#       area 0.0.0.3 range 60.1.0.0/16 cost 30

- name: Delete OSPFv3 config
  arista.eos.eos_ospfv3:
    config:
    state: deleted

# Task output:
# ------------

# before:
#     processes:
#     - areas:
#       - area_id: 0.0.0.0
#         encryption:
#           algorithm: md5
#           encryption: 'null'
#           hidden_key: true
#           passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
#           spi: 43
#       vrf: default
#     - address_family:
#       - afi: ipv4
#         areas:
#         - area_id: 0.0.0.3
#           ranges:
#           - address: 10.1.2.0/24
#           - address: 60.1.0.0/16
#             cost: 30
#         redistribute:
#         - routes: connected
#         - route_map: MAP01
#           routes: static
#       - afi: ipv6
#         areas:
#         - area_id: 0.0.0.3
#           ranges:
#           - address: 10.1.2.0/24
#           - address: 60.1.0.0/16
#             cost: 30
#       passive_interface: true
#       vrf: vrfmerge
#
# commands:
#
# - no router ospfv3
#
# after: {}

# After state:
# ------------
# veos#show running-config | section ospfv3
# router ospfv3 vrf vrfmerge
#    passive-interface default
#    !
#    address-family ipv4
#       redistribute connected
#       redistribute static route-map MAP01
#       area 0.0.0.3 range 10.1.2.0/24
#       area 0.0.0.3 range 60.1.0.0/16 cost 30
#    !
#    address-family ipv6
#       area 0.0.0.3 range 10.1.2.0/24
#       area 0.0.0.3 range 60.1.0.0/16 cost 30

# using parsed

# parsed_ospfv3.cfg
# router ospfv3
#    fips restrictions
#    area 0.0.0.20 stub
#    area 0.0.0.20 authentication ipsec spi 33 sha1 passphrase 7 4O8T3zo4xBdRWXBnsnK934o9SEb+jEhHUN6+xzZgCo2j9EnQBUvtwNxxLEmYmm6w
#    area 0.0.0.40 default-cost 45
#    area 0.0.0.40 stub
#    timers pacing flood 7
#    adjacency exchange-start threshold 11
#    !
#    address-family ipv4
#       fips restrictions
#       redistribute connected
#    !
#    address-family ipv6
#       router-id 10.1.1.1
#       fips restrictions
# !
# router ospfv3 vrf vrf01
#    bfd all-interfaces
#    fips restrictions
#    area 0.0.0.0 encryption ipsec spi 256 esp null sha1 passphrase 7 7hl8FV3lZ6H1mAKpjL47hQ==
#    log-adjacency-changes detail
#    !
#    address-family ipv4
#       passive-interface default
#       fips restrictions
#       redistribute connected route-map MAP01
#       maximum-paths 100
#    !
#    address-family ipv6
#       fips restrictions
#       area 0.0.0.10 nssa no-summary
#       default-information originate route-map DefaultRouteFilter
#       max-metric router-lsa external-lsa 25 summary-lsa
# !
# router ospfv3 vrf vrf02
#    fips restrictions
#    !
#    address-family ipv6
#       router-id 10.17.0.3
#       distance ospf intra-area 200
#       fips restrictions
#       area 0.0.0.1 stub
#       timers spf delay initial 56 56 56
#       timers out-delay 10

- name: Parse the provided config
  arista.eos.eos_ospfv3:
    running_config: "{{ lookup('file', './parsed_ospfv3.cfg') }}"
    state: parsed

# Task output:
# ------------
# parsed:
#     processes:
#     - address_family:
#       - afi: ipv4
#         fips_restrictions: true
#         redistribute:
#         - routes: connected
#       - afi: ipv6
#         fips_restrictions: true
#         router_id: 10.1.1.1
#       adjacency:
#         exchange_start:
#           threshold: 11
#       areas:
#       - area_id: 0.0.0.20
#         authentication:
#           algorithm: sha1
#           hidden_key: true
#           passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
#           spi: 33
#         stub:
#           set: true
#       - area_id: 0.0.0.40
#         default_cost: 45
#         stub:
#           set: true
#       fips_restrictions: true
#       timers:
#         pacing: 7
#       vrf: default
#     - address_family:
#       - afi: ipv4
#         fips_restrictions: true
#         maximum_paths: 100
#         passive_interface: true
#         redistribute:
#         - route_map: MAP01
#           routes: connected
#       - afi: ipv6
#         areas:
#         - area_id: 0.0.0.10
#           nssa:
#             no_summary: true
#         default_information:
#           originate: true
#           route_map: DefaultRouteFilter
#         fips_restrictions: true
#         max_metric:
#           router_lsa:
#             external_lsa:
#               max_metric_value: 25
#             summary_lsa:
#               set: true
#       areas:
#       - area_id: 0.0.0.0
#         encryption:
#           algorithm: sha1
#           encryption: 'null'
#           hidden_key: true
#           passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
#           spi: 256
#       bfd:
#         all_interfaces: true
#       fips_restrictions: true
#       log_adjacency_changes:
#         detail: true
#       vrf: vrf01
#     - address_family:
#       - afi: ipv6
#         areas:
#         - area_id: 0.0.0.1
#           stub:
#             set: true
#         distance: 200
#         fips_restrictions: true
#         router_id: 10.17.0.3
#         timers:
#           out_delay: 10
#           spf:
#             initial: 56
#             max: 56
#             min: 56
#       fips_restrictions: true
#       vrf: vrf02

# using gathered

# native config:
# veos#show running-config | section ospfv3
# router ospfv3 vrf vrfmerge
#    passive-interface default
#    !
#    address-family ipv4
#       redistribute connected
#       redistribute static route-map MAP01
#       area 0.0.0.3 range 10.1.2.0/24
#       area 0.0.0.3 range 60.1.0.0/16 cost 30
#    !
#    address-family ipv6
#       area 0.0.0.3 range 10.1.2.0/24
#       area 0.0.0.3 range 60.1.0.0/16 cost 30

- name: Gather running configuration
  arista.eos.eos_ospfv3:
    state: gathered

# Task output:
# ------------
# gathered:
#     processes:
#     - address_family:
#       - afi: ipv4
#         areas:
#         - area_id: 0.0.0.3
#           ranges:
#           - address: 10.1.2.0/24
#           - address: 60.1.0.0/16
#             cost: 30
#         redistribute:
#         - routes: connected
#         - route_map: MAP01
#           routes: static
#       - afi: ipv6
#         areas:
#         - area_id: 0.0.0.3
#           ranges:
#           - address: 10.1.2.0/24
#           - address: 60.1.0.0/16
#             cost: 30
#       passive_interface: true
#       vrf: vrfmerge


# using rendered

- name: render CLI commands for provided config
  arista.eos.eos_ospfv3:
    config:
      processes:
        - address_family:
            - timers:
                lsa: 22
              graceful_restart:
                grace_period: 35
              afi: "ipv6"
          timers:
            pacing: 55
          fips_restrictions: true
          router_id: "2.2.2.2"
          vrf: "vrfmerge"
    state: rendered

# Task output:
# ------------
# rendered:
# - router ospfv3 vrf vrfmerge
# - address-family ipv6
# - graceful-restart grace-period 35
# - timers lsa arrival 22
# - exit
# - timers pacing flood 55
# - fips restrictions
# - router-id 2.2.2.2
# - exit

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 dict Facts about the network resource gathered from the remote device as structured data. when I(state) is C(gathered)
parsed dict 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

  • Gomathi Selvi Srinivasan (@gomathiselvis)