junipernetworks.junos.junos_ospfv3 module – OSPFv3 resource module
Note
This module is part of the junipernetworks.junos collection (version 5.3.1).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install junipernetworks.junos
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: junipernetworks.junos.junos_ospfv3
.
New in junipernetworks.junos 1.2.0
Synopsis
This module manages global OSPFv3 configuration on devices running Juniper JUNOS.
Note
This module has a corresponding action plugin.
Requirements
The below requirements are needed on the host that executes this module.
ncclient (>=v0.6.4)
xmltodict (>=0.12.0)
Parameters
Parameter |
Comments |
---|---|
A list of OSPFv3 process configuration. |
|
A list of OSPFv3 areas’ configuration. |
|
The Area ID as an integer or IP Address. |
|
Configure an address range for the area. |
|
List of interfaces in this area. |
|
Specify authentication type |
|
Type of authentication to use. |
|
Specify list of bandwidth based metrics |
|
BW to apply metric to. Choices:
|
|
Specify metric |
|
Enable flood reduction. Choices:
|
|
Metric applied to the interface. |
|
Name of the interface. |
|
Specify passive Choices:
|
|
Priority for the interface. |
|
Specify timers |
|
Dead interval (seconds). |
|
Hello interval (seconds). |
|
Poll interval (seconds). |
|
Retransmit interval (seconds). |
|
Transit delay (seconds). |
|
Settings for configuring the area as a stub. |
|
Metric for the default route in this area. |
|
Configure the area as a stub. Choices:
|
|
Preference of external routes. |
|
Specify time for overload mode reset |
|
Time after which overload mode is reset (seconds). |
|
Preference of internal routes. |
|
Maximum number of external prefixes that can be exported. |
|
Bandwidth for calculating metric defaults. Choices:
|
|
Set RFC1583 compatibility Choices:
|
|
The OSPFv3 router id. |
|
Configure options for SPF. |
|
Time to wait before running an SPF (seconds). |
|
Time to hold down before running an SPF (seconds). |
|
Number of maximum rapid SPF runs before holddown (seconds). |
|
This option is used only with state parsed. The value of this option should be the output received from the Junos device by executing the command show protocols ospf. The state parsed reads the configuration from |
|
The state the configuration should be left in. Choices:
|
Notes
Note
This module requires the netconf system service be enabled on the device being managed.
This module works with connection
netconf
. See the Junos OS Platform Options.Tested against JunOS v18.4R1
Examples
# Using merged
#
# Before state
# ------------
#
# admin# show protocols ospf3
- name: Merge Junos OSPFv3 config
junipernetworks.junos.junos_ospfv3:
config:
- router_id: 10.200.16.75
areas:
- area_id: 0.0.0.100
interfaces:
- metric: 5
name: so-0/0/0.0
priority: 3
- metric: 6
name: so-0/0/1.0
priority: 2
stub:
default_metric: 200
set: true
state: merged
# Task Output:
# ------------
#
# before: []
#
# commands:
# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# <nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name><nc:interface><nc:name>so-0/0/0.0</nc:name>
# <nc:priority>3</nc:priority><nc:metric>5</nc:metric></nc:interface><nc:interface>
# <nc:name>so-0/0/1.0</nc:name><nc:priority>2</nc:priority><nc:metric>6</nc:metric>
# </nc:interface><nc:stub><nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf3></nc:protocols>
# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# <nc:router-id>10.200.16.75</nc:router-id></nc:routing-options>
#
# after:
# - areas:
# - area_id: 0.0.0.100
# interfaces:
# - metric: 5
# name: so-0/0/0.0
# priority: 3
# - metric: 6
# name: so-0/0/1.0
# priority: 2
# stub:
# default_metric: 200
# set: true
# router_id: 10.200.16.75
# After state
# -----------
#
# admin# show protocols ospf3
# area 0.0.0.100 {
# stub default-metric 200;
# interface so-0/0/0.0 {
# metric 5;
# priority 3;
# }
# interface so-0/0/1.0 {
# metric 6;
# priority 2;
# }
# }
#
# Using replaced
#
# Before state
# ------------
#
# admin# show protocols ospf3
# admin# show protocols ospf3
# area 0.0.0.100 {
# stub default-metric 200;
# interface so-0/0/0.0 {
# metric 5;
# priority 3;
# }
# interface so-0/0/1.0 {
# metric 6;
# priority 2;
# }
# }
- name: Replace existing Junos OSPFv3 config with provided config
junipernetworks.junos.junos_ospfv3:
config:
- router_id: 10.200.16.75
areas:
- area_id: 0.0.0.100
interfaces:
- name: so-0/0/0.0
state: replaced
# Task Output:
# ------------
#
# before:
# - areas:
# - area_id: 0.0.0.100
# interfaces:
# - metric: 5
# name: so-0/0/0.0
# priority: 3
# - metric: 6
# name: so-0/0/1.0
# priority: 2
# stub:
# default_metric: 200
# set: true
# router_id: 10.200.16.75
#
# commands:
# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# <nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name><nc:interface delete="delete">
# <nc:name>so-0/0/0.0</nc:name></nc:interface></nc:area></nc:ospf3><nc:ospf3>
# <nc:area><nc:name>0.0.0.100</nc:name><nc:interface><nc:name>so-0/0/0.0</nc:name>
# </nc:interface></nc:area></nc:ospf3></nc:protocols>
# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# <nc:router-id>10.200.16.75</nc:router-id><nc:router-id>10.200.16.75</nc:router-id></nc:routing-options>
#
# after:
# - areas:
# - area_id: 0.0.0.100
# interfaces:
# - metric: 6
# name: so-0/0/1.0
# priority: 2
# - name: so-0/0/0.0
# stub:
# default_metric: 200
# set: true
# router_id: 10.200.16.75
#
# After state
# -----------
#
# admin# show protocols ospf3
# area 0.0.0.100 {
# stub default-metric 200;
# interface so-0/0/1.0 {
# metric 6;
# priority 2;
# }
# interface so-0/0/0.0;
# }
#
# Using overridden
#
# Before state
# ------------
#
# admin# show protocols ospf3
# area 0.0.0.100 {
# stub default-metric 200;
# interface so-0/0/1.0 {
# metric 6;
# priority 2;
# }
# interface so-0/0/0.0;
# }
- name: Override runnig OSPFv3 config with provided config
junipernetworks.junos.junos_ospfv3:
config:
- router_id: 10.200.16.75
areas:
- area_id: 0.0.0.100
stub:
default_metric: 200
set: true
interfaces:
- name: so-0/0/0.0
priority: 3
metric: 5
flood_reduction: true
passive: true
- area_id: 0.0.0.200
interfaces:
- name: ge-1/1/0.0
- name: ge-2/2/0.0
state: overridden
# Task Output:
# ------------
#
# before:
# - areas:
# - area_id: 0.0.0.100
# interfaces:
# - metric: 6
# name: so-0/0/1.0
# priority: 2
# - name: so-0/0/0.0
# stub:
# default_metric: 200
# set: true
# router_id: 10.200.16.75
#
# commands:
# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# <nc:ospf3 delete="delete"/><nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name>
# <nc:interface><nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority><nc:flood-reduction/>
# <nc:metric>5</nc:metric><nc:passive/></nc:interface>
# <nc:stub><nc:default-metric>200</nc:default-metric></nc:stub></nc:area>
# <nc:area><nc:name>0.0.0.200</nc:name><nc:interface><nc:name>ge-1/1/0.0</nc:name>
# </nc:interface><nc:interface><nc:name>ge-2/2/0.0</nc:name></nc:interface></nc:area>
# </nc:ospf3></nc:protocols>
# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# <nc:router-id delete="delete"/><nc:router-id>10.200.16.75</nc:router-id></nc:routing-options>
#
# after:
# - areas:
# - area_id: 0.0.0.100
# interfaces:
# - flood_reduction: true
# metric: 5
# name: so-0/0/0.0
# passive: true
# priority: 3
# stub:
# default_metric: 200
# set: true
# - area_id: 0.0.0.200
# interfaces:
# - name: ge-1/1/0.0
# - name: ge-2/2/0.0
# router_id: 10.200.16.75
# After state
# -----------
#
# admin# show protocols ospf3
# area 0.0.0.100 {
# stub default-metric 200;
# interface so-0/0/0.0 {
# passive;
# metric 5;
# priority 3;
# flood-reduction;
# }
# }
# area 0.0.0.200 {
# interface ge-1/1/0.0;
# interface ge-2/2/0.0;
# }
# Using deleted
#
# Before state
# ------------
#
# admin# show protocols ospf3
# area 0.0.0.100 {
# stub default-metric 200;
# interface so-0/0/0.0 {
# passive;
# metric 5;
# priority 3;
# flood-reduction;
# }
# }
# area 0.0.0.200 {
# interface ge-1/1/0.0;
# interface ge-2/2/0.0;
# }
- name: Delete OSPFv3 running config.
junipernetworks.junos.junos_ospfv3:
config:
state: deleted
# Task Output:
# ------------
#
# before:
# - areas:
# - area_id: 0.0.0.100
# interfaces:
# - flood_reduction: true
# metric: 5
# name: so-0/0/0.0
# passive: true
# priority: 3
# stub:
# default_metric: 200
# set: true
# - area_id: 0.0.0.200
# interfaces:
# - name: ge-1/1/0.0
# - name: ge-2/2/0.0
# router_id: 10.200.16.75
#
# commands:
# - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# <nc:ospf3 delete="delete"/></nc:protocols>
# - <nc:routing-options xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# <nc:router-id delete="delete"/></nc:routing-options>
#
# after: []
#
#
# After state
# -----------
#
# admin# show protocols ospf3
# Using gathered
#
# Before state
# ------------
#
# admin# show protocols ospf3
# area 0.0.0.100 {
# stub default-metric 200;
# interface so-0/0/0.0 {
# metric 5;
# priority 3;
# }
# interface so-0/0/1.0 {
# metric 6;
# priority 2;
# }
- name: Gather Junos OSPFv3 running-configuration
junipernetworks.junos.junos_ospfv3:
config:
state: gathered
#
#
# Task Output:
# ------------
#
# gathered:
#
# - areas:
# - area_id: 0.0.0.100
# interfaces:
# - metric: 5
# name: so-0/0/0.0
# priority: 3
# - metric: 6
# name: so-0/0/1.0
# priority: 2
# stub:
# default_metric: 200
# set: true
# router_id: 10.200.16.75
# Using parsed
# parsed.cfg
# ------------
# <?xml version="1.0" encoding="UTF-8"?>
# <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f">
# <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC">
# <protocols>
# <ospf3>
# <area>
# <name>0.0.0.100</name>
# <stub>
# <default-metric>200</default-metric>
# </stub>
# <interface>
# <name>so-0/0/0.0</name>
# <passive></passive>
# <metric>5</metric>
# <priority>3</priority>
# <flood-reduction/>
# </interface>
# </area>
# <area>
# <name>0.0.0.200</name>
# <interface>
# <name>ge-1/1/0.0</name>
# </interface>
# <interface>
# <name>ge-2/2/0.0</name>
# </interface>
# </area>
# </ospf3>
# </protocols>
# <routing-options>
# <router-id>10.200.16.75</router-id>
# </routing-options>
# </configuration>
# </rpc-reply>
- name: Parsed the ospfv3 config into structured ansible resource facts.
junipernetworks.junos.junos_ospfv3:
running_config: "{{ lookup('file', './parsed.cfg') }}"
state: parsed
#
# Task Output:
# ------------
#
# parsed:
# - router_id: 10.200.16.75
# areas:
# - area_id: 0.0.0.100
# stub:
# default_metric: 200
# set: true
# interfaces:
# - name: so-0/0/0.0
# priority: 3
# metric: 5
# flood_reduction: true
# passive: true
# - area_id: 0.0.0.200
# interfaces:
# - name: ge-1/1/0.0
# - name: ge-2/2/0.0
# Using rendered
#
- name: Render the commands for provided configuration
junipernetworks.junos.junos_ospfv3:
config:
- router_id: 10.200.16.75
areas:
- area_id: 0.0.0.100
interfaces:
- metric: 5
name: so-0/0/0.0
priority: 3
- metric: 6
name: so-0/0/1.0
priority: 2
stub:
default_metric: 200
set: true
state: rendered
# Task Output:
# ------------
#
# rendered: "<nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
# <nc:ospf3><nc:area><nc:name>0.0.0.100</nc:name><nc:interface>
# <nc:name>so-0/0/0.0</nc:name><nc:priority>3</nc:priority>
# <nc:metric>5</nc:metric></nc:interface><nc:interface><nc:name>so-0/0/1.0</nc:name>
# <nc:priority>2</nc:priority><nc:metric>6</nc:metric></nc:interface><nc:stub>
# <nc:default-metric>200</nc:default-metric></nc:stub></nc:area></nc:ospf3></nc:protocols>"
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
The resulting configuration module invocation. Returned: when changed Sample: |
|
The configuration prior to the module invocation. Returned: always Sample: |
|
The set of commands pushed to the remote device. Returned: always Sample: |
|
Facts about the network resource gathered from the remote device as structured data. Returned: when state is Sample: |
|
The device native config provided in running_config option parsed into structured data as per module argspec. Returned: when state is Sample: |
|
The provided configuration in the task rendered in device-native format (offline). Returned: when state is Sample: |