cisco.ios.ios_static_routes – Модуль ресурсов статических маршрутов
Примечание
Этот плагин входит в коллекцию cisco.ios (версия 1.2.1).
Для его установки используйте: ansible-galaxy collection install cisco.ios.
Для использования в книге задач укажите: cisco.ios.ios_static_routes.
Новое в версии 1.0.0: модуля cisco.ios
Обзор
- Этот модуль настраивает и управляет статическими маршрутами на платформах IOS.
Примечание
Для этого модуля есть соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||||
|---|---|---|---|---|---|---|
| config список / элементы=словарь | Словарь параметров статического маршрута | |||||
| address_families список / элементы=словарь | Семейство адресов для использования статических маршрутов | |||||
| afi строка / обязательно |
| Индикатор семейства адресов верхнего уровня. | ||||
| routes список / элементы=словарь | Настройка статического маршрута | |||||
| dest строка / обязательно | Префикс назначения с маской подсети | |||||
| next_hops список / элементы=словарь | Адрес следующего узла или интерфейс | |||||
| dhcp булево |
| Адрес шлюза по умолчанию, полученный из DHCP | ||||
| distance_metric целое число | Метрика расстояния для этого маршрута | |||||
| forward_router_address строка | Адрес маршрутизатора переадресации | |||||
| global булево |
| Адрес следующего узла является глобальным | ||||
| interface строка | Интерфейс для прямо подключенных статических маршрутов | |||||
| multicast булево |
| маршрут мультивещания | ||||
| name строка | Укажите имя следующего узла | |||||
| permanent булево |
| постоянный маршрут | ||||
| tag целое число | Установить метку для этого маршрута Обратитесь к документации вендора для допустимых значений. | |||||
| track целое число | Установка маршрута в зависимости от отслеживаемого элемента с номером отслеживаемого объекта. Отслеживание не поддерживает мультивещание Обратитесь к документации вендора для допустимых значений. | |||||
| topology строка | Настройка статического маршрута для экземпляра маршрутизации/переадресации топологии ПРИМЕЧАНИЕ. VRF и топология могут использоваться вместе только с мультивещанием, а топология должна существовать до её использования | |||||
| vrf строка | Имя экземпляра IP VPN маршрутизации/переадресации. ПРИМЕЧАНИЕ. В случае IPV4/IPV6 таблица маршрутизации VRF должна существовать до её настройки. ПРИМЕЧАНИЕ, если информация о vrf не предоставлена, то маршруты будут настроены в глобальном vrf. | |||||
| running_config строка | Модуль по умолчанию подключается к удаленному устройству и извлекает текущую конфигурацию running-config, чтобы использовать ее в качестве основы для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую running-config для каждой задачи в книге задач. Аргумент running_config позволяет реализатору передать конфигурацию в качестве базовой конфигурации для сравнения. Это значение должно быть выводом, полученным от устройства путём выполнения команды show running-config | include ip route|ipv6 route
| |||||
| state строка |
| Состояние, в котором должна быть оставлена конфигурация Состояния rendered, gathered и parsed не выполняют никаких изменений на устройстве. Состояние rendered преобразует конфигурацию в config параметры в специфические для платформы команды CLI, которые будут возвращены в ключе rendered в результате. Для состояния rendered активное подключение к удалённому хосту не требуется.Состояние gathered извлечет конфигурацию running с устройства и преобразует её в структурированные данные в формате в соответствии с параметрами ресурсного модуля argspec, значение возвращается в ключе gathered в результате. Состояние parsed считывает конфигурацию из running_config параметра и преобразует его в формат JSON в соответствии с параметрами ресурсного модуля, значение возвращается в ключе parsed в результате. Значение running_config параметра должно быть в том же формате, что и вывод команды show running-config | include ip route|ipv6 route, выполненной на устройстве. Для состояния parsed активное подключение к удалённому хосту не требуется. | ||||
Примечания
Примечание
- Проверено на Cisco IOSv версии 15.2 на VIRL.
Примеры
# Using merged
# Before state:
# -------------
#
# vios#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
# Commands fired:
# ---------------
# ip route vrf blue 192.0.2.0 255.255.255.0 10.0.0.8 name merged_blue track 150 tag 50
# ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name merged_route_1 tag 40
# 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
# ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 name merged_v6 tag 105
# After state:
# ------------
#
# vios#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:
# -------------
#
# vios#show running-config | include ip route|ipv6 route
# ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 192.0.2.1 name test_vrf track 150 tag 50
# ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40
# 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 name test_v6 tag 105
- 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
# Commands fired:
# ---------------
# no ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40
# 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.3 name route_3
# ip route 198.51.100.0 255.255.255.0 198.51.101.1 175 name replaced_route track 150 tag 70
# After state:
# ------------
#
# vios#show running-config | include ip route|ipv6 route
# ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 192.0.2.1 name test_vrf track 150 tag 50
# ip route 198.51.100.0 255.255.255.0 198.51.101.1 175 name replaced_route track 150 tag 70
# ipv6 route 2001:DB8:0:3::/64 2001:DB8:0:3::2 tag 105 name test_v6
# Using overridden
# Before state:
# -------------
#
# vios#show running-config | include ip route|ipv6 route
# ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 192.0.2.1 name test_vrf track 150 tag 50
# ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40
# 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 name test_v6 tag 105
- 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
# Commands fired:
# ---------------
# no ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40
# 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.3 name route_3
# no ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 198.51.101.8 name test_vrf track 150 tag 50
# no ipv6 route FD5D:12C9:2201:1::/64 FD5D:12C9:2202::2 name test_v6 tag 105
# ip route vrf blue 192.0.2.0 255.255.255.0 198.51.101.4 name override_vrf track 150 tag 50
# After state:
# ------------
#
# vios#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
# Example 1:
# ----------
# To delete the exact static routes, with all the static routes explicitly mentioned in want
# Before state:
# -------------
#
# vios#show running-config | include ip route|ipv6 route
# ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 192.0.2.1 name test_vrf track 150 tag 50
# ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40
# 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 name test_v6 tag 105
- name: Delete provided configuration from the device configuration
cisco.ios.ios_static_routes:
config:
- vrf: ansible_temp_vrf
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
# Commands fired:
# ---------------
# no ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 198.51.101.8 name test_vrf track 150 tag 50
# no ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40
# 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.3 name route_3
# no ipv6 route FD5D:12C9:2201:1::/64 FD5D:12C9:2202::2 name test_v6 tag 105
# After state:
# ------------
#
# vios#show running-config | include ip route|ipv6 route
# Example 2:
# ----------
# To delete the destination specific static routes
# Before state:
# -------------
#
# vios#show running-config | include ip route|ipv6 route
# ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 192.0.2.1 name test_vrf track 150 tag 50
# ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40
# 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 name test_v6 tag 105
- name: Delete provided configuration from the device configuration
cisco.ios.ios_static_routes:
config:
- address_families:
- afi: ipv4
routes:
- dest: 198.51.100.0/24
state: deleted
# Commands fired:
# ---------------
# 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 state:
# ------------
#
# vios#show running-config | include ip route|ipv6 route
# ip route vrf ansible_temp_vrf 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
# Example 3:
# ----------
# To delete the vrf specific static routes
# Before state:
# -------------
#
# vios#show running-config | include ip route|ipv6 route
# ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 192.0.2.1 name test_vrf track 150 tag 50
# ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40
# 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 name test_v6 tag 105
- name: Delete provided configuration from the device configuration
cisco.ios.ios_static_routes:
config:
- vrf: ansible_temp_vrf
state: deleted
# Commands fired:
# ---------------
# no ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 192.0.2.1 name test_vrf track 150 tag 50
# After state:
# ------------
#
# vios#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 without any config passed
#"(NOTE: This will delete all of configured resource module attributes from each configured interface)"
# Before state:
# -------------
#
# vios#show running-config | include ip route|ipv6 route
# ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 192.0.2.1 name test_vrf track 150 tag 50
# ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40
# 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 name test_v6 tag 105
- name: Delete ALL configured IOS static routes
cisco.ios.ios_static_routes:
state: deleted
# Commands fired:
# ---------------
# no ip route vrf ansible_temp_vrf 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 state:
# -------------
#
# vios#show running-config | include ip route|ipv6 route
#
# Using gathered
# Before state:
# -------------
#
# vios#show running-config | include ip route|ipv6 route
# ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 192.0.2.1 name test_vrf track 150 tag 50
# ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40
# 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 name test_v6 tag 105
- name: Gather listed static routes with provided configurations
cisco.ios.ios_static_routes:
config:
state: gathered
# Module Execution Result:
# ------------------------
#
# "gathered": [
# {
# "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": "ansible_temp_vrf"
# },
# {
# "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
# }
# ]
# }
# ]
# },
# {
# "afi": "ipv4",
# "routes": [
# {
# "dest": "198.51.100.0/24",
# "next_hops": [
# {
# "distance_metric": 110,
# "forward_router_address": "198.51.101.1",
# "multicast": true,
# "name": "route_1",
# "tag": 40
# },
# {
# "distance_metric": 30,
# "forward_router_address": "198.51.101.2",
# "name": "route_2"
# },
# {
# "forward_router_address": "198.51.101.3",
# "name": "route_3"
# }
# ]
# }
# ]
# }
# ]
# }
# ]
# After state:
# ------------
#
# vios#show running-config | include ip route|ipv6 route
# ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 192.0.2.1 name test_vrf track 150 tag 50
# ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40
# 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 name test_v6 tag 105
# Using rendered
- name: Render the commands for provided configuration
cisco.ios.ios_static_routes:
config:
- vrf: ansible_temp_vrf
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
# Module Execution Result:
# ------------------------
#
# "rendered": [
# "ip route vrf ansible_temp_vrf 192.0.2.0 255.255.255.0 192.0.2.1 name test_vrf track 150 tag 50",
# "ip route 198.51.100.0 255.255.255.0 198.51.101.1 110 multicast name route_1 tag 40",
# "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 name test_v6 tag 105"
# ]
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| after список / элементы=строка | при изменении | Конфигурация в виде структурированных данных после завершения модуля. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| before список / элементы=строка | всегда | Конфигурация в виде структурированных данных до вызова модуля. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| commands список / элементы=строка | всегда | Набор команд, отправленных на удаленное устройство. Пример: ['ip route vrf test 172.31.10.0 255.255.255.0 10.10.10.2 name new_test multicast'] |
| gathered список / элементы=строка | Когда state сбор
| Конфигурация в виде структурированных данных, преобразованная для текущей конфигурации, полученной с удаленного хоста. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| parsed список / элементы=строка | Когда state разбор
| Конфигурация в виде структурированных данных, преобразованная для значения параметра running_config. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| rendered список / элементы=строка | Когда state рендеринг
| Набор команд CLI, сгенерированных из значения параметра config. Пример: ['interface Ethernet1/1', 'mtu 1800'] |
Авторы
- Sumit Jaiswal (@justjais)
© 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/cisco/ios/ios_static_routes_module.html