Server IP : 85.214.239.14 / Your IP : 18.191.200.255 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/lib/python3/dist-packages/ansible_collections/cisco/nxos/plugins/modules/ |
Upload File : |
#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright 2020 Red Hat # GNU General Public License v3.0+ # (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) ############################################# # WARNING # ############################################# # # This file is auto generated by the resource # module builder playbook. # # Do not edit this file manually. # # Changes to this file will be over written # by the resource module builder. # # Changes should be made in the model used to # generate this file or in the resource module # builder template. # ############################################# """ The module file for nxos_ospfv2 """ from __future__ import absolute_import, division, print_function __metaclass__ = type DOCUMENTATION = """ module: nxos_ospfv2 short_description: OSPFv2 resource module description: - This module manages OSPFv2 configuration on devices running Cisco NX-OS. version_added: 1.0.0 notes: - Tested against NX-OS 7.0(3)I5(1). - Unsupported for Cisco MDS - This module works with connection C(network_cli) and C(httpapi). author: Nilashish Chakraborty (@NilashishC) options: running_config: description: - This option is used only with state I(parsed). - The value of this option should be the output received from the NX-OS device by executing the command B(show running-config | section "^router 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 config: description: A list of OSPF process configuration. type: dict suboptions: processes: description: - A list of OSPF instances' configurations. type: list elements: dict suboptions: areas: description: - Configure properties of OSPF Areas. type: list elements: dict suboptions: area_id: description: - The Area ID in IP Address format. type: str required: true authentication: description: - Authentication settings for the Area. type: dict suboptions: set: description: - Set authentication for the area. type: bool message_digest: description: - Use message-digest authentication. type: bool default_cost: description: - Specify the default cost for default summary LSA. type: int filter_list: description: - Filter prefixes between OSPF areas. type: list elements: dict suboptions: route_map: description: - The Route-map name. type: str required: true direction: description: - The direction to apply the route map. type: str choices: [in, out] required: true nssa: description: - NSSA settings for the area. type: dict suboptions: set: description: - Configure area as NSSA. type: bool default_information_originate: description: - Originate Type-7 default LSA into NSSA area. type: bool no_redistribution: description: - Do not send redistributed LSAs into NSSA area. type: bool no_summary: description: - Do not send summary LSAs into NSSA area. type: bool translate: description: - Translate LSA. type: dict suboptions: type7: description: - Translate from Type 7 to Type 5. type: dict suboptions: always: description: - Always translate LSAs type: bool never: description: - Never translate LSAs type: bool supress_fa: description: - Suppress forwarding address in translated LSAs. type: bool ranges: description: - Configure an address range for the area. type: list elements: dict suboptions: prefix: description: - IP in Prefix format (x.x.x.x/len) type: str required: true cost: description: - Cost to use for the range. type: int not_advertise: description: - Suppress advertising the specified range. type: bool stub: description: - Settings for configuring the area as a stub. type: dict suboptions: set: description: - Configure the area as a stub. type: bool no_summary: description: - Prevent ABR from sending summary LSAs into stub area. type: bool auto_cost: description: - Calculate OSPF cost according to bandwidth. type: dict suboptions: reference_bandwidth: description: - Reference bandwidth used to assign OSPF cost. type: int required: true unit: description: - Specify in which unit the reference bandwidth is specified. type: str required: true choices: [Gbps, Mbps] bfd: description: - Enable BFD on all OSPF interfaces. type: bool default_information: description: - Control distribution of default routes. type: dict suboptions: originate: description: - Distribute a default route. type: dict suboptions: set: description: - Enable distribution of default route. type: bool always: description: - Always advertise a default route. type: bool route_map: description: - Policy to control distribution of default routes type: str default_metric: description: - Specify default metric for redistributed routes. type: int distance: description: - Configure the OSPF administrative distance. type: int flush_routes: description: - Flush routes on a non-graceful controlled restart. type: bool graceful_restart: description: - Configure graceful restart. type: dict suboptions: set: description: - Enable graceful-restart. type: bool grace_period: description: - Configure maximum interval to restart gracefully. type: int helper_disable: description: - Enable/Disable helper mode. type: bool isolate: description: - Isolate this router from OSPF perspective. type: bool log_adjacency_changes: description: - Log changes in adjacency state. type: dict suboptions: log: description: - Enable/disable logging changes in adjacency state. type: bool detail: description: - Notify all state changes. type: bool max_lsa: description: - Feature to limit the number of non-self-originated LSAs. type: dict suboptions: max_non_self_generated_lsa: description: - Set the maximum number of non self-generated LSAs. type: int required: true threshold: description: - Threshold value (%) at which to generate a warning message. type: int ignore_count: description: - Set count on how many times adjacencies can be suppressed. type: int ignore_time: description: - Set time during which all adjacencies are suppressed. type: int reset_time: description: - Set number of minutes after which ignore-count is reset to zero. type: int warning_only: description: - Log a warning message when limit is exceeded. type: bool max_metric: description: - Maximize the cost metric. type: dict suboptions: router_lsa: description: - Router LSA configuration. type: dict suboptions: set: description: - Set router-lsa attribute. type: bool external_lsa: description: - External LSA configuration. type: dict suboptions: set: description: - Set external-lsa attribute. type: bool max_metric_value: description: - Set max metric value for external LSAs. type: int include_stub: description: - Advertise Max metric for Stub links as well. type: bool on_startup: description: - Effective only at startup. type: dict suboptions: set: description: - Set on-startup attribute. type: bool wait_period: description: - Wait period in seconds after startup. type: int wait_for_bgp_asn: description: - ASN of BGP to wait for. type: int summary_lsa: description: - Summary LSAs configuration. type: dict suboptions: set: description: - Set summary-lsa attribute. type: bool max_metric_value: description: - Max metric value for summary LSAs. type: int maximum_paths: description: - Maximum paths per destination. type: int mpls: description: - OSPF MPLS configuration settings. type: dict suboptions: traffic_eng: description: - OSPF MPLS Traffic Engineering commands. type: dict suboptions: areas: description: - List of Area IDs. type: list elements: dict suboptions: area_id: description: - Area Id in ip address format. type: str multicast_intact: description: - MPLS TE multicast support. type: bool router_id: description: - Router ID associated with TE. type: str name_lookup: description: - Display OSPF router ids as DNS names. type: bool passive_interface: description: - Suppress routing updates on the interface. type: dict suboptions: default: description: - Interfaces passive by default. type: bool process_id: description: - The OSPF process tag. type: str required: true redistribute: description: - Redistribute information from another routing protocol. type: list elements: dict suboptions: protocol: description: - The name of the protocol. type: str choices: [bgp, direct, eigrp, isis, lisp, ospf, rip, static] required: true id: description: - The identifier for the protocol specified. type: str route_map: description: - The route map policy to constrain redistribution. type: str required: true rfc1583compatibility: description: - Configure 1583 compatibility for external path preferences. type: bool router_id: description: - Set OSPF process router-id. type: str shutdown: description: - Shutdown the OSPF protocol instance. type: bool summary_address: description: - Configure route summarization for redistribution. type: list elements: dict suboptions: prefix: description: - IP prefix in format x.x.x.x/ml. type: str required: true not_advertise: description: - Suppress advertising the specified summary. type: bool tag: description: - A 32-bit tag value. type: int table_map: description: - Policy for filtering/modifying OSPF routes before sending them to RIB. type: dict suboptions: name: description: - The Route Map name. type: str required: true filter: description: - Block the OSPF routes from being sent to RIB. type: bool timers: description: - Configure timer related constants. type: dict suboptions: lsa_arrival: description: - Mimimum interval between arrival of a LSA. type: int lsa_group_pacing: description: - LSA group refresh/maxage interval. type: int throttle: description: - Configure throttle related constants. type: dict suboptions: lsa: description: - Set rate-limiting for LSA generation. type: dict suboptions: start_interval: description: - The start interval. type: int hold_interval: description: - The hold interval. type: int max_interval: description: - The max interval. type: int spf: description: - Set OSPF SPF timers. type: dict suboptions: initial_spf_delay: description: - Initial SPF schedule delay in milliseconds. type: int min_hold_time: description: - Minimum hold time between SPF calculations. type: int max_wait_time: description: - Maximum wait time between SPF calculations. type: int vrfs: description: - Configure VRF specific OSPF settings. type: list elements: dict suboptions: areas: description: - Configure properties of OSPF Areas. type: list elements: dict suboptions: area_id: description: - The Area ID in IP Address format. type: str required: true authentication: description: - Authentication settings for the Area. type: dict suboptions: set: description: - Set authentication for the area. type: bool message_digest: description: - Use message-digest authentication. type: bool default_cost: description: - Specify the default cost for default summary LSA. type: int filter_list: description: - Filter prefixes between OSPF areas. type: list elements: dict suboptions: route_map: description: - The Route-map name. type: str required: true direction: description: - The direction to apply the route map. type: str choices: [in, out] required: true nssa: description: - NSSA settings for the area. type: dict suboptions: set: description: - Configure area as NSSA. type: bool default_information_originate: description: - Originate Type-7 default LSA into NSSA area. type: bool no_redistribution: description: - Do not send redistributed LSAs into NSSA area. type: bool no_summary: description: - Do not send summary LSAs into NSSA area. type: bool translate: description: - Translate LSA. type: dict suboptions: type7: description: - Translate from Type 7 to Type 5. type: dict suboptions: always: description: - Always translate LSAs type: bool never: description: - Never translate LSAs type: bool supress_fa: description: - Suppress forwarding address in translated LSAs. type: bool ranges: description: - Configure an address range for the area. type: list elements: dict suboptions: prefix: description: - IP in Prefix format (x.x.x.x/len) type: str required: true cost: description: - Cost to use for the range. type: int not_advertise: description: - Suppress advertising the specified range. type: bool stub: description: - Settings for configuring the area as a stub. type: dict suboptions: set: description: - Configure the area as a stub. type: bool no_summary: description: - Prevent ABR from sending summary LSAs into stub area. type: bool auto_cost: description: - Calculate OSPF cost according to bandwidth. type: dict suboptions: reference_bandwidth: description: - Reference bandwidth used to assign OSPF cost. type: int required: true unit: description: - Specify in which unit the reference bandwidth is specified. type: str required: True choices: [Gbps, Mbps] bfd: description: - Enable BFD on all OSPF interfaces. type: bool default_information: description: - Control distribution of default routes. type: dict suboptions: originate: description: - Distribute a default route. type: dict suboptions: set: description: - Enable distribution of default route. type: bool always: description: - Always advertise a default route. type: bool route_map: description: - Policy to control distribution of default routes type: str default_metric: description: - Specify default metric for redistributed routes. type: int distance: description: - Configure the OSPF administrative distance. type: int down_bit_ignore: description: - Configure a PE router to ignore the DN bit for network summary, external and NSSA external LSA. type: bool capability: description: - OSPF capability settings. type: dict suboptions: vrf_lite: description: - Enable VRF-lite capability settings. type: dict suboptions: set: description: - Enable VRF-lite support. type: bool evpn: description: - Ethernet VPN. type: bool graceful_restart: description: - Configure graceful restart. type: dict suboptions: set: description: - Enable graceful-restart. type: bool grace_period: description: - Configure maximum interval to restart gracefully. type: int helper_disable: description: - Enable/Disable helper mode. type: bool log_adjacency_changes: description: - Log changes in adjacency state. type: dict suboptions: log: description: - Enable/disable logging changes in adjacency state. type: bool detail: description: - Notify all state changes. type: bool max_lsa: description: - Feature to limit the number of non-self-originated LSAs. type: dict suboptions: max_non_self_generated_lsa: description: - Set the maximum number of non self-generated LSAs. type: int required: true threshold: description: - Threshold value (%) at which to generate a warning message. type: int ignore_count: description: - Set count on how many times adjacencies can be suppressed. type: int ignore_time: description: - Set time during which all adjacencies are suppressed. type: int reset_time: description: - Set number of minutes after which ignore-count is reset to zero. type: int warning_only: description: - Log a warning message when limit is exceeded. type: bool max_metric: description: - Maximize the cost metric. type: dict suboptions: router_lsa: description: - Router LSA configuration. type: dict suboptions: set: description: - Set router-lsa attribute. type: bool external_lsa: description: - External LSA configuration. type: dict suboptions: set: description: - Set external-lsa attribute. type: bool max_metric_value: description: - Set max metric value for external LSAs. type: int include_stub: description: - Advertise Max metric for Stub links as well. type: bool on_startup: description: - Effective only at startup. type: dict suboptions: set: description: - Set on-startup attribute. type: bool wait_period: description: - Wait period in seconds after startup. type: int wait_for_bgp_asn: description: - ASN of BGP to wait for. type: int summary_lsa: description: - Summary LSAs configuration. type: dict suboptions: set: description: - Set summary-lsa attribute. type: bool max_metric_value: description: - Max metric value for summary LSAs. type: int maximum_paths: description: - Maximum paths per destination. type: int name_lookup: description: - Display OSPF router ids as DNS names. type: bool passive_interface: description: - Suppress routing updates on the interface. type: dict suboptions: default: description: - Interfaces passive by default. type: bool redistribute: description: - Redistribute information from another routing protocol. type: list elements: dict suboptions: protocol: description: - The name of the protocol. type: str choices: [bgp, direct, eigrp, isis, lisp, ospf, rip, static] required: true id: description: - The identifier for the protocol specified. type: str route_map: description: - The route map policy to constrain redistribution. type: str required: true rfc1583compatibility: description: - Configure 1583 compatibility for external path preferences. type: bool router_id: description: - Set OSPF process router-id. type: str shutdown: description: - Shutdown the OSPF protocol instance. type: bool summary_address: description: - Configure route summarization for redistribution. type: list elements: dict suboptions: prefix: description: - IP prefix in format x.x.x.x/ml. type: str required: true not_advertise: description: - Suppress advertising the specified summary. type: bool tag: description: - A 32-bit tag value. type: int table_map: description: - Policy for filtering/modifying OSPF routes before sending them to RIB. type: dict suboptions: name: description: - The Route Map name. type: str required: true filter: description: - Block the OSPF routes from being sent to RIB. type: bool timers: description: - Configure timer related constants. type: dict suboptions: lsa_arrival: description: - Mimimum interval between arrival of a LSA. type: int lsa_group_pacing: description: - LSA group refresh/maxage interval. type: int throttle: description: - Configure throttle related constants. type: dict suboptions: lsa: description: - Set rate-limiting for LSA generation. type: dict suboptions: start_interval: description: - The start interval. type: int hold_interval: description: - The hold interval. type: int max_interval: description: - The max interval. type: int spf: description: - Set OSPF SPF timers. type: dict suboptions: initial_spf_delay: description: - Initial SPF schedule delay in milliseconds. type: int min_hold_time: description: - Minimum hold time between SPF calculations. type: int max_wait_time: description: - Maximum wait time between SPF calculations. type: int vrf: description: - Name/Identifier of the VRF. type: str required: true state: description: - The state the configuration should be left in. type: str choices: - merged - replaced - overridden - deleted - gathered - parsed - rendered default: merged """ EXAMPLES = """ # Using merged # Before state: # ------------- # nxos-9k-rdo# sh running-config | section "^router ospf .*" # nxos-9k-rdo# - name: Merge the provided configuration with the existing running configuration cisco.nxos.nxos_ospfv2: config: processes: - process_id: 100 router_id: 203.0.113.20 - process_id: 102 router_id: 198.51.100.1 areas: - area_id: 0.0.0.100 filter_list: - route_map: rmap_1 direction: in - route_map: rmap_2 direction: out ranges: - prefix: 198.51.100.64/27 not_advertise: true - prefix: 198.51.100.96/27 cost: 120 - area_id: 0.0.0.101 authentication: message_digest: true redistribute: - protocol: eigrp id: 120 route_map: rmap_1 - protocol: direct route_map: ospf102-direct-connect vrfs: - vrf: zone1 router_id: 198.51.100.129 redistribute: - protocol: static route_map: zone1-static-connect summary_address: - prefix: 198.51.100.128/27 tag: 121 - prefix: 198.51.100.160/27 areas: - area_id: 0.0.0.102 nssa: default_information_originate: true no_summary: true - area_id: 0.0.0.103 nssa: no_summary: true translate: type7: always: true - vrf: zone2 auto_cost: reference_bandwidth: 45 unit: Gbps state: merged # Task output # ------------- # before: {} # # commands: # - router ospf 102 # - router-id 198.51.100.1 # - redistribute eigrp 120 route-map rmap_1 # - redistribute direct route-map ospf102-direct-connect # - area 0.0.0.100 filter-list route-map rmap_1 in # - area 0.0.0.100 filter-list route-map rmap_2 out # - area 0.0.0.100 range 198.51.100.64/27 not-advertise # - area 0.0.0.100 range 198.51.100.96/27 cost 120 # - area 0.0.0.101 authentication message-digest # - vrf zone1 # - router-id 198.51.100.129 # - summary-address 198.51.100.128/27 tag 121 # - summary-address 198.51.100.160/27 # - redistribute static route-map zone1-static-connect # - area 0.0.0.102 nssa no-summary default-information-originate # - area 0.0.0.103 nssa no-summary # - area 0.0.0.103 nssa translate type7 always # - vrf zone2 # - auto-cost reference-bandwidth 45 Gbps # - router ospf 100 # - router-id 203.0.113.20 # # after: # processes: # - process_id: "100" # router_id: 203.0.113.20 # - areas: # - area_id: 0.0.0.100 # filter_list: # - direction: out # route_map: rmap_2 # - direction: in # route_map: rmap_1 # ranges: # - not_advertise: true # prefix: 198.51.100.64/27 # - cost: 120 # prefix: 198.51.100.96/27 # - area_id: 0.0.0.101 # authentication: # message_digest: true # process_id: "102" # redistribute: # - protocol: direct # route_map: ospf102-direct-connect # - id: "120" # protocol: eigrp # route_map: rmap_1 # router_id: 198.51.100.1 # vrfs: # - areas: # - area_id: 0.0.0.102 # nssa: # default_information_originate: true # no_summary: true # - area_id: 0.0.0.103 # nssa: # no_summary: true # translate: # type7: # always: true # redistribute: # - protocol: static # route_map: zone1-static-connect # router_id: 198.51.100.129 # vrf: zone1 # - auto_cost: # reference_bandwidth: 45 # unit: Gbps # vrf: zone2 # # After state: # ------------ # nxos-9k-rdo# sh running-config | section "^router ospf .*" # router ospf 100 # router-id 203.0.113.20 # router ospf 102 # router-id 198.51.100.1 # redistribute direct route-map ospf102-direct-connect # redistribute eigrp 120 route-map rmap_1 # area 0.0.0.100 filter-list route-map rmap_2 out # area 0.0.0.100 filter-list route-map rmap_1 in # area 0.0.0.100 range 198.51.100.64/27 not-advertise # area 0.0.0.100 range 198.51.100.96/27 cost 120 # area 0.0.0.101 authentication message-digest # vrf zone1 # router-id 198.51.100.129 # area 0.0.0.102 nssa no-summary default-information-originate # area 0.0.0.103 nssa no-summary # area 0.0.0.103 nssa translate type7 always # redistribute static route-map zone1-static-connect # summary-address 198.51.100.128/27 tag 121 # summary-address 198.51.100.160/27 # vrf zone2 # auto-cost reference-bandwidth 45 Gbps # Using replaced # Before state: # ------------ # nxos-9k-rdo# sh running-config | section "^router ospf .*" # router ospf 100 # router-id 203.0.113.20 # router ospf 102 # router-id 198.51.100.1 # redistribute direct route-map ospf102-direct-connect # redistribute eigrp 120 route-map rmap_1 # area 0.0.0.100 filter-list route-map rmap_2 out # area 0.0.0.100 filter-list route-map rmap_1 in # area 0.0.0.100 range 198.51.100.64/27 not-advertise # area 0.0.0.100 range 198.51.100.96/27 cost 120 # area 0.0.0.101 authentication message-digest # vrf zone1 # router-id 198.51.100.129 # area 0.0.0.102 nssa no-summary default-information-originate # area 0.0.0.103 nssa no-summary # area 0.0.0.103 nssa translate type7 always # redistribute static route-map zone1-static-connect # summary-address 198.51.100.128/27 tag 121 # summary-address 198.51.100.160/27 # vrf zone2 # auto-cost reference-bandwidth 45 Gbps - name: Replace device configurations of listed OSPF processes with provided configurations cisco.nxos.nxos_ospfv2: config: processes: - process_id: 102 router_id: 198.51.100.1 areas: - area_id: 0.0.0.100 filter_list: - route_map: rmap_8 direction: in ranges: - prefix: 198.51.100.64/27 not_advertise: true - area_id: 0.0.0.101 stub: no_summary: true redistribute: - protocol: eigrp id: 130 route_map: rmap_1 - protocol: direct route_map: ospf102-direct-connect vrfs: - vrf: zone1 router_id: 198.51.100.129 redistribute: - protocol: bgp id: 65563 route_map: zone1-bgp-connect areas: - area_id: 0.0.0.102 nssa: default_information_originate: true no_summary: true state: replaced # Task output # ------------- # before: # processes: # - process_id: "100" # router_id: 203.0.113.20 # - areas: # - area_id: 0.0.0.100 # filter_list: # - direction: out # route_map: rmap_2 # - direction: in # route_map: rmap_1 # ranges: # - not_advertise: true # prefix: 198.51.100.64/27 # - cost: 120 # prefix: 198.51.100.96/27 # - area_id: 0.0.0.101 # authentication: # message_digest: true # process_id: "102" # redistribute: # - protocol: direct # route_map: ospf102-direct-connect # - id: "120" # protocol: eigrp # route_map: rmap_1 # router_id: 198.51.100.1 # vrfs: # - areas: # - area_id: 0.0.0.102 # nssa: # default_information_originate: true # no_summary: true # - area_id: 0.0.0.103 # nssa: # no_summary: true # translate: # type7: # always: true # redistribute: # - protocol: static # route_map: zone1-static-connect # router_id: 198.51.100.129 # vrf: zone1 # - auto_cost: # reference_bandwidth: 45 # unit: Gbps # vrf: zone2 # # commands: # - router ospf 102 # - redistribute eigrp 130 route-map rmap_1 # - no redistribute eigrp 120 route-map rmap_1 # - area 0.0.0.100 filter-list route-map rmap_8 in # - no area 0.0.0.100 filter-list route-map rmap_2 out # - no area 0.0.0.100 range 198.51.100.96/27 # - no area 0.0.0.101 authentication # - area 0.0.0.101 stub no-summary # - vrf zone1 # - no summary-address 198.51.100.128/27 tag 121 # - no summary-address 198.51.100.160/27 # - redistribute bgp 65563 route-map zone1-bgp-connect # - no redistribute static route-map zone1-static-connect # - no area 0.0.0.103 nssa # - no area 0.0.0.103 nssa translate type7 always # - no vrf zone2 # # after: # processes: # - process_id: "100" # router_id: 203.0.113.20 # - areas: # - area_id: 0.0.0.101 # stub: # no_summary: true # - area_id: 0.0.0.100 # filter_list: # - direction: in # route_map: rmap_8 # ranges: # - not_advertise: true # prefix: 198.51.100.64/27 # process_id: "102" # redistribute: # - protocol: direct # route_map: ospf102-direct-connect # - id: "130" # protocol: eigrp # route_map: rmap_1 # router_id: 198.51.100.1 # vrfs: # - areas: # - area_id: 0.0.0.102 # nssa: # default_information_originate: true # no_summary: true # redistribute: # - id: "65563" # protocol: bgp # route_map: zone1-bgp-connect # router_id: 198.51.100.129 # vrf: zone1 # After state: # ------------ # nxos-9k-rdo# sh running-config | section "^router ospf .*" # router ospf 100 # router-id 203.0.113.20 # router ospf 102 # router-id 198.51.100.1 # area 0.0.0.101 stub no-summary # redistribute direct route-map ospf102-direct-connect # redistribute eigrp 130 route-map rmap_1 # area 0.0.0.100 filter-list route-map rmap_8 in # area 0.0.0.100 range 198.51.100.64/27 not-advertise # vrf zone1 # router-id 198.51.100.129 # area 0.0.0.102 nssa no-summary default-information-originate # redistribute bgp 65563 route-map zone1-bgp-connect # Using overridden # Before state: # ------------ # nxos-9k-rdo# sh running-config | section "^router ospf .*" # router ospf 100 # router-id 203.0.113.20 # router ospf 102 # router-id 198.51.100.1 # redistribute direct route-map ospf102-direct-connect # redistribute eigrp 120 route-map rmap_1 # area 0.0.0.100 filter-list route-map rmap_2 out # area 0.0.0.100 filter-list route-map rmap_1 in # area 0.0.0.100 range 198.51.100.64/27 not-advertise # area 0.0.0.100 range 198.51.100.96/27 cost 120 # area 0.0.0.101 authentication message-digest # vrf zone1 # router-id 198.51.100.129 # area 0.0.0.102 nssa no-summary default-information-originate # area 0.0.0.103 nssa no-summary # area 0.0.0.103 nssa translate type7 always # redistribute static route-map zone1-static-connect # summary-address 198.51.100.128/27 tag 121 # summary-address 198.51.100.160/27 # vrf zone2 # auto-cost reference-bandwidth 45 Gbps - name: Override all OSPF configuration with provided configuration cisco.nxos.nxos_ospfv2: config: processes: - process_id: 104 router_id: 203.0.113.20 - process_id: 102 router_id: 198.51.100.1 shutdown: true state: overridden # Task output # ------------- # before: # processes: # - process_id: "100" # router_id: 203.0.113.20 # - areas: # - area_id: 0.0.0.100 # filter_list: # - direction: out # route_map: rmap_2 # - direction: in # route_map: rmap_1 # ranges: # - not_advertise: true # prefix: 198.51.100.64/27 # - cost: 120 # prefix: 198.51.100.96/27 # - area_id: 0.0.0.101 # authentication: # message_digest: true # process_id: "102" # redistribute: # - protocol: direct # route_map: ospf102-direct-connect # - id: "120" # protocol: eigrp # route_map: rmap_1 # router_id: 198.51.100.1 # vrfs: # - areas: # - area_id: 0.0.0.102 # nssa: # default_information_originate: true # no_summary: true # - area_id: 0.0.0.103 # nssa: # no_summary: true # translate: # type7: # always: true # redistribute: # - protocol: static # route_map: zone1-static-connect # router_id: 198.51.100.129 # vrf: zone1 # - auto_cost: # reference_bandwidth: 45 # unit: Gbps # vrf: zone2 # # commands: # - no router ospf 100 # - router ospf 104 # - router-id 203.0.113.20 # - router ospf 102 # - shutdown # - no redistribute direct route-map ospf102-direct-connect # - no redistribute eigrp 120 route-map rmap_1 # - no area 0.0.0.100 filter-list route-map rmap_2 out # - no area 0.0.0.100 filter-list route-map rmap_1 in # - no area 0.0.0.100 range 198.51.100.64/27 # - no area 0.0.0.100 range 198.51.100.96/27 # - no area 0.0.0.101 authentication # - no vrf zone1 # - no vrf zone2 # # after: # processes: # - process_id: "102" # router_id: 198.51.100.1 # shutdown: true # - process_id: "104" # router_id: 203.0.113.20 # After state: # ------------ # nxos-9k-rdo# sh running-config | section "^router ospf .*" # router ospf 102 # router-id 198.51.100.1 # shutdown # router ospf 104 # router-id 203.0.113.20 # Using deleted to delete a single OSPF process # Before state: # ------------ # nxos-9k-rdo# sh running-config | section "^router ospf .*" # router ospf 100 # router-id 203.0.113.20 # router ospf 102 # router-id 198.51.100.1 # redistribute direct route-map ospf102-direct-connect # redistribute eigrp 120 route-map rmap_1 # area 0.0.0.100 filter-list route-map rmap_2 out # area 0.0.0.100 filter-list route-map rmap_1 in # area 0.0.0.100 range 198.51.100.64/27 not-advertise # area 0.0.0.100 range 198.51.100.96/27 cost 120 # area 0.0.0.101 authentication message-digest # vrf zone1 # router-id 198.51.100.129 # area 0.0.0.102 nssa no-summary default-information-originate # area 0.0.0.103 nssa no-summary # area 0.0.0.103 nssa translate type7 always # redistribute static route-map zone1-static-connect # summary-address 198.51.100.128/27 tag 121 # summary-address 198.51.100.160/27 # vrf zone2 # auto-cost reference-bandwidth 45 Gbps - name: Delete a single OSPF process cisco.nxos.nxos_ospfv2: config: processes: - process_id: 102 state: deleted # Task output # ------------- # before: # processes: # - process_id: "100" # router_id: 203.0.113.20 # - areas: # - area_id: 0.0.0.100 # filter_list: # - direction: out # route_map: rmap_2 # - direction: in # route_map: rmap_1 # ranges: # - not_advertise: true # prefix: 198.51.100.64/27 # - cost: 120 # prefix: 198.51.100.96/27 # - area_id: 0.0.0.101 # authentication: # message_digest: true # process_id: "102" # redistribute: # - protocol: direct # route_map: ospf102-direct-connect # - id: "120" # protocol: eigrp # route_map: rmap_1 # router_id: 198.51.100.1 # vrfs: # - areas: # - area_id: 0.0.0.102 # nssa: # default_information_originate: true # no_summary: true # - area_id: 0.0.0.103 # nssa: # no_summary: true # translate: # type7: # always: true # redistribute: # - protocol: static # route_map: zone1-static-connect # router_id: 198.51.100.129 # vrf: zone1 # - auto_cost: # reference_bandwidth: 45 # unit: Gbps # vrf: zone2 # # commands: # - no router ospf 102 # # after: # processes: # - process_id: "100" # router_id: 203.0.113.20 # After state: # ------------ # nxos-9k-rdo# sh running-config | section "^router ospf .*" # router ospf 100 # router-id 203.0.113.20 # Using deleted all OSPF processes from the device # Before state: # ------------ # nxos-9k-rdo# sh running-config | section "^router ospf .*" # router ospf 100 # router-id 203.0.113.20 # router ospf 102 # router-id 198.51.100.1 # redistribute direct route-map ospf102-direct-connect # redistribute eigrp 120 route-map rmap_1 # area 0.0.0.100 filter-list route-map rmap_2 out # area 0.0.0.100 filter-list route-map rmap_1 in # area 0.0.0.100 range 198.51.100.64/27 not-advertise # area 0.0.0.100 range 198.51.100.96/27 cost 120 # area 0.0.0.101 authentication message-digest # vrf zone1 # router-id 198.51.100.129 # area 0.0.0.102 nssa no-summary default-information-originate # area 0.0.0.103 nssa no-summary # area 0.0.0.103 nssa translate type7 always # redistribute static route-map zone1-static-connect # summary-address 198.51.100.128/27 tag 121 # summary-address 198.51.100.160/27 # vrf zone2 # auto-cost reference-bandwidth 45 Gbps - name: Delete all OSPF processes from the device cisco.nxos.nxos_ospfv2: state: deleted # Task output # ------------- # before: # processes: # - process_id: "100" # router_id: 203.0.113.20 # - areas: # - area_id: 0.0.0.100 # filter_list: # - direction: out # route_map: rmap_2 # - direction: in # route_map: rmap_1 # ranges: # - not_advertise: true # prefix: 198.51.100.64/27 # - cost: 120 # prefix: 198.51.100.96/27 # - area_id: 0.0.0.101 # authentication: # message_digest: true # process_id: "102" # redistribute: # - protocol: direct # route_map: ospf102-direct-connect # - id: "120" # protocol: eigrp # route_map: rmap_1 # router_id: 198.51.100.1 # vrfs: # - areas: # - area_id: 0.0.0.102 # nssa: # default_information_originate: true # no_summary: true # - area_id: 0.0.0.103 # nssa: # no_summary: true # translate: # type7: # always: true # redistribute: # - protocol: static # route_map: zone1-static-connect # router_id: 198.51.100.129 # vrf: zone1 # - auto_cost: # reference_bandwidth: 45 # unit: Gbps # vrf: zone2 # # commands: # - no router ospf 100 # - no router ospf 102 # # after: {} # After state: # ------------ # nxos-9k-rdo# sh running-config | section "^router ospf .*" # nxos-9k-rdo# # Using rendered - name: Render platform specific configuration lines (without connecting to the device) cisco.nxos.nxos_ospfv2: config: processes: - process_id: 100 router_id: 203.0.113.20 - process_id: 102 router_id: 198.51.100.1 areas: - area_id: 0.0.0.100 filter_list: - route_map: rmap_1 direction: in - route_map: rmap_2 direction: out ranges: - prefix: 198.51.100.64/27 not_advertise: true - prefix: 198.51.100.96/27 cost: 120 - area_id: 0.0.0.101 authentication: message_digest: true redistribute: - protocol: eigrp id: 120 route_map: rmap_1 - protocol: direct route_map: ospf102-direct-connect vrfs: - vrf: zone1 router_id: 198.51.100.129 redistribute: - protocol: static route_map: zone1-static-connect summary_address: - prefix: 198.51.100.128/27 tag: 121 - prefix: 198.51.100.160/27 areas: - area_id: 0.0.0.102 nssa: default_information_originate: true no_summary: true - area_id: 0.0.0.103 nssa: no_summary: true translate: type7: always: true - vrf: zone2 auto_cost: reference_bandwidth: 45 unit: Gbps state: rendered # Task Output (redacted) # ----------------------- # rendered: # - router ospf 100 # - router-id 203.0.113.20 # - router ospf 102 # - router-id 198.51.100.1 # - redistribute eigrp 120 route-map rmap_1 # - redistribute direct route-map ospf102-direct-connect # - area 0.0.0.100 filter-list route-map rmap_1 in # - area 0.0.0.100 filter-list route-map rmap_2 out # - area 0.0.0.100 range 198.51.100.64/27 not-advertise # - area 0.0.0.100 range 198.51.100.96/27 cost 120 # - area 0.0.0.101 authentication message-digest # - vrf zone1 # - router-id 198.51.100.129 # - summary-address 198.51.100.128/27 tag 121 # - summary-address 198.51.100.160/27 # - redistribute static route-map zone1-static-connect # - area 0.0.0.102 nssa no-summary default-information-originate # - area 0.0.0.103 nssa no-summary # - area 0.0.0.103 nssa translate type7 always # - vrf zone2 # - auto-cost reference-bandwidth 45 Gbps # Using parsed # parsed.cfg # ------------ # router ospf 100 # router-id 192.0.100.1 # area 0.0.0.101 nssa no-summary no-redistribution # area 0.0.0.102 stub no-summary # redistribute direct route-map ospf-direct-connect # redistribute eigrp 120 route-map rmap_1 # area 0.0.0.100 filter-list route-map rmap_2 out # area 0.0.0.100 filter-list route-map rmap_1 in # area 0.0.0.100 range 192.0.2.0/24 not-advertise # area 0.0.0.100 range 192.0.3.0/24 cost 120 # area 0.0.0.100 authentication message-digest # vrf zone1 # router-id 192.0.100.2 # area 0.0.100.1 nssa no-summary no-redistribution # redistribute static route-map zone1-direct-connect # summary-address 10.0.0.0/24 tag 120 # summary-address 11.0.0.0/24 not-advertise # vrf zone2 # auto-cost reference-bandwidth 45 Gbps # down-bit-ignore # capability vrf-lite evpn # shutdown # router ospf 102 # router-id 198.54.100.1 # shutdown # vrf zone2 # summary-address 192.0.8.0/24 tag 120 # vrf zone4 # shutdown - name: Parse externally provided OSPFv2 config cisco.nxos.nxos_ospfv2: running_config: "{{ lookup('file', 'ospfv2.cfg') }}" state: parsed # Task output (redacted) # ----------------------- # parsed: # processes: # - process_id: "100" # areas: # - area_id: 0.0.0.101 # nssa: # no_redistribution: true # no_summary: true # - area_id: 0.0.0.102 # stub: # no_summary: true # - area_id: 0.0.0.100 # authentication: # message_digest: true # filter_list: # - direction: out # route_map: rmap_2 # - direction: in # route_map: rmap_1 # ranges: # - not_advertise: true # prefix: 192.0.2.0/24 # - cost: 120 # prefix: 192.0.3.0/24 # redistribute: # - protocol: direct # route_map: ospf-direct-connect # - id: "120" # protocol: eigrp # route_map: rmap_1 # router_id: 192.0.100.1 # vrfs: # - vrf: zone1 # areas: # - area_id: 0.0.100.1 # nssa: # no_redistribution: true # no_summary: true # redistribute: # - protocol: static # route_map: zone1-direct-connect # router_id: 192.0.100.2 # summary_address: # - prefix: 10.0.0.0/24 # tag: 120 # - not_advertise: true # prefix: 11.0.0.0/24 # - vrf: zone2 # auto_cost: # reference_bandwidth: 45 # unit: Gbps # capability: # vrf_lite: # evpn: true # down_bit_ignore: true # shutdown: true # - process_id: "102" # router_id: 198.54.100.1 # shutdown: true # vrfs: # - vrf: zone2 # summary_address: # - prefix: 192.0.8.0/24 # tag: 120 # - vrf: zone4 # shutdown: true # Using gathered - name: Gather OSPFv2 facts using gathered cisco.nxos.nxos_ospfv2: state: gathered # Task output (redacted) # ----------------------- # gathered: # processes: # - process_id: "102" # areas: # - area_id: 0.0.0.101 # stub: # no_summary: true # - area_id: 0.0.0.100 # filter_list: # - direction: in # route_map: rmap_8 # ranges: # - not_advertise: true # prefix: 198.51.100.64/27 # redistribute: # - protocol: direct # route_map: ospf102-direct-connect # - id: "130" # protocol: eigrp # route_map: rmap_1 # router_id: 198.51.100.1 # vrfs: # - vrf: zone1 # areas: # - area_id: 0.0.0.102 # nssa: # default_information_originate: true # no_summary: true # redistribute: # - id: "65563" # protocol: bgp # route_map: zone1-bgp-connect # router_id: 198.51.100.129 # """ RETURN = """ before: description: The configuration prior to the model invocation. returned: always type: dict sample: > The configuration returned will always be in the same format of the parameters above. after: description: The resulting configuration model invocation. returned: when changed type: dict sample: > The configuration returned will always be in the same format of the parameters above. commands: description: The set of commands pushed to the remote device. returned: always type: list sample: - "router ospf 102" - "router-id 198.54.100.1" - "router ospf 100" - "router-id 192.0.100.1" - "redistribute eigrp 120 route-map rmap_1" - "redistribute direct route-map ospf-direct-connect" - "area 0.0.0.100 filter-list route-map rmap_1 in" - "area 0.0.0.100 filter-list route-map rmap_2 out" - "area 0.0.0.100 range 192.0.2.0/24 not-advertise" - "area 0.0.0.100 range 192.0.3.0/24 cost 120" - "vrf zone1" - "router-id 192.0.100.2" - "summary-address 10.0.0.0/24 tag 121" - "summary-address 11.0.0.0/24" - "redistribute static route-map zone1-direct-connect" - "vrf zone2" - "auto-cost reference-bandwidth 45 Gbps" - "capability vrf-lite evpn" """ from ansible.module_utils.basic import AnsibleModule from ansible_collections.cisco.nxos.plugins.module_utils.network.nxos.argspec.ospfv2.ospfv2 import ( Ospfv2Args, ) from ansible_collections.cisco.nxos.plugins.module_utils.network.nxos.config.ospfv2.ospfv2 import ( Ospfv2, ) def main(): """ Main entry point for module execution :returns: the result form module invocation """ required_if = [ ("state", "merged", ("config",)), ("state", "replaced", ("config",)), ("state", "overridden", ("config",)), ("state", "rendered", ("config",)), ("state", "parsed", ("running_config",)), ] module = AnsibleModule( argument_spec=Ospfv2Args.argument_spec, required_if=required_if, supports_check_mode=True, ) result = Ospfv2(module).execute_module() module.exit_json(**result) if __name__ == "__main__": main()