Skip to content

eos_ospf_interfaces

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 manages OSPF configuration of interfaces on devices running Arista EOS.

Parameters

Parameter Defaults / Choices Comments
config
list / elements=dict
A list of OSPF configuration for interfaces.
config.address_family OSPF settings on the interfaces in address-family context.
config.name Name/Identifier of the interface.
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, gathered, parsed, rendered
The state the configuration should be left in.

Examples

# Using merged

# Before state:
# -------------
# veos(config)#show running-config | section interface | ospf
# veos(config)#

- name: Merge provided configuration with device configuration
  arista.eos.eos_ospf_interfaces:
    config:
      - name: "Vlan1"
        address_family:
          - afi: "ipv4"
            area:
              area_id: "0.0.0.50"
            cost: 500
            mtu_ignore: true
          - afi: "ipv6"
            dead_interval: 44
            ip_params:
              - afi: "ipv6"
                mtu_ignore: true
                network: "point-to-point"
    state: merged

# Task output:
# ------------
# before: []
#
# commands:
# - interface Vlan1
# - ip ospf area 0.0.0.50
# - ip ospf cost 500
# - ip ospf mtu-ignore
# - ospfv3 dead-interval 44
# - ospfv3 ipv6 mtu-ignore
# - ospfv3 ipv6 network point-to-point
#
# after:
#   - address_family:
#     - afi: ipv4
#       area:
#         area_id: 0.0.0.50
#       cost: 500
#       mtu_ignore: true
#     - afi: ipv6
#       dead_interval: 44
#       ip_params:
#       - afi: ipv6
#         mtu_ignore: true
#         network: point-to-point
#     name: Vlan1

# After state:
# ------------
# veos(config)#show running-config | section interface | ospf
# interface Vlan1
#    ip ospf cost 500
#    ip ospf mtu-ignore
#    ip ospf area 0.0.0.50
#    ospfv3 dead-interval 44
#    ospfv3 ipv6 network point-to-point
#    ospfv3 ipv6 mtu-ignore

# Using replaced

# Before state:
# -------------
# veos(config)#show running-config | section interface | ospf
# interface Vlan1
#    ip ospf cost 500
#    ip ospf dead-interval 29
#    ip ospf hello-interval 66
#    ip ospf mtu-ignore
#    ip ospf area 0.0.0.50
#    ospfv3 cost 106
#    ospfv3 hello-interval 77
#    ospfv3 dead-interval 44
#    ospfv3 transmit-delay 100
#    ospfv3 ipv4 priority 45
#    ospfv3 ipv4 area 0.0.0.5
#    ospfv3 ipv6 passive-interface
#    ospfv3 ipv6 retransmit-interval 115
#    ospfv3 ipv6 network point-to-point
#    ospfv3 ipv6 mtu-ignore
# !
# interface Vlan2
#    ospfv3 ipv4 hello-interval 45
#    ospfv3 ipv4 retransmit-interval 100
#    ospfv3 ipv4 area 0.0.0.6

- name: Replace device configuration with provided configuration
  arista.eos.eos_ospf_interfaces:
    config:
      - name: "Vlan1"
        address_family:
          - afi: "ipv6"
            cost: 44
            bfd: true
            ip_params:
              - afi: "ipv6"
                mtu_ignore: true
                network: "point-to-point"
                dead_interval: 56
    state: replaced

# Task output:
# ------------
# before:
#   - address_family:
#     - afi: ipv4
#       area:
#         area_id: 0.0.0.50
#       cost: 500
#       dead_interval: 29
#       hello_interval: 66
#       mtu_ignore: true
#     - afi: ipv6
#       cost: 106
#       dead_interval: 44
#       hello_interval: 77
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.5
#         priority: 45
#       - afi: ipv6
#         mtu_ignore: true
#         network: point-to-point
#         passive_interface: true
#         retransmit_interval: 115
#       transmit_delay: 100
#     name: Vlan1
#   - address_family:
#     - afi: ipv6
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.6
#         hello_interval: 45
#         retransmit_interval: 100
#     name: Vlan2
#
# commands:
# - interface Vlan1
# - no ip ospf cost 500
# - no ip ospf dead-interval 29
# - no ip ospf hello-interval 66
# - no ip ospf mtu-ignore
# - no ip ospf area 0.0.0.50
# - ospfv3 cost 44
# - ospfv3 bfd
# - ospfv3 authentication ipsec spi 30 md5 passphrase 7 7hl8FV3lZ6H1mAKpjL47hQ==
# - no ospfv3 ipv4 priority 45
# - no ospfv3 ipv4 area 0.0.0.5
# - ospfv3 ipv6 dead-interval 56
# - no ospfv3 ipv6 passive-interface
# - no ospfv3 ipv6 retransmit-interval 115
# - no ospfv3 hello-interval 77
# - no ospfv3 dead-interval 44
# - no ospfv3 transmit-delay 100
#
# after:
#   - address_family:
#     - afi: ipv6
#       bfd: true
#       cost: 44
#       ip_params:
#       - afi: ipv6
#         mtu_ignore: true
#         network: point-to-point
#     name: Vlan1
#   - address_family:
#     - afi: ipv6
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.6
#         hello_interval: 45
#         retransmit_interval: 100
#     name: Vlan2

# After state:
# ------------
# veos(config)#show running-config | section interface | ospf
# interface Vlan1
#    ospfv3 bfd
#    ospfv3 cost 44
#    no ospfv3 ipv6 passive-interface
#    ospfv3 ipv6 network point-to-point
#    ospfv3 ipv6 mtu-ignore
# !
# interface Vlan2
#    ospfv3 ipv4 hello-interval 45
#    ospfv3 ipv4 retransmit-interval 100
#    ospfv3 ipv4 area 0.0.0.6

# Using overidden

# Before state:
# -------------
# veos(config)#show running-config | section interface | ospf
# interface Vlan1
#    ip ospf dead-interval 29
#    ip ospf hello-interval 66
#    ip ospf mtu-ignore
#    ospfv3 bfd
#    ospfv3 cost 106
#    ospfv3 hello-interval 77
#    ospfv3 transmit-delay 100
#    ospfv3 ipv4 priority 45
#    ospfv3 ipv4 area 0.0.0.5
#    ospfv3 ipv6 passive-interface
#    ospfv3 ipv6 dead-interval 56
#    ospfv3 ipv6 retransmit-interval 115
#    ospfv3 ipv6 network point-to-point
#    ospfv3 ipv6 mtu-ignore
# !
# interface Vlan2
#    ospfv3 ipv4 hello-interval 45
#    ospfv3 ipv4 retransmit-interval 100
#    ospfv3 ipv4 area 0.0.0.6

- name: Override device configuration with provided configuration
  arista.eos.eos_ospf_interfaces:
    config:
      - name: "Vlan1"
        address_family:
          - afi: "ipv6"
            cost: 44
            bfd: true
            ip_params:
              - afi: "ipv6"
                mtu_ignore: true
                network: "point-to-point"
                dead_interval: 56
    state: overridden

# Task output:
# ------------
# before:
#   - address_family:
#     - afi: ipv4
#       dead_interval: 29
#       hello_interval: 66
#       mtu_ignore: true
#     - afi: ipv6
#       bfd: true
#       cost: 106
#       hello_interval: 77
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.5
#         priority: 45
#       - afi: ipv6
#         dead_interval: 56
#         mtu_ignore: true
#         network: point-to-point
#         passive_interface: true
#         retransmit_interval: 115
#       transmit_delay: 100
#     name: Vlan1
#   - address_family:
#     - afi: ipv6
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.6
#         hello_interval: 45
#         retransmit_interval: 100
#     name: Vlan2
#
# commands:
# - interface Vlan2
# - no ospfv3 ipv4 hello-interval 45
# - no ospfv3 ipv4 retransmit-interval 100
# - no ospfv3 ipv4 area 0.0.0.6
# - interface Vlan1
# - no ip ospf dead-interval 29
# - no ip ospf hello-interval 66
# - no ip ospf mtu-ignore
# - ospfv3 cost 44
# - ospfv3 authentication ipsec spi 30 md5 passphrase 7 7hl8FV3lZ6H1mAKpjL47hQ==
# - no ospfv3 ipv4 priority 45
# - no ospfv3 ipv4 area 0.0.0.5
# - no ospfv3 ipv6 passive-interface
# - no ospfv3 ipv6 retransmit-interval 115
# - no ospfv3 hello-interval 77
# - no ospfv3 transmit-delay 100
#
# after:
#   - address_family:
#     - afi: ipv6
#       bfd: true
#       cost: 44
#       ip_params:
#       - afi: ipv6
#         dead_interval: 56
#         mtu_ignore: true
#         network: point-to-point
#     name: Vlan1

# After state:
# ------------
# veos(config)#show running-config | section interface | ospf
# interface Vlan1
#    ospfv3 bfd
#    ospfv3 cost 44
#    no ospfv3 ipv6 passive-interface
#    ospfv3 ipv6 dead-interval 56
#    ospfv3 ipv6 network point-to-point
#    ospfv3 ipv6 mtu-ignore

# Using deleted

# Before state:
# -------------
# veos(config)#show running-config | section interface | ospf
# interface Vlan1
#    ip ospf dead-interval 29
#    ip ospf hello-interval 66
#    ip ospf mtu-ignore
#    ospfv3 bfd
#    ospfv3 cost 106
#    ospfv3 hello-interval 77
#    ospfv3 transmit-delay 100
#    ospfv3 ipv4 priority 45
#    ospfv3 ipv4 area 0.0.0.5
#    ospfv3 ipv6 passive-interface
#    ospfv3 ipv6 dead-interval 56
#    ospfv3 ipv6 retransmit-interval 115
#    ospfv3 ipv6 network point-to-point
#    ospfv3 ipv6 mtu-ignore
# !
# interface Vlan2
#    ospfv3 ipv4 hello-interval 45
#    ospfv3 ipv4 retransmit-interval 100
#    ospfv3 ipv4 area 0.0.0.6

- name: Delete provided ospf interface config
  arista.eos.eos_ospf_interfaces:
    config:
      - name: "Vlan1"
    state: deleted

# Task output:
# ------------
# before:
#   - address_family:
#     - afi: ipv4
#       dead_interval: 29
#       hello_interval: 66
#       mtu_ignore: true
#     - afi: ipv6
#       bfd: true
#       cost: 106
#       hello_interval: 77
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.5
#         priority: 45
#       - afi: ipv6
#         dead_interval: 56
#         mtu_ignore: true
#         network: point-to-point
#         passive_interface: true
#         retransmit_interval: 115
#       transmit_delay: 100
#     name: Vlan1
#   - address_family:
#     - afi: ipv6
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.6
#         hello_interval: 45
#         retransmit_interval: 100
#     name: Vlan2

# commands:
# - interface Vlan1
# - no ip ospf dead-interval 29
# - no ip ospf hello-interval 66
# - no ip ospf mtu-ignore
# - no ospfv3 bfd
# - no ospfv3 cost 106
# - no ospfv3 hello-interval 77
# - no ospfv3 transmit-delay 100
# - no ospfv3 ipv4 priority 45
# - no ospfv3 ipv4 area 0.0.0.5
# - no ospfv3 ipv6 passive-interface
# - no ospfv3 ipv6 dead-interval 56
# - no ospfv3 ipv6 retransmit-interval 115
# - no ospfv3 ipv6 network point-to-point
# - no ospfv3 ipv6 mtu-ignore
#
# after:
#   - address_family:
#     - afi: ipv6
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.6
#         hello_interval: 45
#         retransmit_interval: 100
#     name: Vlan2

# After state:
# ------------
# veos#show running-config | section interface | ospf
# interface Vlan2
#    ospfv3 ipv4 hello-interval 45
#    ospfv3 ipv4 retransmit-interval 100
#    ospfv3 ipv4 area 0.0.0.6

# Using parsed

# parsed.cfg
# ----------
# interface Vlan1
#    ip ospf dead-interval 29
#    ip ospf hello-interval 66
#    ip ospf mtu-ignore
#    ip ospf cost 500
#    ospfv3 bfd
#    ospfv3 cost 106
#    ospfv3 hello-interval 77
#    ospfv3 transmit-delay 100
#    ospfv3 ipv4 priority 45
#    ospfv3 ipv4 area 0.0.0.5
#    ospfv3 ipv6 passive-interface
#    ospfv3 ipv6 dead-interval 56
#    ospfv3 ipv6 retransmit-interval 115
#    ospfv3 ipv6 network point-to-point
#    ospfv3 ipv6 mtu-ignore
# !
# interface Vlan2
#    ospfv3 ipv4 hello-interval 45
#    ospfv3 ipv4 retransmit-interval 100
#    ospfv3 ipv4 area 0.0.0.6
#

- name: parse provided config into structured facts
  arista.eos.eos_ospf_interfaces:
    running_config: "{{ lookup('file', './parsed.cfg') }}"
    state: parsed

# Task output:
# ------------
# parsed:
#   - address_family:
#     - afi: ipv4
#       cost: 500
#       dead_interval: 29
#       hello_interval: 66
#       mtu_ignore: true
#     - afi: ipv6
#       bfd: true
#       cost: 106
#       hello_interval: 77
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.5
#         priority: 45
#       - afi: ipv6
#         dead_interval: 56
#         mtu_ignore: true
#         network: point-to-point
#         passive_interface: true
#         retransmit_interval: 115
#       transmit_delay: 100
#     name: Vlan1
#   - address_family:
#     - afi: ipv6
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.6
#         hello_interval: 45
#         retransmit_interval: 100
#     name: Vlan2

# Using gathered:

# Device config:
# veos#show running-config | section interface | ospf
# interface Vlan1
#    ip ospf cost 500
#    ip ospf dead-interval 29
#    ip ospf hello-interval 66
#    ip ospf mtu-ignore
#    ip ospf area 0.0.0.50
#    ospfv3 cost 106
#    ospfv3 hello-interval 77
#    ospfv3 transmit-delay 100
#    ospfv3 ipv4 priority 45
#    ospfv3 ipv4 area 0.0.0.5
#    ospfv3 ipv6 passive-interface
#    ospfv3 ipv6 dead-interval 56
#    ospfv3 ipv6 retransmit-interval 115
#    ospfv3 ipv6 network point-to-point
#    ospfv3 ipv6 mtu-ignore
# !
# interface Vlan2
#    ospfv3 ipv4 hello-interval 45
#    ospfv3 ipv4 retransmit-interval 100
#    ospfv3 ipv4 area 0.0.0.6

- name: gather runnig config
  arista.eos.eos_ospf_interfaces:
    state: gathered

# Task output:
# ------------
# gathered:
#   - address_family:
#     - afi: ipv4
#       area:
#         area_id: 0.0.0.50
#       cost: 500
#       dead_interval: 29
#       hello_interval: 66
#       mtu_ignore: true
#     - afi: ipv6
#       cost: 106
#       hello_interval: 77
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.5
#         priority: 45
#       - afi: ipv6
#         dead_interval: 56
#         mtu_ignore: true
#         network: point-to-point
#         passive_interface: true
#         retransmit_interval: 115
#       transmit_delay: 100
#     name: Vlan1
#   - address_family:
#     - afi: ipv6
#       ip_params:
#       - afi: ipv4
#         area:
#           area_id: 0.0.0.6
#         hello_interval: 45
#         retransmit_interval: 100
#     name: Vlan2

# Using rendered

- name: Render provided configuration
  arista.eos.eos_ospf_interfaces:
    config:
      - name: "Vlan1"
        address_family:
          - afi: "ipv4"
            dead_interval: 29
            mtu_ignore: true
            hello_interval: 66
          - afi: "ipv6"
            hello_interval: 77
            cost: 106
            transmit_delay: 100
            ip_params:
              - afi: "ipv6"
                retransmit_interval: 115
                dead_interval: 56
                passive_interface: true
              - afi: "ipv4"
                area:
                  area_id: "0.0.0.5"
                priority: 45
      - name: "Vlan2"
        address_family:
          - afi: "ipv6"
            ip_params:
              - afi: "ipv4"
                area:
                  area_id: "0.0.0.6"
                hello_interval: 45
                retransmit_interval: 100
          - afi: "ipv4"
            message_digest_key:
              key_id: 200
              encryption: 7
              key: "hkdfhtu=="

    state: rendered

# Task output:
# ------------
# rendered:
# - interface Vlan1
# - ip ospf dead-interval 29
# - ip ospf mtu-ignore
# - ip ospf hello-interval 66
# - ospfv3 hello-interval 77
# - ospfv3 cost 106
# - ospfv3 transmit-delay 100
# - ospfv3 ipv4 area 0.0.0.5
# - ospfv3 ipv4 priority 45
# - ospfv3 ipv6 retransmit-interval 115
# - ospfv3 ipv6 dead-interval 56
# - ospfv3 ipv6 passive-interface
# - interface Vlan2
# - ip ospf message-digest-key 200 md5 7 hkdfhtu==
# - ospfv3 ipv4 area 0.0.0.6
# - ospfv3 ipv4 hello-interval 45
# - ospfv3 ipv4 retransmit-interval 100

Return Values

Key Data Type Description Returned
after list The resulting configuration after module execution. when changed
before list 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

  • Gomathi Selvi Srinivasan (@gomathiselvis)