Note
This plugin is part of the arista.eos collection.
To install it use: ansible-galaxy collection install arista.eos
.
To use it in a playbook, specify: arista.eos.eos_static_routes
.
New in version 1.0.0: of arista.eos
Note
This module has a corresponding action plugin.
Parameter | Choices/Defaults | Comments | ||||
---|---|---|---|---|---|---|
config list / elements=dictionary | A list of configurations for static routes. | |||||
address_families list / elements=dictionary | A dictionary specifying the address family to which the static route(s) belong. | |||||
afi string / required |
| Specifies the top level address family indicator. | ||||
routes list / elements=dictionary | A dictionary that specifies the static route configurations. | |||||
dest string / required | Destination IPv4 subnet (CIDR or address-mask notation). The address format is <v4/v6 address>/<mask> or <v4/v6 address> <mask>. The mask is number in range 0-32 for IPv4 and in range 0-128 for IPv6. | |||||
next_hops list / elements=dictionary | Details of route to be taken. | |||||
admin_distance integer | Preference or administrative distance of route (range 1-255). | |||||
description string | Name of the static route. | |||||
forward_router_address string | Forwarding router's address on destination interface. | |||||
interface string | Outgoing interface to take. For anything except 'null0', then next hop IP address should also be configured. IP address of the next hop router or null0 Null0 interface or ethernet e_num Ethernet interface or loopback l_num Loopback interface or management m_num Management interface or port-channel p_num vlan v_num vxlan vx_num Nexthop-Group Specify nexthop group name Tunnel Tunnel interface vtep Configure VXLAN Tunnel End Points | |||||
mpls_label integer | MPLS label | |||||
nexthop_grp string | Nexthop group | |||||
tag integer | Route tag value (ranges from 0 to 4294967295). | |||||
track string | Track value (range 1 - 512). Track must already be configured on the device before adding the route. | |||||
vrf string | VRF of the destination. | |||||
vrf string | The VRF to which the static route(s) belong. | |||||
running_config string | This option is used only with state parsed. The value of this option should be the output received from the EOS device by executing the command show running-config | grep routes. The state parsed reads the configuration from 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 parsed key within the result. | |||||
state string |
| The state the configuration should be left in. |
Note
network_cli
. See the EOS Platform Options.# Using deleted # Before State: # ------------ # veos(config)#show running-config | grep route # ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute # ipv6 route 5222:5::/64 Management1 4312:100::1 # ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1 # ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55 # ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1 # veos(config)# - name: Delete afi arista.eos.eos_static_routes: config: - vrf: testvrf address_families: - afi: ipv4 state: deleted # "after": [ # { # "address_families": [ # { # "afi": "ipv6", # "routes": [ # { # "dest": "5222:5::/64", # "next_hops": [ # { # "forward_router_address": "4312:100::1", # "interface": "Management1" # } # ] # } # ] # } # ] # }, # { # "address_families": [ # { # "afi": "ipv6", # "routes": [ # { # "dest": "2222:6::/64", # "next_hops": [ # { # "forward_router_address": "4312:100::1", # "interface": "Management1" # }, # { # "admin_distance": 55, # "interface": "Ethernet1" # }, # { # "admin_distance": 90, # "description": "testroute1", # "interface": "Null0" # } # ] # } # ] # } # ], # "vrf": "testvrf" # } # ], # "before": [ # { # "address_families": [ # { # "afi": "ipv6", # "routes": [ # { # "dest": "5222:5::/64", # "next_hops": [ # { # "forward_router_address": "4312:100::1", # "interface": "Management1" # } # ] # } # ] # } # ] # }, # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "22.65.1.0/24", # "next_hops": [ # { # "admin_distance": 90, # "description": "testroute", # "interface": "Null0" # } # ] # } # ] # }, # { # "afi": "ipv6", # "routes": [ # { # "dest": "2222:6::/64", # "next_hops": [ # { # "forward_router_address": "4312:100::1", # "interface": "Management1" # }, # { # "admin_distance": 55, # "interface": "Ethernet1" # }, # { # "admin_distance": 90, # "description": "testroute1", # "interface": "Null0" # } # ] # } # ] # } # ], # "vrf": "testvrf" # } # ], # "changed": true, # "commands": [ # "no ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute" # ], # After State # ___________ # veos(config)#show running-config | grep route # ipv6 route 5222:5::/64 Management1 4312:100::1 # ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1 # ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55 # ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1 # # Using merged # Before : [ # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "165.10.1.0/24", # "next_hops": [ # { # "admin_distance": 100, # "interface": "Ethernet1" # } # ] # }, # { # "dest": "172.17.252.0/24", # "next_hops": [ # { # "nexthop_grp": "testgroup" # } # ] # } # ] # }, # { # "afi": "ipv6", # "routes": [ # { # "dest": "5001::/64", # "next_hops": [ # { # "admin_distance": 50, # "interface": "Ethernet1" # } # ] # } # ] # } # ] # }, # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "130.1.122.0/24", # "next_hops": [ # { # "interface": "Ethernet1", # "tag": 50 # } # ] # } # ] # } # ], # "vrf": "testvrf" # } # ] # # Before State # ------------- # veos(config)#show running-config | grep "route" # ip route 165.10.1.0/24 Ethernet1 100 # ip route 172.17.252.0/24 Nexthop-Group testgroup # ip route vrf testvrf 130.1.122.0/24 Ethernet1 tag 50 # ipv6 route 5001::/64 Ethernet1 50 # veos(config)# - name: Merge new static route configuration arista.eos.eos_static_routes: config: - vrf: testvrf address_families: - afi: ipv6 routes: - dest: 2211::0/64 next_hop: - forward_router_address: 100:1::2 interface: Ethernet1 state: merged # After State # ----------- #After [ # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "165.10.1.0/24", # "next_hops": [ # { # "admin_distance": 100, # "interface": "Ethernet1" # } # ] # }, # { # "dest": "172.17.252.0/24", # "next_hops": [ # { # "nexthop_grp": "testgroup" # } # ] # } # ] # }, # { # "afi": "ipv6", # "routes": [ # { # "dest": "5001::/64", # "next_hops": [ # { # "admin_distance": 50, # "interface": "Ethernet1" # } # ] # } # ] # } # ] # }, # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "130.1.122.0/24", # "next_hops": [ # { # "interface": "Ethernet1", # "tag": 50 # } # ] # } # ] # }, # { # "afi": "ipv6", # "routes": [ # { # "dest": "2211::0/64", # "next_hops": [ # { # "aforward_router_address": 100:1::2 # "interface": "Ethernet1" # } # ] # } # ] # } # ], # "vrf": "testvrf" # } # ] # # veos(config)#show running-config | grep "route" # ip route 165.10.1.0/24 Ethernet1 100 # ip route 172.17.252.0/24 Nexthop-Group testgroup # ip route vrf testvrf 130.1.122.0/24 Ethernet1 tag 50 # ipv6 route 2211::/64 Ethernet1 100:1::2 # ipv6 route 5001::/64 Ethernet1 50 # veos(config)# # Using overridden # Before State # ------------- # "before": [ # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "165.10.1.0/24", # "next_hops": [ # { # "admin_distance": 100, # "interface": "Ethernet1" # } # ] # }, # { # "dest": "172.17.252.0/24", # "next_hops": [ # { # "nexthop_grp": "testgroup" # } # ] # } # ] # }, # { # "afi": "ipv6", # "routes": [ # { # "dest": "5001::/64", # "next_hops": [ # { # "admin_distance": 50, # "interface": "Ethernet1" # } # ] # } # ] # } # ] # }, # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "130.1.122.0/24", # "next_hops": [ # { # "interface": "Ethernet1", # "tag": 50 # } # ] # } # ] # } # ], # "vrf": "testvrf" # } # ] # veos(config)#show running-config | grep "route" # ip route 165.10.1.0/24 Ethernet1 100 # ip route 172.17.252.0/24 Nexthop-Group testgroup # ip route vrf testvrf 130.1.122.0/24 Ethernet1 tag 50 # ipv6 route 5001::/64 Ethernet1 50 # veos(config)# - name: Overridden static route configuration arista.eos.eos_static_routes: config: - address_families: - afi: ipv4 routes: - dest: 10.2.2.0/24 next_hop: - interface: Ethernet1 state: replaced # After State # ----------- # "after": [ # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "10.2.2.0/24", # "next_hops": [ # { # "interface": "Ethernet1" # } # ] # } # ] # } # ] # } # ] # veos(config)#show running-config | grep "route" # ip route 10.2.2.0/24 Ethernet1 # veos(config)# # Using replaced # Before State # ------------- # ip route 10.2.2.0/24 Ethernet1 # ip route 10.2.2.0/24 64.1.1.1 label 17 33 # ip route 33.33.33.0/24 Nexthop-Group testgrp # ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute # ipv6 route 5222:5::/64 Management1 4312:100::1 # ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1 # ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55 # ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1 # [ # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "10.2.2.0/24", # "next_hops": [ # { # "interface": "Ethernet1" # }, # { # "admin_distance": 33, # "interface": "64.1.1.1", # "mpls_label": 17 # } # ] # }, # { # "dest": "33.33.33.0/24", # "next_hops": [ # { # "nexthop_grp": "testgrp" # } # ] # } # ] # }, # { # "afi": "ipv6", # "routes": [ # { # "dest": "5222:5::/64", # "next_hops": [ # { # "forward_router_address": "4312:100::1", # "interface": "Management1" # } # ] # } # ] # } # ] # }, # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "22.65.1.0/24", # "next_hops": [ # { # "admin_distance": 90, # "description": "testroute", # "interface": "Null0" # } # ] # } # ] # }, # { # "afi": "ipv6", # "routes": [ # { # "dest": "2222:6::/64", # "next_hops": [ # { # "forward_router_address": "4312:100::1", # "interface": "Management1" # }, # { # "admin_distance": 90, # "description": "testroute1", # "interface": "Null0" # } # ] # } # ] # } # ], # "vrf": "testvrf" # } # ] - name: Replace nexthop arista.eos.eos_static_routes: config: - vrf: testvrf address_families: - afi: ipv6 routes: - dest: 2222:6::/64 next_hops: - admin_distance: 55 interface: Ethernet1 state: replaced # After State # ----------- # veos(config)#show running-config | grep route # ip route 10.2.2.0/24 Ethernet1 # ip route 10.2.2.0/24 64.1.1.1 label 17 33 # ip route 33.33.33.0/24 Nexthop-Group testgrp # ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute # ipv6 route 5222:5::/64 Management1 4312:100::1 # ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55 # "after": [ # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "10.2.2.0/24", # "next_hops": [ # { # "interface": "Ethernet1" # }, # { # "admin_distance": 33, # "interface": "64.1.1.1", # "mpls_label": 17 # } # ] # }, # { # "dest": "33.33.33.0/24", # "next_hops": [ # { # "nexthop_grp": "testgrp" # } # ] # } # ] # }, # { # "afi": "ipv6", # "routes": [ # { # "dest": "5222:5::/64", # "next_hops": [ # { # "forward_router_address": "4312:100::1", # "interface": "Management1" # } # ] # } # ] # } # ] # }, # { # "address_families": [ # { # "afi": "ipv4", # "routes": [ # { # "dest": "22.65.1.0/24", # "next_hops": [ # { # "admin_distance": 90, # "description": "testroute", # "interface": "Null0" # } # ] # } # ] # }, # { # "afi": "ipv6", # "routes": [ # { # "dest": "2222:6::/64", # "next_hops": [ # { # "admin_distance": 55, # "interface": "Ethernet1" # } # ] # } # ] # } # ], # "vrf": "testvrf" # } # ] # Before State # ------------- # veos(config)#show running-config | grep "route" # ip route 165.10.1.0/24 Ethernet1 10.1.1.2 100 # ipv6 route 5001::/64 Ethernet1 # veos(config)# - name: Gather the exisitng condiguration arista.eos.eos_static_routes: state: gathered # returns : # arista.eos.eos_static_routes: # config: # - address_families: # - afi: ipv4 # routes: # - dest: 165.10.1.0/24 # next_hop: # - forward_router_address: 10.1.1.2 # interface: "Ethernet1" # admin_distance: 100 # - afi: ipv6 # routes: # - dest: 5001::/64 # next_hop: # - interface: "Ethernet1" # Using rendered # arista.eos.eos_static_routes: # config: # - address_families: # - afi: ipv4 # routes: # - dest: 165.10.1.0/24 # next_hop: # - forward_router_address: 10.1.1.2 # interface: "Ethernet1" # admin_distance: 100 # - afi: ipv6 # routes: # - dest: 5001::/64 # next_hop: # - interface: "Ethernet1" # returns: # ip route 165.10.1.0/24 Ethernet1 10.1.1.2 100 # ipv6 route 5001::/64 Ethernet1
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
after list / elements=string | when changed | The resulting configuration model invocation. Sample: The configuration returned will always be in the same format of the parameters above. |
before list / elements=string | always | The configuration prior to the model invocation. Sample: The configuration returned will always be in the same format of the parameters above. |
commands list / elements=string | always | The set of commands pushed to the remote device. Sample: ['ip route vrf vrf1 192.2.2.0/24 125.2.3.1 93'] |
gathered list / elements=string | When state is gathered
| The configuration as structured data transformed for the running configuration fetched from remote host Sample: The configuration returned will always be in the same format of the parameters above. |
parsed list / elements=string | When state is parsed
| The configuration as structured data transformed for the value of running_config optionSample: The configuration returned will always be in the same format of the parameters above. |
rendered list / elements=string | When state is rendered
| The set of CLI commands generated from the value in config optionSample: "address_families": [ { "afi": "ipv4", "routes": [ { "dest": "192.2.2.0/24", "next_hops": [ { "admin_distance": 93, "description": null, "forward_router_address": null, "interface": "125.2.3.1", "mpls_label": null, "nexthop_grp": null, "tag": null, "track": null, "vrf": null } ] } ] } ], "vrf": "vrf1" } ], "running_config": null, "state": "rendered" } |
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/arista/eos/eos_static_routes_module.html