vyos.vyos.vyos_static_routes – Static routes resource module
vyos.vyos.vyos_static_routes – Static routes resource module
Note
This plugin is part of the vyos.vyos collection (version 1.1.1).
To install it use: ansible-galaxy collection install vyos.vyos
.
To use it in a playbook, specify: vyos.vyos.vyos_static_routes
.
New in version 1.0.0: of vyos.vyos
Synopsis
- This module manages attributes of static routes on VyOS network devices.
Parameters
Parameter | Choices/Defaults | Comments | ||||
---|---|---|---|---|---|---|
config list / elements=dictionary |
A provided static route configuration. | |||||
address_families list / elements=dictionary |
A dictionary specifying the address family to which the static route(s) belong. | |||||
afi string / required |
|
Specifies the type of route. | ||||
routes list / elements=dictionary |
A ditionary that specify the static route configurations. | |||||
blackhole_config dictionary |
Configured to silently discard packets. | |||||
distance integer |
Distance for the route. | |||||
type string |
This is to configure only blackhole. | |||||
dest string / required |
An IPv4/v6 address in CIDR notation that specifies the destination network for the static route. | |||||
next_hops list / elements=dictionary |
Next hops to the specified destination. | |||||
admin_distance integer |
Distance value for the route. | |||||
enabled boolean |
|
Disable IPv4/v6 next-hop static route. | ||||
forward_router_address string / required |
The IP address of the next hop that can be used to reach the destination network. | |||||
interface string |
Name of the outgoing interface. | |||||
running_config string |
This option is used only with state parsed. The value of this option should be the output received from the VyOS device by executing the command show configuration commands | grep static route. The state parsed reads the configuration from | |||||
state string |
|
The state of the configuration after module completion. |
Notes
Note
- Tested against VyOS 1.1.8 (helium).
- This module works with connection
network_cli
. See the VyOS OS Platform Options.
Examples
# Using merged
#
# Before state:
# -------------
#
# vyos@vyos:~$ show configuration commands | grep static
#
- name: Merge the provided configuration with the exisiting running configuration
vyos.vyos.vyos_static_routes:
config:
- address_families:
- afi: ipv4
routes:
- dest: 192.0.2.32/28
blackhole_config:
type: blackhole
next_hops:
- forward_router_address: 192.0.2.6
- forward_router_address: 192.0.2.7
- address_families:
- afi: ipv6
routes:
- dest: 2001:db8:1000::/36
blackhole_config:
distance: 2
next_hops:
- forward_router_address: 2001:db8:2000:2::1
- forward_router_address: 2001:db8:2000:2::2
state: merged
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
# before": []
#
# "commands": [
# "set protocols static route 192.0.2.32/28",
# "set protocols static route 192.0.2.32/28 blackhole",
# "set protocols static route 192.0.2.32/28 next-hop '192.0.2.6'",
# "set protocols static route 192.0.2.32/28 next-hop '192.0.2.7'",
# "set protocols static route6 2001:db8:1000::/36",
# "set protocols static route6 2001:db8:1000::/36 blackhole distance '2'",
# "set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'",
# "set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'"
# ]
#
# "after": [
# {
# "address_families": [
# {
# "afi": "ipv4",
# "routes": [
# {
# "blackhole_config": {
# "type": "blackhole"
# },
# "dest": "192.0.2.32/28",
# "next_hops": [
# {
# "forward_router_address": "192.0.2.6"
# },
# {
# "forward_router_address": "192.0.2.7"
# }
# ]
# }
# ]
# },
# {
# "afi": "ipv6",
# "routes": [
# {
# "blackhole_config": {
# "distance": 2
# },
# "dest": "2001:db8:1000::/36",
# "next_hops": [
# {
# "forward_router_address": "2001:db8:2000:2::1"
# },
# {
# "forward_router_address": "2001:db8:2000:2::2"
# }
# ]
# }
# ]
# }
# ]
# }
# ]
#
# After state:
# -------------
#
# vyos@vyos:~$ show configuration commands| grep static
# set protocols static route 192.0.2.32/28 'blackhole'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.6'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.7'
# set protocols static route6 2001:db8:1000::/36 blackhole distance '2'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'
# Using replaced
#
# Before state:
# -------------
#
# vyos@vyos:~$ show configuration commands| grep static
# set protocols static route 192.0.2.32/28 'blackhole'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.6'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.7'
# set protocols static route 192.0.2.33/28 'blackhole'
# set protocols static route 192.0.2.33/28 next-hop '192.0.2.3'
# set protocols static route 192.0.2.33/28 next-hop '192.0.2.4'
# set protocols static route6 2001:db8:1000::/36 blackhole distance '2'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'
#
- name: Replace device configurations of listed static routes with provided configurations
vyos.vyos.vyos_static_routes:
config:
- address_families:
- afi: ipv4
routes:
- dest: 192.0.2.32/28
blackhole_config:
distance: 2
next_hops:
- forward_router_address: 192.0.2.7
enabled: false
- forward_router_address: 192.0.2.9
state: replaced
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
# "before": [
# {
# "address_families": [
# {
# "afi": "ipv4",
# "routes": [
# {
# "blackhole_config": {
# "type": "blackhole"
# },
# "dest": "192.0.2.32/28",
# "next_hops": [
# {
# "forward_router_address": "192.0.2.6"
# },
# {
# "forward_router_address": "192.0.2.7"
# }
# ]
# },
# {
# "blackhole_config": {
# "type": "blackhole"
# },
# "dest": "192.0.2.33/28",
# "next_hops": [
# {
# "forward_router_address": "192.0.2.3"
# },
# {
# "forward_router_address": "192.0.2.4"
# }
# ]
# }
# ]
# },
# {
# "afi": "ipv6",
# "routes": [
# {
# "blackhole_config": {
# "distance": 2
# },
# "dest": "2001:db8:1000::/36",
# "next_hops": [
# {
# "forward_router_address": "2001:db8:2000:2::1"
# },
# {
# "forward_router_address": "2001:db8:2000:2::2"
# }
# ]
# }
# ]
# }
# ]
# }
# ]
#
# "commands": [
# "delete protocols static route 192.0.2.32/28 next-hop '192.0.2.6'",
# "delete protocols static route 192.0.2.32/28 next-hop '192.0.2.7'",
# "set protocols static route 192.0.2.32/28 next-hop 192.0.2.7 'disable'",
# "set protocols static route 192.0.2.32/28 next-hop '192.0.2.7'",
# "set protocols static route 192.0.2.32/28 next-hop '192.0.2.9'",
# "set protocols static route 192.0.2.32/28 blackhole distance '2'"
# ]
#
# "after": [
# {
# "address_families": [
# {
# "afi": "ipv4",
# "routes": [
# {
# "blackhole_config": {
# "distance": 2
# },
# "dest": "192.0.2.32/28",
# "next_hops": [
# {
# "enabled": false,
# "forward_router_address": "192.0.2.7"
# },
# {
# "forward_router_address": "192.0.2.9"
# }
# ]
# },
# {
# "blackhole_config": {
# "type": "blackhole"
# },
# "dest": "192.0.2.33/28",
# "next_hops": [
# {
# "forward_router_address": "192.0.2.3"
# },
# {
# "forward_router_address": "192.0.2.4"
# }
# ]
# }
# ]
# },
# {
# "afi": "ipv6",
# "routes": [
# {
# "blackhole_config": {
# "distance": 2
# },
# "dest": "2001:db8:1000::/36",
# "next_hops": [
# {
# "forward_router_address": "2001:db8:2000:2::1"
# },
# {
# "forward_router_address": "2001:db8:2000:2::2"
# }
# ]
# }
# ]
# }
# ]
# }
# ]
#
# After state:
# -------------
#
# vyos@vyos:~$ show configuration commands| grep static
# set protocols static route 192.0.2.32/28 blackhole distance '2'
# set protocols static route 192.0.2.32/28 next-hop 192.0.2.7 'disable'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.9'
# set protocols static route 192.0.2.33/28 'blackhole'
# set protocols static route 192.0.2.33/28 next-hop '192.0.2.3'
# set protocols static route 192.0.2.33/28 next-hop '192.0.2.4'
# set protocols static route6 2001:db8:1000::/36 blackhole distance '2'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'
# Using overridden
#
# Before state
# --------------
#
# vyos@vyos:~$ show configuration commands| grep static
# set protocols static route 192.0.2.32/28 blackhole distance '2'
# set protocols static route 192.0.2.32/28 next-hop 192.0.2.7 'disable'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.9'
# set protocols static route6 2001:db8:1000::/36 blackhole distance '2'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'
#
- name: Overrides all device configuration with provided configuration
vyos.vyos.vyos_static_routes:
config:
- address_families:
- afi: ipv4
routes:
- dest: 198.0.2.48/28
next_hops:
- forward_router_address: 192.0.2.18
state: overridden
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
# "before": [
# {
# "address_families": [
# {
# "afi": "ipv4",
# "routes": [
# {
# "blackhole_config": {
# "distance": 2
# },
# "dest": "192.0.2.32/28",
# "next_hops": [
# {
# "enabled": false,
# "forward_router_address": "192.0.2.7"
# },
# {
# "forward_router_address": "192.0.2.9"
# }
# ]
# }
# ]
# },
# {
# "afi": "ipv6",
# "routes": [
# {
# "blackhole_config": {
# "distance": 2
# },
# "dest": "2001:db8:1000::/36",
# "next_hops": [
# {
# "forward_router_address": "2001:db8:2000:2::1"
# },
# {
# "forward_router_address": "2001:db8:2000:2::2"
# }
# ]
# }
# ]
# }
# ]
# }
# ]
#
# "commands": [
# "delete protocols static route 192.0.2.32/28",
# "delete protocols static route6 2001:db8:1000::/36",
# "set protocols static route 198.0.2.48/28",
# "set protocols static route 198.0.2.48/28 next-hop '192.0.2.18'"
#
#
# "after": [
# {
# "address_families": [
# {
# "afi": "ipv4",
# "routes": [
# {
# "dest": "198.0.2.48/28",
# "next_hops": [
# {
# "forward_router_address": "192.0.2.18"
# }
# ]
# }
# ]
# }
# ]
# }
# ]
#
#
# After state
# ------------
#
# vyos@vyos:~$ show configuration commands| grep static
# set protocols static route 198.0.2.48/28 next-hop '192.0.2.18'
# Using deleted to delete static route based on afi
#
# Before state
# -------------
#
# vyos@vyos:~$ show configuration commands| grep static
# set protocols static route 192.0.2.32/28 'blackhole'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.6'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.7'
# set protocols static route6 2001:db8:1000::/36 blackhole distance '2'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'
#
- name: Delete static route based on afi.
vyos.vyos.vyos_static_routes:
config:
- address_families:
- afi: ipv4
- afi: ipv6
state: deleted
#
#
# ------------------------
# Module Execution Results
# ------------------------
#
# "before": [
# {
# "address_families": [
# {
# "afi": "ipv4",
# "routes": [
# {
# "blackhole_config": {
# "type": "blackhole"
# },
# "dest": "192.0.2.32/28",
# "next_hops": [
# {
# "forward_router_address": "192.0.2.6"
# },
# {
# "forward_router_address": "192.0.2.7"
# }
# ]
# }
# ]
# },
# {
# "afi": "ipv6",
# "routes": [
# {
# "blackhole_config": {
# "distance": 2
# },
# "dest": "2001:db8:1000::/36",
# "next_hops": [
# {
# "forward_router_address": "2001:db8:2000:2::1"
# },
# {
# "forward_router_address": "2001:db8:2000:2::2"
# }
# ]
# }
# ]
# }
# ]
# }
# ]
# "commands": [
# "delete protocols static route",
# "delete protocols static route6"
# ]
#
# "after": []
# After state
# ------------
# vyos@vyos# run show configuration commands | grep static
# set protocols 'static'
# Using deleted to delete all the static routes when passes config is empty
#
# Before state
# -------------
#
# vyos@vyos:~$ show configuration commands| grep static
# set protocols static route 192.0.2.32/28 'blackhole'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.6'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.7'
# set protocols static route6 2001:db8:1000::/36 blackhole distance '2'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'
#
- name: Delete all the static routes.
vyos.vyos.vyos_static_routes:
config:
state: deleted
#
#
# ------------------------
# Module Execution Results
# ------------------------
#
# "before": [
# {
# "address_families": [
# {
# "afi": "ipv4",
# "routes": [
# {
# "blackhole_config": {
# "type": "blackhole"
# },
# "dest": "192.0.2.32/28",
# "next_hops": [
# {
# "forward_router_address": "192.0.2.6"
# },
# {
# "forward_router_address": "192.0.2.7"
# }
# ]
# }
# ]
# },
# {
# "afi": "ipv6",
# "routes": [
# {
# "blackhole_config": {
# "distance": 2
# },
# "dest": "2001:db8:1000::/36",
# "next_hops": [
# {
# "forward_router_address": "2001:db8:2000:2::1"
# },
# {
# "forward_router_address": "2001:db8:2000:2::2"
# }
# ]
# }
# ]
# }
# ]
# }
# ]
# "commands": [
# "delete protocols static route",
# "delete protocols static route6"
# ]
#
# "after": []
# After state
# ------------
# vyos@vyos# run show configuration commands | grep static
# set protocols 'static'
# Using rendered
#
#
- name: Render the commands for provided configuration
vyos.vyos.vyos_static_routes:
config:
- address_families:
- afi: ipv4
routes:
- dest: 192.0.2.32/28
blackhole_config:
type: blackhole
next_hops:
- forward_router_address: 192.0.2.6
- forward_router_address: 192.0.2.7
- address_families:
- afi: ipv6
routes:
- dest: 2001:db8:1000::/36
blackhole_config:
distance: 2
next_hops:
- forward_router_address: 2001:db8:2000:2::1
- forward_router_address: 2001:db8:2000:2::2
state: rendered
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#
# "rendered": [
# "set protocols static route 192.0.2.32/28",
# "set protocols static route 192.0.2.32/28 blackhole",
# "set protocols static route 192.0.2.32/28 next-hop '192.0.2.6'",
# "set protocols static route 192.0.2.32/28 next-hop '192.0.2.7'",
# "set protocols static route6 2001:db8:1000::/36",
# "set protocols static route6 2001:db8:1000::/36 blackhole distance '2'",
# "set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'",
# "set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'"
# ]
# Using parsed
#
#
- name: Parse the provided running configuration
vyos.vyos.vyos_static_routes:
running_config:
"set protocols static route 192.0.2.32/28 'blackhole'
set protocols static route 192.0.2.32/28 next-hop '192.0.2.6'
set protocols static route 192.0.2.32/28 next-hop '192.0.2.7'
set protocols static route6 2001:db8:1000::/36 blackhole distance '2'
set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'
set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'"
state: parsed
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#
# "parsed": [
# {
# "address_families": [
# {
# "afi": "ipv4",
# "routes": [
# {
# "blackhole_config": {
# "distance": 2
# },
# "dest": "192.0.2.32/28",
# "next_hops": [
# {
# "forward_router_address": "2001:db8:2000:2::2"
# }
# ]
# }
# ]
# },
# {
# "afi": "ipv6",
# "routes": [
# {
# "blackhole_config": {
# "distance": 2
# },
# "dest": "2001:db8:1000::/36",
# "next_hops": [
# {
# "forward_router_address": "2001:db8:2000:2::2"
# }
# ]
# }
# ]
# }
# ]
# }
# ]
# Using gathered
#
# Before state:
# -------------
#
# vyos@vyos:~$ show configuration commands| grep static
# set protocols static route 192.0.2.32/28 'blackhole'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.6'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.7'
# set protocols static route6 2001:db8:1000::/36 blackhole distance '2'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'
#
- name: Gather listed static routes with provided configurations
vyos.vyos.vyos_static_routes:
config:
state: gathered
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
# "gathered": [
# {
# "address_families": [
# {
# "afi": "ipv4",
# "routes": [
# {
# "blackhole_config": {
# "type": "blackhole"
# },
# "dest": "192.0.2.32/28",
# "next_hops": [
# {
# "forward_router_address": "192.0.2.6"
# },
# {
# "forward_router_address": "192.0.2.7"
# }
# ]
# }
# ]
# },
# {
# "afi": "ipv6",
# "routes": [
# {
# "blackhole_config": {
# "distance": 2
# },
# "dest": "2001:db8:1000::/36",
# "next_hops": [
# {
# "forward_router_address": "2001:db8:2000:2::1"
# },
# {
# "forward_router_address": "2001:db8:2000:2::2"
# }
# ]
# }
# ]
# }
# ]
# }
# ]
#
#
# After state:
# -------------
#
# vyos@vyos:~$ show configuration commands| grep static
# set protocols static route 192.0.2.32/28 'blackhole'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.6'
# set protocols static route 192.0.2.32/28 next-hop '192.0.2.7'
# set protocols static route6 2001:db8:1000::/36 blackhole distance '2'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'
# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'
Return Values
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: ["set protocols static route 192.0.2.32/28 next-hop '192.0.2.6'", "set protocols static route 192.0.2.32/28 'blackhole'"] |
Authors
- Rohit Thakur (@rohitthakur2590)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/vyos/vyos/vyos_static_routes_module.html