junipernetworks / junipernetworks.junos / 8.0.0 / module / junos_ospfv3 OSPFv3 resource module | "added in version" 1.2.0 of junipernetworks.junos" Authors: Rohit Thakur (@rohitthakur2590)junipernetworks.junos.junos_ospfv3 (8.0.0) — module
Install with ansible-galaxy collection install junipernetworks.junos:==8.0.0
collections: - name: junipernetworks.junos version: 8.0.0
This module manages global OSPFv3 configuration on devices running Juniper JUNOS.
# 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
state: choices: - merged - replaced - overridden - deleted - gathered - rendered - parsed default: merged description: - The state the configuration should be left in. type: str config: description: A list of OSPFv3 process configuration. elements: dict suboptions: areas: description: - A list of OSPFv3 areas' configuration. elements: dict suboptions: area_id: description: - The Area ID as an integer or IP Address. required: true type: str area_range: description: - Configure an address range for the area. type: str interfaces: description: - List of interfaces in this area. elements: dict suboptions: authentication: description: Specify authentication type suboptions: type: description: - Type of authentication to use. type: dict type: dict bandwidth_based_metrics: description: Specify list of bandwidth based metrics elements: dict suboptions: bandwidth: choices: - 1g - 10g description: - BW to apply metric to. type: str metric: description: Specify metric type: int type: list flood_reduction: description: - Enable flood reduction. type: bool metric: description: - Metric applied to the interface. type: int name: description: - Name of the interface. required: true type: str passive: description: Specify passive type: bool priority: description: - Priority for the interface. type: int timers: description: Specify timers suboptions: dead_interval: description: - Dead interval (seconds). type: int hello_interval: description: - Hello interval (seconds). type: int poll_interval: description: - Poll interval (seconds). type: int retransmit_interval: description: - Retransmit interval (seconds). type: int transit_delay: description: - Transit delay (seconds). type: int type: dict type: list stub: description: - Settings for configuring the area as a stub. suboptions: default_metric: description: - Metric for the default route in this area. type: int set: description: - Configure the area as a stub. type: bool type: dict type: list external_preference: description: - Preference of external routes. type: int overload: description: Specify time for overload mode reset suboptions: timeout: description: - Time after which overload mode is reset (seconds). type: int type: dict preference: description: - Preference of internal routes. type: int prefix_export_limit: description: - Maximum number of external prefixes that can be exported. type: int reference_bandwidth: choices: - 1g - 10g description: - Bandwidth for calculating metric defaults. type: str rfc1583compatibility: description: - Set RFC1583 compatibility type: bool router_id: description: - The OSPFv3 router id. type: str spf_options: description: - Configure options for SPF. suboptions: delay: description: - Time to wait before running an SPF (seconds). type: int holddown: description: - Time to hold down before running an SPF (seconds). type: int rapid_runs: description: - Number of maximum rapid SPF runs before holddown (seconds). type: int type: dict type: list running_config: description: - This option is used only with state I(parsed). - The value of this option should be the output received from the Junos device by executing the command B(show protocols ospf). - 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 type: str
after: description: The resulting configuration module invocation. returned: when changed sample: "The configuration returned will always be in the same format\n of the parameters\ \ above.\n" type: dict before: description: The configuration prior to the module invocation. returned: always sample: "The configuration returned will always be in the same format\n of the parameters\ \ above.\n" type: dict commands: description: The set of commands pushed to the remote device. returned: always sample: - <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> - xml 2 - xml 3 type: list gathered: description: Facts about the network resource gathered from the remote device as structured data. returned: when I(state) is C(gathered) sample: 'This output will always be in the same format as the module argspec. ' type: list parsed: description: The device native config provided in I(running_config) option parsed into structured data as per module argspec. returned: when I(state) is C(parsed) sample: 'This output will always be in the same format as the module argspec. ' type: list rendered: description: The provided configuration in the task rendered in device-native format (offline). returned: when I(state) is C(rendered) sample: - <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> type: list