Server IP : 85.214.239.14 / Your IP : 3.136.18.192 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 : /lib/python3/dist-packages/ansible_collections/arista/eos/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 eos_ospfv3 """ from __future__ import absolute_import, division, print_function __metaclass__ = type DOCUMENTATION = """ module: eos_ospfv3 short_description: OSPFv3 resource module description: This module configures and manages the attributes of ospfv3 on Arista EOS platforms. version_added: 1.1.0 author: Gomathi Selvi Srinivasan (@GomathiselviS) notes: - Tested against Arista EOS 4.24.6F - This module works with connection C(network_cli). See the L(EOS Platform Options,../network/user_guide/platform_eos.html). options: config: description: A list of configurations for ospfv3. type: dict suboptions: processes: description: A list of dictionary specifying the ospfv3 processes. type: list elements: dict suboptions: vrf: description: VRF name . type: str adjacency: description: Configure adjacency options for OSPF instance. type: dict suboptions: exchange_start: description: Configure exchange-start options for OSPF instance. type: dict suboptions: threshold: description: Number of peers to bring up simultaneously. type: int auto_cost: description: Set auto-cost. type: dict suboptions: reference_bandwidth: description: reference bandwidth in megabits per sec. type: int areas: description: Specifies the configuration for OSPF areas type: list elements: dict suboptions: area_id: description: Specifies a 32 bit number expressed in decimal or dotted-decimal notation. type: str default_cost: description: Specify the cost for default summary route in stub/NSSA area. type: int authentication: description: Configure authentication for the area incase of ospfv3. type: dict suboptions: spi: description: Specify the SPI value type: int algorithm: description: Name of algorithm to be used. type: str choices: ['md5', 'sha1'] encrypt_key: description: If False, key string is not encrypted type: bool hidden_key: description: If True, Specifies that a HIDDEN key will follow. type: bool key: description: 128 bit MD5 key or 140 bit SHA1 key. type: str passphrase: description: Passphrase String for deriving keys for authentication and encryption. type: str encryption: description: Configure encryption for the area type: dict suboptions: spi: description: Specify the SPI value type: int encryption: description: name of encryption to be used. type: str choices: ['3des-cbc', 'aes-128-cbc', 'aes-192-cbc', 'aes-256-cbc', 'null'] algorithm: description: name of the algorithm to be used. type: str choices: ['sha1', 'md5'] encrypt_key: description: If False, key string is not encrypted type: bool hidden_key: description: If True, Specifies that a HIDDEN key will follow. type: bool key: description: 128 bit MD5 key or 140 bit SHA1 key. type: str passphrase: description: Passphrase String for deriving keys for authentication and encryption. type: str nssa: description: Configures NSSA parameters. type: dict suboptions: default_information_originate: description: Originate default Type 7 LSA. type: dict suboptions: metric: description: Metric for default route. type: int metric_type: description: Metric type for default route. type: int nssa_only: description: Limit default advertisement to this NSSA area. type: bool set: description: True if only default information orignate is set type: bool no_summary: description: Filter all type-3 LSAs in the nssa area. type: bool nssa_only: description: Disable Type-7 LSA p-bit setting type: bool translate: description: Enable LSA translation. type: bool set: description: True if only nssa is set type: bool stub: description: Stub area. type: dict suboptions: set: description: True if only stub is set. type: bool summary_lsa: description: If False , Filter all type-3 LSAs in the stub area. type: bool bfd: description: Enable BFD. type: dict suboptions: all_interfaces: description: Enable BFD on all interfaces. type: bool fips_restrictions: description: Use FIPS compliant algorithms type: bool graceful_restart: description: Enable graceful restart mode. type: dict suboptions: grace_period: description: Specify maximum time to wait for graceful-restart to complete. type: int set: description: When true sets the grace_fulrestart config alone. type: bool graceful_restart_helper: description: If True, Enable graceful restart helper. type: bool log_adjacency_changes: description: To configure link-state changes and transitions of OSPFv3 neighbors. type: dict suboptions: detail: description: If true , configures the switch to log all link-state changes. type: bool set: description: When true sets the log_adjacency_changes config alone. type: bool max_metric: description: Set maximum metric. type: dict suboptions: router_lsa: description: Maximum metric in self-originated router-LSAs. type: dict suboptions: set: description: - Set router-lsa attribute. type: bool external_lsa: description: Override external-lsa metric with max-metric value. 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: Set maximum metric for stub links in router-LSAs. type: bool on_startup: description: Set maximum metric temporarily after reboot. type: dict suboptions: wait_period: description: - Wait period in seconds after startup. 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. type: dict suboptions: set: description: - Set external-lsa attribute. type: bool max_metric_value: description: - Set max metric value for external LSAs. type: int passive_interface: description: Include interface but without actively running OSPF. type: bool router_id: description: 32-bit number assigned to a router running OSPFv3. type: str shutdown: description: Disable the OSPF instance. type: bool timers: description: Configure OSPF timers. type: dict suboptions: out_delay: description: Configure out-delay timer. type: int pacing: description: Configure OSPF packet pacing. type: int throttle: description: This command is deprecated by 'timers lsa' or 'timers spf'. type: dict suboptions: initial: description: Initial SPF schedule delay in msecs. type: int min: description: Min Hold time between two SPFs in msecs type: int max: description: Max wait time between two SPFs in msecs. type: int lsa: description: Configure threshold for retransmission of lsa type: bool spf: description: Configure time between SPF calculations type: bool spf: description: Configure OSPFv3 spf timers. type: dict suboptions: initial: description: Initial SPF schedule delay in msecs. type: int min: description: Min Hold time between two SPFs in msecs type: int max: description: Max wait time between two SPFs in msecs. type: int lsa: description: Configure OSPFv3 LSA timers. type: raw suboptions: direction: description: Configure OSPFv3 LSA receiving/transmission timers. type: str choices: ["rx", "tx"] initial: description: Initial SPF schedule delay in msecs. type: int min: description: Min Hold time between two SPFs in msecs type: int max: description: Max wait time between two SPFs in msecs. type: int address_family: description: Enable address family and enter its config mode type: list elements: dict suboptions: afi: description: address family . type: str choices: - ipv4 - ipv6 adjacency: description: Configure adjacency options for OSPF instance. type: dict suboptions: exchange_start: description: Configure exchange-start options for OSPF instance. type: dict suboptions: threshold: description: Number of peers to bring up simultaneously. type: int auto_cost: description: Set auto-cost. type: dict suboptions: reference_bandwidth: description: reference bandwidth in megabits per sec. type: int areas: description: Specifies the configuration for OSPF areas type: list elements: dict suboptions: area_id: description: Specifies a 32 bit number expressed in decimal or dotted-decimal notation. type: str default_cost: description: Specify the cost for default summary route in stub/NSSA area. type: int authentication: description: Configure authentication for the area incase of ospfv3. type: dict suboptions: spi: description: Specify the SPI value type: int algorithm: description: Name of algorithm to be used. type: str choices: ['md5', 'sha1'] encrypt_key: description: If False, key string is not encrypted type: bool hidden_key: description: If True, Specifies that a HIDDEN key will follow. type: bool key: description: 128 bit MD5 key or 140 bit SHA1 key. type: str passphrase: description: Passphrase String for deriving keys for authentication and encryption. type: str encryption: description: Configure encryption for the area type: dict suboptions: spi: description: Specify the SPI value type: int encryption: description: name of encryption to be used. type: str choices: ['3des-cbc', 'aes-128-cbc', 'aes-192-cbc', 'aes-256-cbc', 'null'] algorithm: description: name of the algorithm to be used. type: str choices: ['sha1', 'md5'] encrypt_key: description: If False, key string is not encrypted type: bool hidden_key: description: If True, Specifies that a HIDDEN key will follow. type: bool key: description: 128 bit MD5 key or 140 bit SHA1 key. type: str passphrase: description: Passphrase String for deriving keys for authentication and encryption. type: str nssa: description: Configures NSSA parameters. type: dict suboptions: default_information_originate: description: Originate default Type 7 LSA. type: dict suboptions: metric: description: Metric for default route. type: int metric_type: description: Metric type for default route. type: int nssa_only: description: Limit default advertisement to this NSSA area. type: bool set: description: True if only default information orignate is set type: bool no_summary: description: Filter all type-3 LSAs in the nssa area. type: bool nssa_only: description: Disable Type-7 LSA p-bit setting type: bool translate: description: Enable LSA translation. type: bool set: description: True if only nssa is set type: bool ranges: description: Configure route summarization. type: list elements: dict suboptions: address: description: IP address. type: str subnet_address: description: IP address with mask length type: str subnet_mask: description: IP subnet mask type: str advertise: description: Enable Advertisement of the range. type: bool cost: description: Configures the metric. type: int stub: description: Stub area. type: dict suboptions: set: description: True if only stub is set type: bool summary_lsa: description: If False , Filter all type-3 LSAs in the stub area. type: bool bfd: description: Enable BFD. type: dict suboptions: all_interfaces: description: Enable BFD on all interfaces. 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: Metric for default route. type: int metric_type: description: Metric type for default route. type: int route_map: description: Specify which route-map to use. type: str default_metric: description: Configure the default metric for redistributed routes. type: int distance: description: Specifies the administrative distance for routes. type: int fips_restrictions: description: Use FIPS compliant algorithms type: bool graceful_restart: description: Enable graceful restart mode. type: dict suboptions: grace_period: description: Specify maximum time to wait for graceful-restart to complete. type: int set: description: When true sets the grace_fulrestart config alone. type: bool graceful_restart_helper: description: If True, Enable graceful restart helper. type: bool log_adjacency_changes: description: To configure link-state changes and transitions of OSPFv3 neighbors. type: dict suboptions: detail: description: If true , configures the switch to log all link-state changes. type: bool set: description: When true sets the log_adjacency_changes config alone. type: bool max_metric: description: Set maximum metric. type: dict suboptions: router_lsa: description: Maximum metric in self-originated router-LSAs. type: dict suboptions: set: description: - Set router-lsa attribute. type: bool external_lsa: description: Override external-lsa metric with max-metric value. 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: Set maximum metric for stub links in router-LSAs. type: bool on_startup: description: Set maximum metric temporarily after reboot. type: dict suboptions: wait_period: description: - Wait period in seconds after startup. 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. type: dict suboptions: set: description: - Set external-lsa attribute. type: bool max_metric_value: description: - Set max metric value for external LSAs. type: int maximum_paths: description: Maximum number of next-hops in an ECMP route. type: int passive_interface: description: Include interface but without actively running OSPF. type: bool redistribute: description: Specifies the routes to be redistributed. type: list elements: dict suboptions: routes: description: Route types (BGP,static,connected) type: str choices: ['bgp', 'connected', 'static'] route_map: description: Specify which route map to use. type: str router_id: description: 32-bit number assigned to a router running OSPFv3. type: str shutdown: description: Disable the OSPF instance. type: bool timers: description: Configure OSPF timers. type: dict suboptions: throttle: description: This command is deprecated by 'timers lsa' or 'timers spf'. type: dict suboptions: initial: description: Initial SPF schedule delay in msecs. type: int min: description: Min Hold time between two SPFs in msecs type: int max: description: Max wait time between two SPFs in msecs. type: int lsa: description: Configure threshold for retransmission of lsa type: bool spf: description: Configure time between SPF calculations type: bool out_delay: description: Configure out-delay timer. type: int pacing: description: Configure OSPF packet pacing. type: int spf: description: Configure OSPFv3 spf timers. type: dict suboptions: initial: description: Initial SPF schedule delay in msecs. type: int min: description: Min Hold time between two SPFs in msecs type: int max: description: Max wait time between two SPFs in msecs. type: int lsa: description: Configure OSPFv3 LSA timers. type: raw suboptions: direction: description: Configure OSPFv3 LSA receiving/transmission timers. type: str choices: ["rx", "tx"] initial: description: Initial SPF schedule delay in msecs. type: int min: description: Min Hold time between two SPFs in msecs type: int max: description: Max wait time between two SPFs in msecs. 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 EOS device by executing the command B(show running-config | section ospfv3). - 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. type: str choices: [deleted, merged, overridden, replaced, gathered, rendered, parsed] default: merged """ EXAMPLES = """ # Using merged # Before state # veos#show running-config | section ospfv3 # veos# - arista.eos.eos_ospfv3: config: processes: - address_family: - timers: lsa: 22 graceful_restart: grace_period: 35 afi: "ipv6" timers: pacing: 55 fips_restrictions: True router_id: "2.2.2.2" vrf: "vrfmerge" # After state # veos#show running-config | section ospfv3 # router ospfv3 vrf vrfmerge # router-id 2.2.2.2 # test # fips restrictions # timers pacing flood 55 # ! # address-family ipv6 # fips restrictions # timers lsa arrival 22 # graceful-restart grace-period 35 # veos# # Module Execution # "after": { # "processes": [ # { # "address_family": [ # { # "afi": "ipv6", # "fips_restrictions": true, # "graceful_restart": { # "grace_period": 35 # }, # "timers": { # "lsa": 22 # } # } # ], # "fips_restrictions": true, # "router_id": "2.2.2.2", # "timers": { # "pacing": 55 # }, # "vrf": "vrfmerge" # } # ] # }, # "before": {}, # "changed": true, # "commands": [ # "router ospfv3 vrf vrfmerge", # "address-family ipv6", # "graceful-restart grace-period 35", # "timers lsa arrival 22", # "exit", # "timers pacing flood 55", # "fips restrictions", # "router-id 2.2.2.2", # "exit" # ], # using replaced # before state # veos#show running-config | section ospfv3 # router ospfv3 # fips restrictions # area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4= # ! # router ospfv3 vrf vrfmerge # router-id 2.2.2.2 # fips restrictions # timers pacing flood 55 # ! # address-family ipv6 # fips restrictions # timers lsa arrival 22 # graceful-restart grace-period 35 # veos# - arista.eos.eos_ospfv3: config: processes: - areas: - area_id: "0.0.0.0" encryption: spi: 43 encryption: "null" algorithm: "md5" encrypt_key: False passphrase: "7hl8FV3lZ6H1mAKpjL47hQ==" vrf: "default" address_family: - afi: "ipv4" router_id: "7.1.1.1" state: replaced # After state # veos#show running-config | section ospfv3 # router ospfv3 # area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4= # ! # router ospfv3 vrf vrfmerge # passive-interface default # ! # address-family ipv6 # area 0.0.0.3 range 10.1.2.0/24 # area 0.0.0.3 range 60.1.0.0/16 cost 30 # veos# # Module execution # "after": { # "processes": [ # { # "areas": [ # { # "area_id": "0.0.0.0", # "encryption": { # "algorithm": "md5", # "encryption": "null", # "hidden_key": true, # "passphrase": "h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=" # } # } # ], # "vrf": "default" # }, # { # "address_family": [ # { # "afi": "ipv6", # "areas": [ # { # "area_id": "0.0.0.3", # "ranges": [ # { # "address": "10.1.2.0/24" # }, # { # "address": "60.1.0.0/16", # "cost": 30 # } # ] # } # ] # } # ], # "passive_interface": true, # "vrf": "vrfmerge" # } # ] # }, # "before": { # "processes": [ # { # "areas": [ # { # "area_id": "0.0.0.0", # "encryption": { # "algorithm": "md5", # "encryption": "null", # "hidden_key": true, # "passphrase": "h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=" # } # } # ], # "fips_restrictions": true, # "vrf": "default" # }, # { # "address_family": [ # { # "afi": "ipv6", # "fips_restrictions": true, # "graceful_restart": { # "grace_period": 35 # }, # "timers": { # "lsa": 22 # } # } # ], # "fips_restrictions": true, # "router_id": "2.2.2.2", # "timers": { # "pacing": 55 # }, # "vrf": "vrfmerge" # } # ] # }, # "changed": true, # "commands": [ # "router ospfv3 vrf vrfmerge", # "address-family ipv6", # "no fips restrictions", # "no graceful-restart", # "no timers lsa arrival 22", # "area 0.0.0.3 range 10.1.2.2/24 advertise", # "area 0.0.0.3 range 60.1.1.1 255.255.0.0 cost 30", # "exit", # "passive-interface default", # "no router-id", # "no fips restrictions", # "no timers pacing flood 55", # "exit" # ], # using overridden # before state # veos#show running-config | section ospfv3 # router ospfv3 # area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4= # ! # router ospfv3 vrf vrfmerge # passive-interface default # ! # address-family ipv6 # area 0.0.0.3 range 10.1.2.0/24 # area 0.0.0.3 range 60.1.0.0/16 cost 30 # veos# - arista.eos.eos_ospfv3: config: processes: - address_family: - areas: - area_id: "0.0.0.3" ranges: - address: 10.1.2.2/24 advertise: True - address: 60.1.1.1 subnet_mask: 255.255.0.0 cost: 30 afi: "ipv6" passive_interface: True vrf: "vrfmerge" state: overridden # After state # veos#show running-config | section ospfv3 # router ospfv3 vrf vrfmerge # passive-interface default # ! # address-family ipv6 # area 0.0.0.3 range 10.1.2.0/24 # area 0.0.0.3 range 60.1.0.0/16 cost 30 # veos# # Module execution # "after": { # "processes": [ # { # "address_family": [ # { # "afi": "ipv6", # "areas": [ # { # "area_id": "0.0.0.3", # "ranges": [ # { # "address": "10.1.2.0/24" # }, # { # "address": "60.1.0.0/16", # "cost": 30 # } # ] # } # ] # } # ], # "passive_interface": true, # "vrf": "vrfmerge" # } # ] # }, # "before": { # "processes": [ # { # "areas": [ # { # "area_id": "0.0.0.0", # "encryption": { # "algorithm": "md5", # "encryption": "null", # "hidden_key": true, # "passphrase": "h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=" # } # } # ], # "vrf": "default" # }, # { # "address_family": [ # { # "afi": "ipv6", # "areas": [ # { # "area_id": "0.0.0.3", # "ranges": [ # { # "address": "10.1.2.0/24" # }, # { # "address": "60.1.0.0/16", # "cost": 30 # } # ] # } # ] # } # ], # "passive_interface": true, # "vrf": "vrfmerge" # } # ] # }, # "changed": true, # "commands": [ # "no router ospfv3", # "router ospfv3 vrf vrfmerge", # "address-family ipv6", # "no area 0.0.0.3 range 10.1.2.0/24", # "no area 0.0.0.3 range 60.1.0.0/16 cost 30", # "area 0.0.0.3 range 10.1.2.2/24 advertise", # "area 0.0.0.3 range 60.1.1.1 255.255.0.0 cost 30", # "exit", # "exit" # ], # using deleted # Before state # veos#show running-config | section ospfv3 # router ospfv3 # area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4= # ! # router ospfv3 vrf vrfmerge # passive-interface default # ! # address-family ipv4 # redistribute connected # redistribute static route-map MAP01 # area 0.0.0.3 range 10.1.2.0/24 # area 0.0.0.3 range 60.1.0.0/16 cost 30 # ! # address-family ipv6 # area 0.0.0.3 range 10.1.2.0/24 # area 0.0.0.3 range 60.1.0.0/16 cost 30 # veos# - arista.eos.eos_ospfv3: config: processes: - vrf: "default" state: deleted # After state # veos#show running-config | section ospfv3 # router ospfv3 vrf vrfmerge # passive-interface default # ! # address-family ipv4 # redistribute connected # redistribute static route-map MAP01 # area 0.0.0.3 range 10.1.2.0/24 # area 0.0.0.3 range 60.1.0.0/16 cost 30 # ! # address-family ipv6 # area 0.0.0.3 range 10.1.2.0/24 # area 0.0.0.3 range 60.1.0.0/16 cost 30 # veos# # Module execution # "after": { # "processes": [ # { # "address_family": [ # { # "afi": "ipv4", # "areas": [ # { # "area_id": "0.0.0.3", # "ranges": [ # { # "address": "10.1.2.0/24" # }, # { # "address": "60.1.0.0/16", # "cost": 30 # } # ] # } # ], # "redistribute": [ # { # "routes": "connected" # }, # { # "route_map": "MAP01", # "routes": "static" # } # ] # }, # { # "afi": "ipv6", # "areas": [ # { # "area_id": "0.0.0.3", # "ranges": [ # { # "address": "10.1.2.0/24" # }, # { # "address": "60.1.0.0/16", # "cost": 30 # } # ] # } # ] # } # ], # "passive_interface": true, # "vrf": "vrfmerge" # } # ] # }, # "before": { # "processes": [ # { # "areas": [ # { # "area_id": "0.0.0.0", # "encryption": { # "algorithm": "md5", # "encryption": "null", # "hidden_key": true, # "passphrase": "h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=" # } # } # ], # "vrf": "default" # }, # { # "address_family": [ # { # "afi": "ipv4", # "areas": [ # { # "area_id": "0.0.0.3", # "ranges": [ # { # "address": "10.1.2.0/24" # }, # { # "address": "60.1.0.0/16", # "cost": 30 # } # ] # } # ], # "redistribute": [ # { # "routes": "connected" # }, # { # "route_map": "MAP01", # "routes": "static" # } # ] # }, # { # "afi": "ipv6", # "areas": [ # { # "area_id": "0.0.0.3", # "ranges": [ # { # "address": "10.1.2.0/24" # }, # { # "address": "60.1.0.0/16", # "cost": 30 # } # ] # } # ] # } # ], # "passive_interface": true, # "vrf": "vrfmerge" # } # ] # }, # "changed": true, # "commands": [ # "no router ospfv3" # ], # using parsed # parsed_ospfv3.cfg # router ospfv3 # fips restrictions # area 0.0.0.20 stub # area 0.0.0.20 authentication ipsec spi 33 sha1 passphrase 7 4O8T3zo4xBdRWXBnsnK934o9SEb+jEhHUN6+xzZgCo2j9EnQBUvtwNxxLEmYmm6w # area 0.0.0.40 default-cost 45 # area 0.0.0.40 stub # timers pacing flood 7 # adjacency exchange-start threshold 11 # ! # address-family ipv4 # fips restrictions # redistribute connected # ! # address-family ipv6 # router-id 10.1.1.1 # fips restrictions # ! # router ospfv3 vrf vrf01 # bfd all-interfaces # fips restrictions # area 0.0.0.0 encryption ipsec spi 256 esp null sha1 passphrase 7 7hl8FV3lZ6H1mAKpjL47hQ== # log-adjacency-changes detail # ! # address-family ipv4 # passive-interface default # fips restrictions # redistribute connected route-map MAP01 # maximum-paths 100 # ! # address-family ipv6 # fips restrictions # area 0.0.0.10 nssa no-summary # default-information originate route-map DefaultRouteFilter # max-metric router-lsa external-lsa 25 summary-lsa # ! # router ospfv3 vrf vrf02 # fips restrictions # ! # address-family ipv6 # router-id 10.17.0.3 # distance ospf intra-area 200 # fips restrictions # area 0.0.0.1 stub # timers spf delay initial 56 56 56 # timers out-delay 10 - arista.eos.eos_ospfv3: running_config: "{{ lookup('file', './parsed_ospfv3.cfg') }}" state: parsed # Module execution # "parsed": { # "processes": [ # { # "address_family": [ # { # "afi": "ipv4", # "fips_restrictions": true, # "redistribute": [ # { # "routes": "connected" # } # ] # }, # { # "afi": "ipv6", # "fips_restrictions": true, # "router_id": "10.1.1.1" # } # ], # "adjacency": { # "exchange_start": { # "threshold": 11 # } # }, # "areas": [ # { # "area_id": "0.0.0.20", # "authentication": { # "algorithm": "sha1", # "hidden_key": true, # "passphrase": "4O8T3zo4xBdRWXBnsnK934o9SEb+jEhHUN6+xzZgCo2j9EnQBUvtwNxxLEmYmm6w", # "spi": 33 # }, # "stub": { # "set": true # } # }, # { # "area_id": "0.0.0.40", # "default_cost": 45, # "stub": { # "set": true # } # } # ], # "fips_restrictions": true, # "timers": { # "pacing": 7 # }, # "vrf": "default" # }, # { # "address_family": [ # { # "afi": "ipv4", # "fips_restrictions": true, # "maximum_paths": 100, # "passive_interface": true, # "redistribute": [ # { # "route_map": "MAP01", # "routes": "connected" # } # ] # }, # { # "afi": "ipv6", # "areas": [ # { # "area_id": "0.0.0.10", # "nssa": { # "no_summary": true # } # } # ], # "default_information": { # "originate": true, # "route_map": "DefaultRouteFilter" # }, # "fips_restrictions": true, # "max_metric": { # "router_lsa": { # "external_lsa": { # "max_metric_value": 25 # }, # "summary_lsa": { # "set": true # } # } # } # } # ], # "areas": [ # { # "area_id": "0.0.0.0", # "encryption": { # "algorithm": "sha1", # "encryption": "null", # "hidden_key": true, # "passphrase": "7hl8FV3lZ6H1mAKpjL47hQ==" # } # } # ], # "bfd": { # "all_interfaces": true # }, # "fips_restrictions": true, # "log_adjacency_changes": { # "detail": true # }, # "vrf": "vrf01" # }, # { # "address_family": [ # { # "afi": "ipv6", # "areas": [ # { # "area_id": "0.0.0.1", # "stub": { # "set": true # } # } # ], # "distance": 200, # "fips_restrictions": true, # "router_id": "10.17.0.3", # "timers": { # "out_delay": 10, # "spf": { # "initial": 56, # "max": 56, # "min": 56, # } # } # } # ], # "fips_restrictions": true, # "vrf": "vrf02" # } # ] # using gathered # native config # veos#show running-config | section ospfv3 # router ospfv3 vrf vrfmerge # passive-interface default # ! # address-family ipv4 # redistribute connected # redistribute static route-map MAP01 # area 0.0.0.3 range 10.1.2.0/24 # area 0.0.0.3 range 60.1.0.0/16 cost 30 # ! # address-family ipv6 # area 0.0.0.3 range 10.1.2.0/24 # area 0.0.0.3 range 60.1.0.0/16 cost 30 # veos# - arista.eos.eos_ospfv3: state: gathered # module execution # "gathered": { # "processes": [ # { # "address_family": [ # { # "afi": "ipv4", # "areas": [ # { # "area_id": "0.0.0.3", # "ranges": [ # { # "address": "10.1.2.0/24" # }, # { # "address": "60.1.0.0/16", # "cost": 30 # } # ] # } # ], # "redistribute": [ # { # "routes": "connected" # }, # { # "route_map": "MAP01", # "routes": "static" # } # ] # }, # { # "afi": "ipv6", # "areas": [ # { # "area_id": "0.0.0.3", # "ranges": [ # { # "address": "10.1.2.0/24" # }, # { # "address": "60.1.0.0/16", # "cost": 30 # } # ] # } # ] # } # ], # "passive_interface": true, # "vrf": "vrfmerge" # } # ] # using rendered - arista.eos.eos_ospfv3: config: processes: - address_family: - timers: lsa: 22 graceful_restart: grace_period: 35 afi: "ipv6" timers: pacing: 55 fips_restrictions: True router_id: "2.2.2.2" vrf: "vrfmerge" state: rendered # module execution # "rendered": [ # "router ospfv3 vrf vrfmerge", # "address-family ipv6", # "graceful-restart grace-period 35", # "timers lsa arrival 22", # "exit", # "timers pacing flood 55", # "fips restrictions", # "router-id 2.2.2.2", # "exit" # ] """ from ansible.module_utils.basic import AnsibleModule from ansible_collections.arista.eos.plugins.module_utils.network.eos.argspec.ospfv3.ospfv3 import ( Ospfv3Args, ) from ansible_collections.arista.eos.plugins.module_utils.network.eos.config.ospfv3.ospfv3 import ( Ospfv3, ) def main(): """ Main entry point for module execution :returns: the result form module invocation """ module = AnsibleModule( argument_spec=Ospfv3Args.argument_spec, mutually_exclusive=[["config", "running_config"]], required_if=[ ["state", "merged", ["config"]], ["state", "replaced", ["config"]], ["state", "overridden", ["config"]], ["state", "rendered", ["config"]], ["state", "parsed", ["running_config"]], ], supports_check_mode=False, ) result = Ospfv3(module).execute_module() module.exit_json(**result) if __name__ == "__main__": main()