Server IP : 85.214.239.14 / Your IP : 3.133.156.74 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/ios/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 ios_ospfv2 """ from __future__ import absolute_import, division, print_function __metaclass__ = type DOCUMENTATION = """ module: ios_ospfv2 short_description: Resource module to configure OSPFv2. description: This module configures and manages the Open Shortest Path First (OSPF) version 2 on IOS platforms. version_added: 1.0.0 author: Sumit Jaiswal (@justjais) notes: - Tested against Cisco IOSXE Version 17.3 on CML. - This module works with connection C(network_cli). See U(https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html) options: config: description: A dictionary of OSPF options. type: dict suboptions: processes: description: - List of OSPF instance configurations. type: list elements: dict suboptions: process_id: description: Process ID required: true type: int vrf: description: Specify parameters for a VPN Routing/Forwarding instance type: str address_family: description: Router Address Family configuration mode type: dict suboptions: default: description: Set a command to its defaults type: bool snmp_context: description: - Modify snmp parameters - Configure SNMP context name type: str topology: description: Associate the routing protocol to a topology instance type: dict suboptions: name: description: Routing topology instance name type: str base: description: Entering router topology sub mode type: bool tid: description: - Configuring the routing protocol topology tid - Note, please refer vendor documentation for valid values type: bool adjacency: description: To configure control adjacency formation type: dict suboptions: min_adjacency: description: - Initial number of adjacencies allowed to be forming in an area - Please refer vendor documentation for valid values type: int max_adjacency: description: - Maximum number of adjacencies allowed to be forming - Please refer vendor documentation for valid values type: int none: description: No initial type: bool areas: description: OSPF area parameters type: list elements: dict suboptions: area_id: description: - OSPF area ID as a decimal value. Please refer vendor documentation of Valid values. - OSPF area ID in IP address format(e.g. A.B.C.D) type: str authentication: description: Area authentication type: dict suboptions: enable: description: Enable area authentication type: bool message_digest: description: Use IPsec authentication type: bool capability: description: - Enable area specific capability - Enable exclusion of links from base topology type: bool default_cost: description: - Set the summary default-cost of a NSSA/stub area - Stub's advertised external route metric - Note, please refer vendor documentation for respective valid values type: int filter_list: description: Filter networks between OSPF areas type: list elements: dict suboptions: name: description: Name of an IP prefix-list type: str direction: description: The direction to apply on the filter networks sent to and from this area. type: str choices: ["in", "out"] required: true nssa: description: Specify a NSSA area type: dict suboptions: set: description: Enable a NSSA area type: bool default_information_originate: description: Originate Type 7 default into NSSA area type: dict suboptions: metric: description: OSPF default metric type: int metric_type: description: - OSPF metric type for default routes - OSPF Link State type type: int choices: [1, 2] nssa_only: description: Limit default advertisement to this NSSA area type: bool no_ext_capability: description: Do not send domain specific capabilities into NSSA type: bool no_redistribution: description: No redistribution into this NSSA area type: bool no_summary: description: Do not send summary LSA into NSSA type: bool translate: description: - Translate LSA - Always translate LSAs on this ABR - Suppress forwarding address in translated LSAs type: str choices: ["always", "suppress-fa"] ranges: description: Summarize routes matching address/mask (border routers only) type: list elements: dict suboptions: address: description: IP address to match type: str netmask: description: IP mask for address type: str advertise: description: - Advertise this range (default) - Since, advertise when enabled is not shown in running-config idempotency won't be maintained for the play in the second or next run of the play. type: bool cost: description: User specified metric for this range type: int not_advertise: description: DoNotAdvertise this range type: bool sham_link: description: Define a sham link and its parameters type: dict suboptions: source: description: IP addr associated with sham-link source (A.B.C.D) type: str destination: description: IP addr associated with sham-link destination (A.B.C.D) type: str cost: description: - Associate a cost with the sham-link - Cost of the sham-link - Note, please refer vendor documentation for respective valid values type: int ttl_security: description: - TTL security check - Maximum number of IP hops allowed type: int stub: description: - Specify a stub area - Backbone can not be configured as stub area type: dict suboptions: set: description: Enable a stub area type: bool no_ext_capability: description: Do not send domain specific capabilities into stub area type: bool no_summary: description: Do not send summary LSA into stub area type: bool auto_cost: description: Calculate OSPF interface cost according to bandwidth type: dict suboptions: set: description: Enable OSPF auto-cost type: bool reference_bandwidth: description: - Use reference bandwidth method to assign OSPF cost - Note, refer vendor documentation for respective valid values type: int bfd: description: - BFD configuration commands - Enable BFD on all interfaces type: bool capability: description: Enable specific OSPF feature type: dict suboptions: lls: description: Link-local Signaling (LLS) support type: bool opaque: description: Opaque LSA type: bool transit: description: Transit Area type: bool vrf_lite: description: Do not perform PE specific checks type: bool compatible: description: OSPF router compatibility list type: dict suboptions: rfc1583: description: compatible with RFC 1583 type: bool rfc1587: description: compatible with RFC 1587 type: bool rfc5243: description: supports DBD exchange optimization type: bool default_information: description: Control distribution of default information type: dict suboptions: originate: description: Distribute a default route type: bool always: description: Always advertise default route type: bool metric: description: - OSPF default metric - Note, refer vendor documentation for respective valid values type: int metric_type: description: - OSPF metric type for default routes - Note, please refer vendor documentation for respective valid range type: int route_map: description: Route-map reference name type: str default_metric: description: Set metric of redistributed routes type: int discard_route: description: Enable or disable discard-route installation type: dict suboptions: set: description: Enable discard-route installation type: bool external: description: - Discard route for redistributed summarised routes - Administrative distance for redistributed summarised routes - Note, please refer vendor documentation for respective valid range type: int internal: description: - Discard route for summarised internal routes - Administrative distance for summarised internal routes - Note, please refer vendor documentation for respective valid range type: int distance: description: Define an administrative distance type: dict suboptions: admin_distance: description: OSPF Administrative distance type: dict suboptions: distance: description: Administrative distance type: int address: description: IP Source address type: str wildcard_bits: description: Wildcard bits type: str acl: description: Access-list name/number type: str ospf: description: OSPF distance type: dict suboptions: external: description: External type 5 and type 7 routes type: int inter_area: description: Inter-area routes type: int intra_area: description: Intra-area routes type: int distribute_list: description: Filter networks in routing updates type: dict suboptions: acls: description: IP access list type: list elements: dict suboptions: name: description: IP access list name/number type: str required: true direction: description: Filter incoming and outgoing routing updates. type: str required: true choices: ["in", "out"] interface: description: - Interface configuration (GigabitEthernet A/B) - Valid with incoming traffic type: str protocol: description: - Protocol config (bgp 1). - Valid with outgoing traffic type: str prefix: description: Filter prefixes in routing updates type: dict suboptions: name: description: Name of an IP prefix-list type: str required: true gateway_name: description: Gateway name for filtering incoming updates based on gateway type: str direction: description: Filter incoming and outgoing routing updates. type: str required: true choices: ["in", "out"] interface: description: - Interface configuration (GigabitEthernet A/B) - Valid with incoming traffic type: str protocol: description: - Protocol config (bgp 1). - Valid with outgoing traffic type: str route_map: description: Filter prefixes in routing updates type: dict suboptions: name: description: Route-map name type: str required: true domain_id: description: OSPF domain-id type: dict suboptions: ip_address: description: IP address type: dict suboptions: address: description: OSPF domain ID in IP address format type: str secondary: description: Secondary Domain-ID type: bool "null": description: Null Domain-ID type: bool domain_tag: description: - OSPF domain-tag which is OSPF domain tag - 32-bit value - Note, please refer vendor documentation for respective valid range type: int event_log: description: Event Logging type: dict suboptions: enable: description: Enable event Logging type: bool one_shot: description: Disable Logging When Log Buffer Becomes Full type: bool pause: description: Pause Event Logging type: bool size: description: - Maximum Number of Events Stored in the Event Log - Note, refer vendor documentation for respective valid values type: int help: description: Description of the interactive help system type: bool ignore: description: - Do not complain about specific event - Do not complain upon receiving LSA of the specified type, MOSPF Type 6 LSA type: bool interface_id: description: - Source of the interface ID - SNMP MIB ifIndex type: bool ispf: description: Enable incremental SPF computation type: bool limit: description: Limit a specific OSPF feature and LS update, DBD, and LS request retransmissions type: dict suboptions: dc: description: Demand circuit retransmissions type: dict suboptions: number: description: The maximum number of retransmissions type: int disable: description: Disble the feature type: bool non_dc: description: Non-demand-circuit retransmissions type: dict suboptions: number: description: The maximum number of retransmissions type: int disable: description: Disble the feature type: bool local_rib_criteria: description: Enable or disable usage of local RIB as route criteria type: dict suboptions: enable: description: Enable usage of local RIB as route criteria type: bool forwarding_address: description: Local RIB used to validate external/NSSA forwarding addresses type: bool inter_area_summary: description: Local RIB used as criteria for inter-area summaries type: bool nssa_translation: description: Local RIB used as criteria for NSSA translation type: bool log_adjacency_changes: description: Log changes in adjacency state type: dict suboptions: set: description: Log changes in adjacency state type: bool detail: description: Log all state changes type: bool max_lsa: description: Maximum number of non self-generated LSAs to accept type: dict suboptions: number: description: - Maximum number of non self-generated LSAs to accept - Note, refer vendor documentation for respective valid values type: int threshold_value: description: - Threshold value (%) at which to generate a warning msg - Note, refer vendor documentation for respective valid values type: int ignore_count: description: - Maximum number of times adjacencies can be suppressed - Note, refer vendor documentation for respective valid values type: int ignore_time: description: - Number of minutes during which all adjacencies are suppressed - Note, refer vendor documentation for respective valid values type: int reset_time: description: - Number of minutes after which ignore-count is reset to zero - Note, refer vendor documentation for respective valid values type: int warning_only: description: Only give a warning message when limit is exceeded type: bool max_metric: description: Set maximum metric type: dict suboptions: router_lsa: description: Maximum metric in self-originated router-LSAs type: bool required: true external_lsa: description: - Override external-lsa metric with max-metric value - Overriding metric in external-LSAs - Note, refer vendor documentation for respective valid values type: int include_stub: description: Set maximum metric for stub links in router-LSAs type: bool on_startup: description: Set maximum metric temporarily after reboot type: dict suboptions: time: description: - Time, in seconds, router-LSAs are originated with max-metric - Note, please refer vendor documentation for respective valid range type: int wait_for_bgp: description: Let BGP decide when to originate router-LSA with normal metric type: bool summary_lsa: description: - Override summary-lsa metric with max-metric value - Note, please refer vendor documentation for respective valid range type: int maximum_paths: description: - Forward packets over multiple paths - Number of paths type: int mpls: description: Configure MPLS routing protocol parameters type: dict suboptions: ldp: description: routing protocol commands for MPLS LDP type: dict suboptions: autoconfig: description: routing protocol commands for MPLS LDP type: dict suboptions: set: description: Configure LDP automatic configuration and set the config type: bool area: description: Configure an OSPF area to run MPLS LDP type: str sync: description: Configure LDP-IGP Synchronization type: bool traffic_eng: description: Let BGP decide when to originate router-LSA with normal metric type: dict suboptions: area: description: - Configure an ospf area to run MPLS Traffic Engineering - OSPF area ID as a decimal value or in IP address format type: str autoroute_exclude: description: - MPLS TE autoroute exclude - Filter prefixes based on name of an IP prefix-list type: str interface: description: MPLS TE interface configuration for this OSPF process type: dict suboptions: interface_type: description: TE Interface configuration (GigabitEthernet A/B) type: str area: description: - Advertise MPLS TE information for this interface into area - OSPF area ID as a decimal value type: int mesh_group: description: Traffic Engineering Mesh-Group advertisement type: dict suboptions: id: description: Mesh Group Id type: int interface: description: Interface configuration (GigabitEthernet A/B) type: str area: description: configure flooding scope as area type: str multicast_intact: description: MPLS TE and PIM interaction type: bool router_id_interface: description: Router Interface configuration (GigabitEthernet A/B) type: str neighbor: description: Specify a neighbor router type: dict suboptions: address: description: Neighbor address (A.B.C.D) type: str cost: description: - OSPF cost for point-to-multipoint neighbor metric - Note, please refer vendor documentation for respective valid range type: int database_filter: description: - Filter OSPF LSA during synchronization and flooding for point-to-multipoint neighbor - Filter all outgoing LSA type: bool poll_interval: description: OSPF dead-router polling interval of non-broadcast neighbor in Seconds type: int priority: description: OSPF priority of non-broadcast neighbor priority type: int network: description: Enable routing on an IP network type: list elements: dict suboptions: address: description: Network number type: str wildcard_bits: description: OSPF wild card bits type: str area: description: Set the OSPF area ID type: str nsf: description: Non-stop forwarding type: dict suboptions: cisco: description: Cisco Non-stop forwarding type: dict suboptions: helper: description: helper support type: bool disable: description: disable helper support type: bool ietf: description: IETF graceful restart type: dict suboptions: helper: description: helper support type: bool disable: description: disable helper support type: bool strict_lsa_checking: description: enable helper strict LSA checking type: bool passive_interface: description: - passive_interface param is deprecated and a newer param passive_interfaces with added functionality's is introduced, please meke use of the new available passive_interfaces instead. - Suppress routing updates on an interface (GigabitEthernet A/B) - Interface name with respective interface number type: str passive_interfaces: description: Suppress routing updates on an interface type: dict suboptions: default: description: Suppress routing updates on all interfaces type: bool interface: description: Suppress/Un-Suppress routing updates on interface type: dict suboptions: set_interface: description: Suppress/Un-Suppress routing updates type: bool name: description: Name of interface (GigabitEthernet A/B) type: list elements: str prefix_suppression: description: Enable prefix suppression type: bool priority: description: - OSPF topology priority - Note, refer vendor documentation for respective valid values type: int queue_depth: description: Hello/Router process queue depth type: dict suboptions: hello: description: OSPF Hello process queue depth type: dict suboptions: max_packets: description: maximum number of packets in the queue type: int unlimited: description: Unlimited queue depth type: bool update: description: OSPF Router process queue depth type: dict suboptions: max_packets: description: maximum number of packets in the queue type: int unlimited: description: Unlimited queue depth type: bool router_id: description: - Router-id address for this OSPF process - OSPF router-id in IP address format (A.B.C.D) type: str shutdown: description: Shutdown the router process type: bool summary_address: description: Configure IP address summaries type: dict suboptions: address: description: IP summary address type: str mask: description: IP Summary mask type: str not_advertise: description: Do not advertise or translate type: bool nssa_only: description: Limit summary to NSSA areas type: bool tag: description: Set tag type: int timers: description: Adjust routing timers type: dict suboptions: lsa: description: - OSPF LSA timers, arrival timer - The minimum interval in milliseconds between accepting the same LSA - Note, refer vendor documentation for respective valid values type: int pacing: description: OSPF pacing timers type: dict suboptions: flood: description: - OSPF flood pacing timer - The minimum interval in msec to pace limit flooding on interface - Note, refer vendor documentation for respective valid values type: int lsa_group: description: - OSPF LSA group pacing timer - Interval in sec between group of LSA being refreshed or maxaged - Note, refer vendor documentation for respective valid values type: int retransmission: description: - OSPF retransmission pacing timer - The minimum interval in msec between neighbor retransmissions - Note, refer vendor documentation for respective valid values type: int throttle: description: OSPF throttle timers type: dict suboptions: lsa: description: OSPF LSA throttle timers type: dict suboptions: first_delay: description: - Delay to generate first occurrence of LSA in milliseconds - Note, refer vendor documentation for respective valid values type: int min_delay: description: - Minimum delay between originating the same LSA in milliseconds - Note, refer vendor documentation for respective valid values type: int max_delay: description: - Maximum delay between originating the same LSA in milliseconds - Note, refer vendor documentation for respective valid values type: int spf: description: OSPF SPF throttle timers - Delay between receiving a change to SPF calculation in milliseconds - Note, refer vendor documentation for respective valid values type: dict suboptions: receive_delay: description: - Delay between receiving a change to SPF calculation in milliseconds - Note, refer vendor documentation for respective valid values type: int between_delay: description: - Delay between first and second SPF calculation in milliseconds - Note, refer vendor documentation for respective valid values type: int max_delay: description: - Maximum wait time in milliseconds for SPF calculations - Note, refer vendor documentation for respective valid values type: int traffic_share: description: - How to compute traffic share over alternate paths - All traffic shared among min metric paths - Use different interfaces for equal-cost paths type: bool ttl_security: description: TTL security check type: dict suboptions: set: description: Enable TTL Security on all interfaces type: bool hops: description: - Maximum number of IP hops allowed - Note, refer vendor documentation for respective valid values type: int running_config: description: - This option is used only with state I(parsed). - The value of this option should be the output received from the IOS device by executing the command B(sh 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 state: description: - The state the configuration should be left in - The states I(rendered), I(gathered) and I(parsed) does not perform any change on the device. - The state I(rendered) will transform the configuration in C(config) option to platform specific CLI commands which will be returned in the I(rendered) key within the result. For state I(rendered) active connection to remote host is not required. - The state I(gathered) will fetch the running configuration from device and transform it into structured data in the format as per the resource module argspec and the value is returned in the I(gathered) key within the result. - The state I(parsed) reads the configuration from C(running_config) option and transforms it into JSON format as per the resource module parameters and the value is returned in the I(parsed) key within the result. The value of C(running_config) option should be the same format as the output of command I(show running-config | include ip route|ipv6 route) executed on device. For state I(parsed) active connection to remote host is not required. type: str choices: - merged - replaced - overridden - deleted - gathered - parsed - rendered default: merged """ EXAMPLES = """ # Using deleted # Before state: # ------------- # # router-ios#sh running-config | section ^router ospf # router ospf 200 vrf blue # domain-id 192.0.3.1 # max-metric router-lsa on-startup 100 # auto-cost reference-bandwidth 4 # area 10 capability default-exclusion # distribute-list 10 out # distribute-list 123 in # router ospf 1 # max-metric router-lsa on-startup 110 # area 10 authentication message-digest # area 10 nssa default-information-originate metric 10 # area 10 nssa translate type7 suppress-fa # area 10 default-cost 10 # area 10 filter-list prefix test_prefix_out out # network 198.51.100.0 0.0.0.255 area 5 # default-information originate - name: Delete provided OSPF V2 processes cisco.ios.ios_ospfv2: config: processes: - process_id: 1 - process_id: 200 vrf: blue state: deleted # Commands Fired: # --------------- # # "commands": [ # "no router ospf 1" # ] # After state: # ------------- # router-ios#sh running-config | section ^router ospf # router ospf 200 vrf blue # domain-id 192.0.3.1 # max-metric router-lsa on-startup 100 # auto-cost reference-bandwidth 4 # area 10 capability default-exclusion # distribute-list 10 out # distribute-list 123 in # Using deleted without any config passed (NOTE: This will delete all OSPFV2 configuration from device) # Before state: # ------------- # # router-ios#sh running-config | section ^router ospf # router ospf 200 vrf blue # domain-id 192.0.3.1 # max-metric router-lsa on-startup 100 # auto-cost reference-bandwidth 4 # area 10 capability default-exclusion # distribute-list 10 out # distribute-list 123 in # router ospf 1 # max-metric router-lsa on-startup 110 # area 10 authentication message-digest # area 10 nssa default-information-originate metric 10 # area 10 nssa translate type7 suppress-fa # area 10 default-cost 10 # area 10 filter-list prefix test_prefix_out out # network 198.51.100.0 0.0.0.255 area 5 # default-information originate - name: Delete all OSPF processes cisco.ios.ios_ospfv2: state: deleted # Commands Fired: # --------------- # # "commands": [ # "no router ospf 200 vrf blue", # "no router ospf 1" # ] # After state: # ------------- # router-ios#sh running-config | section ^router ospf # router-ios# # Using merged # Before state: # ------------- # # router-ios#sh running-config | section ^router ospf # router-ios# - name: Merge provided OSPF V2 configuration cisco.ios.ios_ospfv2: config: processes: - process_id: 1 max_metric: router_lsa: true on_startup: time: 110 areas: - area_id: "5" capability: true authentication: enable: true - area_id: "10" authentication: message_digest: true nssa: default_information_originate: metric: 10 translate: suppress-fa default_cost: 10 filter_list: - name: test_prefix_in direction: in - name: test_prefix_out direction: out network: - address: 198.51.100.0 wildcard_bits: 0.0.0.255 area: 5 default_information: originate: true passive_interfaces: default: true interface: set_interface: False name: - GigabitEthernet0/1 - GigabitEthernet0/2 - process_id: 200 vrf: blue domain_id: ip_address: address: 192.0.3.1 max_metric: router_lsa: true on_startup: time: 100 auto_cost: reference_bandwidth: 4 areas: - area_id: "10" capability: true distribute_list: acls: - name: 10 direction: out - name: 123 direction: in state: merged # Commands Fired: # --------------- # # "commands": [ # "router ospf 200 vrf blue", # "auto-cost reference-bandwidth 4", # "distribute-list 10 out", # "distribute-list 123 in", # "domain-id 192.0.3.1", # "max-metric router-lsa on-startup 100", # "area 10 capability default-exclusion", # "router ospf 1", # "default-information originate", # "max-metric router-lsa on-startup 110", # "network 198.51.100.0 0.0.0.255 area 5", # "area 10 authentication message-digest", # "area 10 default-cost 10", # "area 10 nssa translate type7 suppress-fa", # "area 10 nssa default-information-originate metric 10", # "area 10 filter-list prefix test_prefix_out out", # "area 10 filter-list prefix test_prefix_in in", # "area 5 authentication", # "area 5 capability default-exclusion" # "passive-interface default" # "no passive-interface GigabitEthernet0/1" # ] # After state: # ------------- # # router-ios#sh running-config | section ^router ospf # router ospf 200 vrf blue # domain-id 192.0.3.1 # max-metric router-lsa on-startup 100 # auto-cost reference-bandwidth 4 # area 10 capability default-exclusion # distribute-list 10 out # distribute-list 123 in # router ospf 1 # max-metric router-lsa on-startup 110 # area 10 authentication message-digest # area 10 nssa default-information-originate metric 10 # area 10 nssa translate type7 suppress-fa # area 10 default-cost 10 # area 10 filter-list prefix test_prefix_out out # network 198.51.100.0 0.0.0.255 area 5 # default-information originate # passive-interface default # no passive-interface GigabitEthernet0/1 # no passive-interface GigabitEthernet0/2 # Using overridden # Before state: # ------------- # # router-ios#sh running-config | section ^router ospf # router ospf 200 vrf blue # domain-id 192.0.3.1 # max-metric router-lsa on-startup 100 # auto-cost reference-bandwidth 4 # area 10 capability default-exclusion # distribute-list 10 out # distribute-list 123 in # router ospf 1 # max-metric router-lsa on-startup 110 # area 10 authentication message-digest # area 10 nssa default-information-originate metric 10 # area 10 nssa translate type7 suppress-fa # area 10 default-cost 10 # area 10 filter-list prefix test_prefix_out out # network 198.51.100.0 0.0.0.255 area 5 # default-information originate - name: Override provided OSPF V2 configuration cisco.ios.ios_ospfv2: config: processes: - process_id: 200 vrf: blue domain_id: ip_address: address: 192.0.4.1 max_metric: router_lsa: true on_startup: time: 200 maximum_paths: 15 ttl_security: hops: 7 areas: - area_id: "10" default_cost: 10 authentication: message_digest: true - process_id: 100 vrf: ospf_vrf domain_id: ip_address: address: 192.0.5.1 auto_cost: reference_bandwidth: 5 areas: - area_id: "5" authentication: message_digest: true nssa: default_information_originate: metric: 10 translate: suppress-fa state: overridden # Commands Fired: # --------------- # # "commands": [ # "no router ospf 1", # "router ospf 100 vrf ospf_vrf", # "auto-cost reference-bandwidth 5", # "domain-id 192.0.5.1", # "area 5 authentication message-digest", # "area 5 nssa translate type7 suppress-fa", # "area 5 nssa default-information-originate metric 10", # "router ospf 200 vrf blue", # "no auto-cost reference-bandwidth 4", # "no distribute-list 10 out", # "no distribute-list 123 in", # "domain-id 192.0.4.1", # "max-metric router-lsa on-startup 200", # "maximum-paths 15", # "ttl-security all-interfaces hops 7", # "area 10 authentication message-digest", # "no area 10 capability default-exclusion", # "area 10 default-cost 10" # ] # After state: # ------------- # # router-ios#sh running-config | section ^router ospf # router ospf 200 vrf blue # domain-id 192.0.4.1 # max-metric router-lsa on-startup 200 # ttl-security all-interfaces hops 7 # area 10 authentication message-digest # area 10 default-cost 10 # maximum-paths 15 # router ospf 100 vrf ospf_vrf # domain-id 192.0.5.1 # auto-cost reference-bandwidth 5 # area 5 authentication message-digest # area 5 nssa default-information-originate metric 10 # area 5 nssa translate type7 suppress-fa # Using replaced # Before state: # ------------- # # router-ios#sh running-config | section ^router ospf # router ospf 200 vrf blue # domain-id 192.0.3.1 # max-metric router-lsa on-startup 100 # auto-cost reference-bandwidth 4 # area 10 capability default-exclusion # distribute-list 10 out # distribute-list 123 in # router ospf 1 # max-metric router-lsa on-startup 110 # area 10 authentication message-digest # area 10 nssa default-information-originate metric 10 # area 10 nssa translate type7 suppress-fa # area 10 default-cost 10 # area 10 filter-list prefix test_prefix_out out # network 198.51.100.0 0.0.0.255 area 5 # default-information originate - name: Replaced provided OSPF V2 configuration cisco.ios.ios_ospfv2: config: processes: - process_id: 200 vrf: blue domain_id: ip_address: address: 192.0.4.1 max_metric: router_lsa: true on_startup: time: 200 maximum_paths: 15 ttl_security: hops: 7 areas: - area_id: "10" default_cost: 10 authentication: message_digest: true - process_id: 100 vrf: ospf_vrf domain_id: ip_address: address: 192.0.5.1 auto_cost: reference_bandwidth: 5 areas: - area_id: "5" authentication: message_digest: true nssa: default_information_originate: metric: 10 translate: suppress-fa state: replaced # Commands Fired: # --------------- # "commands": [ # "router ospf 100 vrf ospf_vrf", # "auto-cost reference-bandwidth 5", # "domain-id 192.0.5.1", # "area 5 authentication message-digest", # "area 5 nssa translate type7 suppress-fa", # "area 5 nssa default-information-originate metric 10", # "router ospf 200 vrf blue", # "no auto-cost reference-bandwidth 4", # "no distribute-list 10 out", # "no distribute-list 123 in", # "domain-id 192.0.4.1", # "max-metric router-lsa on-startup 200", # "maximum-paths 15", # "ttl-security all-interfaces hops 7", # "area 10 authentication message-digest", # "no area 10 capability default-exclusion", # "area 10 default-cost 10" # ] # After state: # ------------- # router-ios#sh running-config | section ^router ospf # router ospf 200 vrf blue # domain-id 192.0.4.1 # max-metric router-lsa on-startup 200 # ttl-security all-interfaces hops 7 # area 10 authentication message-digest # area 10 default-cost 10 # maximum-paths 15 # router ospf 100 vrf ospf_vrf # domain-id 192.0.5.1 # auto-cost reference-bandwidth 5 # area 5 authentication message-digest # area 5 nssa default-information-originate metric 10 # area 5 nssa translate type7 suppress-fa # router ospf 1 # max-metric router-lsa on-startup 110 # area 5 capability default-exclusion # area 5 authentication # area 10 authentication message-digest # area 10 nssa default-information-originate metric 10 # area 10 nssa translate type7 suppress-fa # area 10 default-cost 10 # area 10 filter-list prefix test_prefix_in in # area 10 filter-list prefix test_prefix_out out # network 198.51.100.0 0.0.0.255 area 5 # default-information originate # Using Gathered # Before state: # ------------- # # router-ios#sh running-config | section ^router ospf # router ospf 200 vrf blue # domain-id 192.0.3.1 # max-metric router-lsa on-startup 100 # auto-cost reference-bandwidth 4 # area 10 capability default-exclusion # distribute-list 10 out # distribute-list 123 in # router ospf 1 # max-metric router-lsa on-startup 110 # area 10 authentication message-digest # area 10 nssa default-information-originate metric 10 # area 10 nssa translate type7 suppress-fa # area 10 default-cost 10 # area 10 filter-list prefix test_prefix_out out # network 198.51.100.0 0.0.0.255 area 5 # default-information originate - name: Gather OSPFV2 provided configurations cisco.ios.ios_ospfv2: config: state: gathered # Module Execution Result: # ------------------------ # # "gathered": { # "processes": [ # { # "areas": [ # { # "area_id": "5", # "authentication": { # "enable": true # }, # "capability": true # }, # { # "area_id": "10", # "authentication": { # "message_digest": true # }, # "default_cost": 10, # "filter_list": [ # { # "direction": "in", # "name": "test_prefix_in" # }, # { # "direction": "out", # "name": "test_prefix_out" # } # ], # "nssa": { # "default_information_originate": { # "metric": 10 # }, # "translate": "suppress-fa" # } # } # ], # "default_information": { # "originate": true # }, # "max_metric": { # "on_startup": { # "time": 110 # }, # "router_lsa": true # }, # "network": { # "address": "198.51.100.0", # "area": "5", # "wildcard_bits": "0.0.0.255" # }, # "process_id": 1 # }, # { # "areas": [ # { # "area_id": "10", # "capability": true # } # ], # "auto_cost": { # "reference_bandwidth": 4 # }, # "distribute_list": { # "acls": [ # { # "direction": "out", # "name": "10" # }, # { # "direction": "in", # "name": "123" # } # ] # }, # "domain_id": { # "ip_address": { # "address": "192.0.3.1" # } # }, # "max_metric": { # "on_startup": { # "time": 100 # }, # "router_lsa": true # }, # "process_id": 200, # "vrf": "blue" # } # ] # } # After state: # ------------ # # router-ios#sh running-config | section ^router ospf # router ospf 200 vrf blue # domain-id 192.0.3.1 # max-metric router-lsa on-startup 100 # auto-cost reference-bandwidth 4 # area 10 capability default-exclusion # distribute-list 10 out # distribute-list 123 in # router ospf 1 # max-metric router-lsa on-startup 110 # area 10 authentication message-digest # area 10 nssa default-information-originate metric 10 # area 10 nssa translate type7 suppress-fa # area 10 default-cost 10 # area 10 filter-list prefix test_prefix_out out # network 198.51.100.0 0.0.0.255 area 5 # default-information originate # Using Rendered - name: Render the commands for provided configuration cisco.ios.ios_ospfv2: config: processes: - process_id: 1 max_metric: router_lsa: true on_startup: time: 110 areas: - area_id: "5" capability: true authentication: enable: true - area_id: "10" authentication: message_digest: true nssa: default_information_originate: metric: 10 translate: suppress-fa default_cost: 10 filter_list: - name: test_prefix_in direction: in - name: test_prefix_out direction: out network: - address: 198.51.100.0 wildcard_bits: 0.0.0.255 area: 5 default_information: originate: true - process_id: 200 vrf: blue domain_id: ip_address: address: 192.0.3.1 max_metric: router_lsa: true on_startup: time: 100 auto_cost: reference_bandwidth: 4 areas: - area_id: "10" capability: true distribute_list: acls: - name: 10 direction: out - name: 123 direction: in state: rendered # Module Execution Result: # ------------------------ # # "rendered": [ # "router ospf 200 vrf blue", # "auto-cost reference-bandwidth 4", # "distribute-list 10 out", # "distribute-list 123 in", # "domain-id 192.0.3.1", # "max-metric router-lsa on-startup 100", # "area 10 capability default-exclusion", # "router ospf 1", # "default-information originate", # "max-metric router-lsa on-startup 110", # "network 198.51.100.0 0.0.0.255 area 5", # "area 10 authentication message-digest", # "area 10 default-cost 10", # "area 10 nssa translate type7 suppress-fa", # "area 10 nssa default-information-originate metric 10", # "area 10 filter-list prefix test_prefix_out out", # "area 10 filter-list prefix test_prefix_in in", # "area 5 authentication", # "area 5 capability default-exclusion" # ] # Using Parsed # File: parsed.cfg # ---------------- # # router ospf 100 # auto-cost reference-bandwidth 5 # domain-id 192.0.5.1 # area 5 authentication message-digest # area 5 nssa translate type7 suppress-fa # area 5 nssa default-information-originate metric 10 - name: Parse the provided configuration with the existing running configuration cisco.ios.ios_ospfv2: running_config: "{{ lookup('file', 'parsed.cfg') }}" state: parsed # Module Execution Result: # ------------------------ # # "parsed": { # "processes": [ # { # "areas": [ # { # "area_id": "5", # "authentication": { # "message_digest": true # }, # "nssa": { # "default_information_originate": { # "metric": 10 # }, # "translate": "suppress-fa" # } # } # ], # "auto_cost": { # "reference_bandwidth": 5 # }, # "domain_id": { # "ip_address": { # "address": "192.0.5.1" # } # }, # "process_id": 100 # } # ] # } """ RETURN = """ before: description: The configuration prior to the model invocation. returned: always sample: > The configuration returned will always be in the same format of the parameters above. type: dict after: description: The resulting configuration model invocation. returned: when changed sample: > The configuration returned will always be in the same format of the parameters above. type: dict commands: description: The set of commands pushed to the remote device. returned: always type: list sample: ['router ospf 200 vrf blue', 'auto-cost reference-bandwidth 5', 'domain-id 192.0.4.1'] """ from ansible.module_utils.basic import AnsibleModule from ansible_collections.cisco.ios.plugins.module_utils.network.ios.argspec.ospfv2.ospfv2 import ( Ospfv2Args, ) from ansible_collections.cisco.ios.plugins.module_utils.network.ios.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",)), ] mutually_exclusive = [("config", "running_config")] module = AnsibleModule( argument_spec=Ospfv2Args.argument_spec, required_if=required_if, mutually_exclusive=mutually_exclusive, supports_check_mode=True, ) result = Ospfv2(module).execute_module() module.exit_json(**result) if __name__ == "__main__": main()