.. Document meta :orphan: .. |antsibull-internal-nbsp| unicode:: 0xA0 :trim: .. meta:: :antsibull-docs: 2.23.0 .. Anchors .. _ansible_collections.amnesh.soodar.soodar_static_routes_module: .. Anchors: short name for ansible.builtin .. Title amnesh.soodar.soodar_static_routes module -- Resource module to configure static routes. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. Collection note .. note:: This module is part of the `amnesh.soodar collection `_ (version 2.0.0). It is not included in ``ansible-core``. To check whether it is installed, run :code:`ansible-galaxy collection list`. To install it, use: :code:`ansible\-galaxy collection install https://soodar.ir/ansible/amnesh.soodar.tar.gz`. To use it in a playbook, specify: :code:`amnesh.soodar.soodar_static_routes`. .. version_added .. contents:: :local: :depth: 1 .. Deprecated Synopsis -------- .. Description - This module configures and manages the static routes on Soodar platforms. .. note:: This module has a corresponding :ref:`action plugin `. .. Aliases .. Requirements .. Options Parameters ---------- .. tabularcolumns:: \X{1}{3}\X{2}{3} .. list-table:: :width: 100% :widths: auto :header-rows: 1 :class: longtable ansible-option-table * - Parameter - Comments * - .. raw:: html
.. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config: .. rst-class:: ansible-option-title **config** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`list` / :ansible-option-elements:`elements=dictionary` .. raw:: html
- .. raw:: html
A dictionary of static route options .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/address_families: .. rst-class:: ansible-option-title **address_families** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`list` / :ansible-option-elements:`elements=dictionary` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
Address family to use for the static routes .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.04\textwidth}\begin{minipage}[t]{0.28\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/address_families/afi: .. rst-class:: ansible-option-title **afi** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`string` / :ansible-option-required:`required` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
Top level address family indicator. .. rst-class:: ansible-option-line :ansible-option-choices:`Choices:` - :ansible-option-choices-entry:`"ipv4"` - :ansible-option-choices-entry:`"ipv6"` .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.04\textwidth}\begin{minipage}[t]{0.28\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/address_families/routes: .. rst-class:: ansible-option-title **routes** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`list` / :ansible-option-elements:`elements=dictionary` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
Configuring static route .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.06\textwidth}\begin{minipage}[t]{0.26\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/address_families/routes/dest: .. rst-class:: ansible-option-title **dest** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`string` / :ansible-option-required:`required` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
Destination prefix with its subnet mask .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.06\textwidth}\begin{minipage}[t]{0.26\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/address_families/routes/next_hops: .. rst-class:: ansible-option-title **next_hops** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`list` / :ansible-option-elements:`elements=dictionary` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
next hop address or interface .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.08\textwidth}\begin{minipage}[t]{0.24\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/address_families/routes/next_hops/distance_metric: .. rst-class:: ansible-option-title **distance_metric** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`integer` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
Distance metric for this route .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.08\textwidth}\begin{minipage}[t]{0.24\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/address_families/routes/next_hops/forward_router_address: .. rst-class:: ansible-option-title **forward_router_address** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`string` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
Forwarding router's address .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.08\textwidth}\begin{minipage}[t]{0.24\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/address_families/routes/next_hops/interface: .. rst-class:: ansible-option-title **interface** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`string` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
Interface for directly connected static routes .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.08\textwidth}\begin{minipage}[t]{0.24\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/address_families/routes/next_hops/nh_vrf: .. rst-class:: ansible-option-title **nh_vrf** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`string` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
The VRF that the next hop is reachable through. .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.08\textwidth}\begin{minipage}[t]{0.24\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/address_families/routes/next_hops/tag: .. rst-class:: ansible-option-title **tag** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`integer` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
Set tag for this route .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.08\textwidth}\begin{minipage}[t]{0.24\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/address_families/routes/next_hops/track: .. rst-class:: ansible-option-title **track** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`integer` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
Install route depending on tracked item with tracked object number. Tracking does not support multicast Refer to vendor documentation for valid values. .. raw:: html
* - .. raw:: html
.. raw:: latex \hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth} .. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-config/vrf: .. rst-class:: ansible-option-title **vrf** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`string` .. raw:: html
.. raw:: latex \end{minipage} - .. raw:: html
IP VPN Routing/Forwarding instance name. NOTE, In case of IPV4/IPV6 VRF routing table should pre\-exist before configuring. NOTE, if the vrf information is not provided then the routes shall be configured under global vrf. .. raw:: html
* - .. raw:: html
.. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-running_config: .. rst-class:: ansible-option-title **running_config** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`string` .. raw:: html
- .. raw:: html
This option is used only with state :emphasis:`parsed`. The value of this option should be the output received from the Soodar device by executing the command :strong:`show running\-config \| include 'ip route\|ipv6 route'`. The state :emphasis:`parsed` reads the configuration from :literal:`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 :emphasis:`parsed` key within the result. .. raw:: html
* - .. raw:: html
.. _ansible_collections.amnesh.soodar.soodar_static_routes_module__parameter-state: .. rst-class:: ansible-option-title **state** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`string` .. raw:: html
- .. raw:: html
The state the configuration should be left in The states :emphasis:`rendered`\ , :emphasis:`gathered` and :emphasis:`parsed` does not perform any change on the device. The state :emphasis:`rendered` will transform the configuration in :literal:`config` option to platform specific CLI commands which will be returned in the :emphasis:`rendered` key within the result. For state :emphasis:`rendered` active connection to remote host is not required. The state :emphasis:`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 :emphasis:`gathered` key within the result. The state :emphasis:`parsed` reads the configuration from :literal:`running\_config` option and transforms it into JSON format as per the resource module parameters and the value is returned in the :emphasis:`parsed` key within the result. The value of :literal:`running\_config` option should be the same format as the output of command :emphasis:`show running\-config \| include 'ip route\|ipv6 route'` executed on device. For state :emphasis:`parsed` active connection to remote host is not required. .. rst-class:: ansible-option-line :ansible-option-choices:`Choices:` - :ansible-option-choices-entry-default:`"merged"` :ansible-option-choices-default-mark:`← (default)` - :ansible-option-choices-entry:`"replaced"` - :ansible-option-choices-entry:`"overridden"` - :ansible-option-choices-entry:`"deleted"` - :ansible-option-choices-entry:`"gathered"` - :ansible-option-choices-entry:`"rendered"` - :ansible-option-choices-entry:`"parsed"` .. raw:: html
.. Attributes .. Notes Notes ----- .. note:: - Tested against Soodar Version 23.11 - This module works with connection :literal:`amnesh.soodar.network\_cli`. - The module examples uses callback plugin (stdout\_callback = yaml) to generate task output in yaml format. .. Seealso .. Examples Examples -------- .. code-block:: yaml+jinja # Using merged # Before state: # ------------- # # soodar# show running-config | include ip route|ipv6 route - name: Merge provided configuration with device configuration cisco.ios.ios_static_routes: config: - vrf: blue address_families: - afi: ipv4 routes: - dest: 192.0.2.0/24 next_hops: - forward_router_address: 192.0.2.1 name: merged_blue tag: 50 track: 150 - address_families: - afi: ipv4 routes: - dest: 198.51.100.0/24 next_hops: - forward_router_address: 198.51.101.1 name: merged_route_1 distance_metric: 110 tag: 40 multicast: true - forward_router_address: 198.51.101.2 name: merged_route_2 distance_metric: 30 - forward_router_address: 198.51.101.3 name: merged_route_3 - afi: ipv6 routes: - dest: 2001:DB8:0:3::/64 next_hops: - forward_router_address: 2001:DB8:0:3::2 name: merged_v6 tag: 105 state: merged # Task Output # ----------- # # before: # - {} # commands: # - ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name merged_v6 # - ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name merged_route_1 multicast # - ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name merged_route_2 # - ip route 198.51.100.0 255.255.255.0 198.51.101.3 name merged_route_3 # - ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name merged_blue track 150 # after: # - address_families: # - afi: ipv4 # routes: # - dest: 198.51.100.0/24 # next_hops: # - forward_router_address: 198.51.101.3 # name: merged_route_3 # - distance_metric: 30 # forward_router_address: 198.51.101.2 # name: merged_route_2 # - distance_metric: 110 # forward_router_address: 198.51.101.1 # multicast: true # name: merged_route_1 # tag: 40 # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: merged_v6 # tag: 105 # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: merged_blue # tag: 50 # track: 150 # vrf: blue # After state: # ------------ # # soodar# show running-config | include ip route|ipv6 route # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name merged_blue track 150 # ip route 198.51.100.0 255.255.255.0 198.51.101.3 name merged_route_3 # ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name merged_route_2 # ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name merged_route_1 multicast # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name merged_v6 # Using replaced # Before state: # ------------- # # soodar# show running-config | include ip route|ipv6 route # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name merged_blue track 150 # ip route 198.51.100.0 255.255.255.0 198.51.101.3 name merged_route_3 # ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name merged_route_2 # ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name merged_route_1 multicast # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name merged_v6 - name: Replace provided configuration with device configuration cisco.ios.ios_static_routes: config: - address_families: - afi: ipv4 routes: - dest: 198.51.100.0/24 next_hops: - forward_router_address: 198.51.101.1 name: replaced_route distance_metric: 175 tag: 70 multicast: true state: replaced # Task Output # ----------- # # before: # - address_families: # - afi: ipv4 # routes: # - dest: 198.51.100.0/24 # next_hops: # - forward_router_address: 198.51.101.3 # name: merged_route_3 # - distance_metric: 30 # forward_router_address: 198.51.101.2 # name: merged_route_2 # - distance_metric: 110 # forward_router_address: 198.51.101.1 # multicast: true # name: merged_route_1 # tag: 40 # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: merged_v6 # tag: 105 # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: merged_blue # tag: 50 # track: 150 # vrf: blue # commands: # - ip route 198.51.100.0 255.255.255.0 198.51.101.1 175 tag 70 name replaced_route multicast # - no ip route 198.51.100.0 255.255.255.0 198.51.101.3 name merged_route_3 # - no ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name merged_route_2 # after: # - address_families: # - afi: ipv4 # routes: # - dest: 198.51.100.0/24 # next_hops: # - distance_metric: 175 # forward_router_address: 198.51.101.1 # multicast: true # name: replaced_route # tag: 70 # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: merged_v6 # tag: 105 # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: merged_blue # tag: 50 # track: 150 # vrf: blue # After state: # ------------ # # soodar# show running-config | include ip route|ipv6 route # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name merged_blue track 150 # ip route 198.51.100.0 255.255.255.0 198.51.101.1 175 tag 70 name replaced_route multicast # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name merged_v6 # Using overridden # Before state: # ------------- # # soodar# show running-config | include ip route|ipv6 route # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name merged_blue track 150 # ip route 198.51.100.0 255.255.255.0 198.51.101.1 175 tag 70 name replaced_route multicast # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name merged_v6 - name: Override provided configuration with device configuration cisco.ios.ios_static_routes: config: - vrf: blue address_families: - afi: ipv4 routes: - dest: 192.0.2.0/24 next_hops: - forward_router_address: 192.0.2.1 name: override_vrf tag: 50 track: 150 state: overridden # Task Output # ----------- # # before: # - address_families: # - afi: ipv4 # routes: # - dest: 198.51.100.0/24 # next_hops: # - distance_metric: 175 # forward_router_address: 198.51.101.1 # multicast: true # name: replaced_route # tag: 70 # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: merged_v6 # tag: 105 # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: merged_blue # tag: 50 # track: 150 # vrf: blue # commands: # - ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name override_vrf track 150 # - no ip route 198.51.100.0 255.255.255.0 198.51.101.1 175 tag 70 name replaced_route multicast # - no ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name merged_v6 # after: # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: override_vrf # tag: 50 # track: 150 # vrf: blue # After state: # ------------ # # soodar# show running-config | include ip route|ipv6 route # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name override_vrf track 150 # Using deleted # Before state: # ------------- # soodar# show running-config | include ip route|ipv6 route # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name test_vrf track 150 # ip route 198.51.100.0 255.255.255.0 198.51.101.3 name route_3 # ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name route_2 # ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name route_1 multicast # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6 - name: Delete the exact static routes, with all the static routes explicitly mentioned in want cisco.ios.ios_static_routes: config: - vrf: blue address_families: - afi: ipv4 routes: - dest: 192.0.2.0/24 next_hops: - forward_router_address: 192.0.2.1 name: test_vrf tag: 50 track: 150 - address_families: - afi: ipv4 routes: - dest: 198.51.100.0/24 next_hops: - forward_router_address: 198.51.101.1 name: route_1 distance_metric: 110 tag: 40 multicast: true - forward_router_address: 198.51.101.2 name: route_2 distance_metric: 30 - forward_router_address: 198.51.101.3 name: route_3 - afi: ipv6 routes: - dest: 2001:DB8:0:3::/64 next_hops: - forward_router_address: 2001:DB8:0:3::2 name: test_v6 tag: 105 state: deleted # Task Output # ----------- # # before: # - address_families: # - afi: ipv4 # routes: # - dest: 198.51.100.0/24 # next_hops: # - forward_router_address: 198.51.101.3 # name: route_3 # - distance_metric: 30 # forward_router_address: 198.51.101.2 # name: route_2 # - distance_metric: 110 # forward_router_address: 198.51.101.1 # multicast: true # name: route_1 # tag: 40 # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: test_v6 # tag: 105 # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: test_vrf # tag: 50 # track: 150 # vrf: blue # commands: # - no ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name test_vrf track 150 # - no ip route 198.51.100.0 255.255.255.0 198.51.101.3 name route_3 # - no ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name route_2 # - no ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name route_1 multicast # - no ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6 # after: {} # After state: # ------------ # # soodar# show running-config | include ip route|ipv6 route # Using deleted - delete based on specific routes # Before state: # ------------- # # soodar# show running-config | include ip route|ipv6 route # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name test_vrf track 150 # ip route 198.51.100.0 255.255.255.0 198.51.101.3 name route_3 # ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name route_2 # ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name route_1 multicast # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6 - name: Delete destination specific static routes cisco.ios.ios_static_routes: config: - address_families: - afi: ipv4 routes: - dest: 198.51.100.0/24 state: deleted # Task Output # ----------- # # before: # - address_families: # - afi: ipv4 # routes: # - dest: 198.51.100.0/24 # next_hops: # - forward_router_address: 198.51.101.3 # name: route_3 # - distance_metric: 30 # forward_router_address: 198.51.101.2 # name: route_2 # - distance_metric: 110 # forward_router_address: 198.51.101.1 # multicast: true # name: route_1 # tag: 40 # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: test_v6 # tag: 105 # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: test_vrf # tag: 50 # track: 150 # vrf: blue # commands: # - no ip route 198.51.100.0 255.255.255.0 198.51.101.3 name route_3 # - no ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name route_2 # - no ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name route_1 multicast # after: # - address_families: # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: test_v6 # tag: 105 # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: test_vrf # tag: 50 # track: 150 # vrf: blue # After state: # ------------ # # soodar# show running-config | include ip route|ipv6 route # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name test_vrf track 150 # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6 # Using deleted - delete based on vrfs # Before state: # ------------- # # soodar# show running-config | include ip route|ipv6 route # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name test_vrf track 150 # ip route 198.51.100.0 255.255.255.0 198.51.101.3 name route_3 # ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name route_2 # ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name route_1 multicast # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6 - name: Delete vrf specific static routes cisco.ios.ios_static_routes: config: - vrf: blue state: deleted # Task Output # ----------- # # before: # - address_families: # - afi: ipv4 # routes: # - dest: 198.51.100.0/24 # next_hops: # - forward_router_address: 198.51.101.3 # name: route_3 # - distance_metric: 30 # forward_router_address: 198.51.101.2 # name: route_2 # - distance_metric: 110 # forward_router_address: 198.51.101.1 # multicast: true # name: route_1 # tag: 40 # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: test_v6 # tag: 105 # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: test_vrf # tag: 50 # track: 150 # vrf: blue # commands: # - no ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name test_vrf track 150 # after: # - address_families: # - afi: ipv4 # routes: # - dest: 198.51.100.0/24 # next_hops: # - forward_router_address: 198.51.101.3 # name: route_3 # - distance_metric: 30 # forward_router_address: 198.51.101.2 # name: route_2 # - distance_metric: 110 # forward_router_address: 198.51.101.1 # multicast: true # name: route_1 # tag: 40 # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: test_v6 # tag: 105 # After state: # ------------ # # soodar# show running-config | include ip route|ipv6 route # ip route 198.51.100.0 255.255.255.0 198.51.101.3 name route_3 # ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name route_2 # ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name route_1 multicast # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6 # Using deleted - delete all # Before state: # ------------- # # soodar# show running-config | include ip route|ipv6 route # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name test_vrf track 150 # ip route 198.51.100.0 255.255.255.0 198.51.101.3 name route_3 # ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name route_2 # ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name route_1 multicast # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6 - name: Delete ALL configured static routes cisco.ios.ios_static_routes: state: deleted # Task Output # ----------- # # before: # - address_families: # - afi: ipv4 # routes: # - dest: 198.51.100.0/24 # next_hops: # - forward_router_address: 198.51.101.3 # name: route_3 # - distance_metric: 30 # forward_router_address: 198.51.101.2 # name: route_2 # - distance_metric: 110 # forward_router_address: 198.51.101.1 # multicast: true # name: route_1 # tag: 40 # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: test_v6 # tag: 105 # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: test_vrf # tag: 50 # track: 150 # vrf: blue # commands: # - no ip route 198.51.100.0 255.255.255.0 198.51.101.3 name route_3 # - no ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name route_2 # - no ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name route_1 multicast # - no ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6 # - no ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name test_vrf track 150 # after: {} # After state: # ------------- # # soodar# show running-config | include ip route|ipv6 route # Using gathered # Before state: # ------------- # # soodar# show running-config | include ip route|ipv6 route # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name test_vrf track 150 # ip route 198.51.100.0 255.255.255.0 198.51.101.3 name route_3 # ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name route_2 # ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name route_1 multicast # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6 - name: Gather facts of static routes cisco.ios.ios_static_routes: config: state: gathered # Task Output # ----------- # # gathered: # - address_families: # - afi: ipv4 # routes: # - dest: 198.51.100.0/24 # next_hops: # - forward_router_address: 198.51.101.3 # name: route_3 # - distance_metric: 30 # forward_router_address: 198.51.101.2 # name: route_2 # - distance_metric: 110 # forward_router_address: 198.51.101.1 # multicast: true # name: route_1 # tag: 40 # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: test_v6 # tag: 105 # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: test_vrf # tag: 50 # track: 150 # vrf: blue # Using rendered - name: Render the commands for provided configuration cisco.ios.ios_static_routes: config: - vrf: blue address_families: - afi: ipv4 routes: - dest: 192.0.2.0/24 next_hops: - forward_router_address: 192.0.2.1 name: test_vrf tag: 50 track: 150 - address_families: - afi: ipv4 routes: - dest: 198.51.100.0/24 next_hops: - forward_router_address: 198.51.101.1 name: route_1 distance_metric: 110 tag: 40 multicast: true - forward_router_address: 198.51.101.2 name: route_2 distance_metric: 30 - forward_router_address: 198.51.101.3 name: route_3 - afi: ipv6 routes: - dest: 2001:DB8:0:3::/64 next_hops: - forward_router_address: 2001:DB8:0:3::2 name: test_v6 tag: 105 state: rendered # Task Output # ----------- # # rendered: # - ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name test_vrf track 150 # - ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name route_1 multicast # - ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name route_2 # - ip route 198.51.100.0 255.255.255.0 198.51.101.3 name route_3 # - ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6 # Using parsed # File: parsed.cfg # ---------------- # # ip route vrf blue 192.0.2.0 255.255.255.0 192.0.2.1 tag 50 name test_vrf track 150 # ip route 198.51.100.0 255.255.255.0 198.51.101.3 name route_3 # ip route 198.51.100.0 255.255.255.0 198.51.101.2 30 name route_2 # ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 tag 40 name route_1 multicast # ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6 - name: Parse the provided configuration cisco.ios.ios_static_routes: running_config: "{{ lookup('file', 'parsed.cfg') }}" state: parsed # Task Output # ----------- # # parsed: # - address_families: # - afi: ipv4 # routes: # - dest: 198.51.100.0/24 # next_hops: # - forward_router_address: 198.51.101.3 # name: route_3 # - distance_metric: 30 # forward_router_address: 198.51.101.2 # name: route_2 # - distance_metric: 110 # forward_router_address: 198.51.101.1 # multicast: true # name: route_1 # tag: 40 # - afi: ipv6 # routes: # - dest: 2001:DB8:0:3::/64 # next_hops: # - forward_router_address: 2001:DB8:0:3::2 # name: test_v6 # tag: 105 # - address_families: # - afi: ipv4 # routes: # - dest: 192.0.2.0/24 # next_hops: # - forward_router_address: 192.0.2.1 # name: test_vrf # tag: 50 # track: 150 # vrf: blue .. Facts .. Return values Return Values ------------- Common return values are documented :ref:`here `, the following are the fields unique to this module: .. tabularcolumns:: \X{1}{3}\X{2}{3} .. list-table:: :width: 100% :widths: auto :header-rows: 1 :class: longtable ansible-option-table * - Key - Description * - .. raw:: html
.. _ansible_collections.amnesh.soodar.soodar_static_routes_module__return-after: .. rst-class:: ansible-option-title **after** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`dictionary` .. raw:: html
- .. raw:: html
The resulting configuration after module execution. .. rst-class:: ansible-option-line :ansible-option-returned-bold:`Returned:` when changed .. rst-class:: ansible-option-line .. rst-class:: ansible-option-sample :ansible-option-sample-bold:`Sample:` :ansible-rv-sample-value:`"This output will always be in the same format as the module argspec.\\n"` .. raw:: html
* - .. raw:: html
.. _ansible_collections.amnesh.soodar.soodar_static_routes_module__return-before: .. rst-class:: ansible-option-title **before** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`dictionary` .. raw:: html
- .. raw:: html
The configuration prior to the module execution. .. rst-class:: ansible-option-line :ansible-option-returned-bold:`Returned:` when :emphasis:`state` is :literal:`merged`\ , :literal:`replaced`\ , :literal:`overridden`\ , :literal:`deleted` or :literal:`purged` .. rst-class:: ansible-option-line .. rst-class:: ansible-option-sample :ansible-option-sample-bold:`Sample:` :ansible-rv-sample-value:`"This output will always be in the same format as the module argspec.\\n"` .. raw:: html
* - .. raw:: html
.. _ansible_collections.amnesh.soodar.soodar_static_routes_module__return-commands: .. rst-class:: ansible-option-title **commands** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`list` / :ansible-option-elements:`elements=string` .. raw:: html
- .. raw:: html
The set of commands pushed to the remote device. .. rst-class:: ansible-option-line :ansible-option-returned-bold:`Returned:` when :emphasis:`state` is :literal:`merged`\ , :literal:`replaced`\ , :literal:`overridden`\ , :literal:`deleted` or :literal:`purged` .. rst-class:: ansible-option-line .. rst-class:: ansible-option-sample :ansible-option-sample-bold:`Sample:` :ansible-rv-sample-value:`["sample command 1", "sample command 2", "sample command 3"]` .. raw:: html
* - .. raw:: html
.. _ansible_collections.amnesh.soodar.soodar_static_routes_module__return-gathered: .. rst-class:: ansible-option-title **gathered** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`list` / :ansible-option-elements:`elements=string` .. raw:: html
- .. raw:: html
Facts about the network resource gathered from the remote device as structured data. .. rst-class:: ansible-option-line :ansible-option-returned-bold:`Returned:` when :emphasis:`state` is :literal:`gathered` .. rst-class:: ansible-option-line .. rst-class:: ansible-option-sample :ansible-option-sample-bold:`Sample:` :ansible-rv-sample-value:`["This output will always be in the same format as the module argspec.\\n"]` .. raw:: html
* - .. raw:: html
.. _ansible_collections.amnesh.soodar.soodar_static_routes_module__return-parsed: .. rst-class:: ansible-option-title **parsed** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`list` / :ansible-option-elements:`elements=string` .. raw:: html
- .. raw:: html
The device native config provided in :emphasis:`running\_config` option parsed into structured data as per module argspec. .. rst-class:: ansible-option-line :ansible-option-returned-bold:`Returned:` when :emphasis:`state` is :literal:`parsed` .. rst-class:: ansible-option-line .. rst-class:: ansible-option-sample :ansible-option-sample-bold:`Sample:` :ansible-rv-sample-value:`["This output will always be in the same format as the module argspec.\\n"]` .. raw:: html
* - .. raw:: html
.. _ansible_collections.amnesh.soodar.soodar_static_routes_module__return-rendered: .. rst-class:: ansible-option-title **rendered** .. raw:: html .. ansible-option-type-line:: :ansible-option-type:`list` / :ansible-option-elements:`elements=string` .. raw:: html
- .. raw:: html
The provided configuration in the task rendered in device\-native format (offline). .. rst-class:: ansible-option-line :ansible-option-returned-bold:`Returned:` when :emphasis:`state` is :literal:`rendered` .. rst-class:: ansible-option-line .. rst-class:: ansible-option-sample :ansible-option-sample-bold:`Sample:` :ansible-rv-sample-value:`["sample command 1", "sample command 2", "sample command 3"]` .. raw:: html
.. Status (Presently only deprecated) .. Authors Authors ~~~~~~~ - Sagar Paul (@KB-perByte) - Sumit Jaiswal (@justjais) - Mahdi Varasteh (@m-varasteh) .. Extra links Collection links ~~~~~~~~~~~~~~~~ .. ansible-links:: - title: "Issue Tracker" url: "http://soodar.ir/issue/tracker" external: true - title: "Homepage" url: "http://soodar.ir" external: true .. Parsing errors