Spec-Zone.ru › Ansible

arista.eos.eos_route_maps модуль — Управляет ресурсом Карты маршрутизации

Примечание

Этот модуль входит в коллекцию arista.eos (версия 9.0.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install arista.eos.

Для использования в книге задач укажите: arista.eos.eos_route_maps.

Добавлена в arista.eos 2.1.0

  • Описание
  • Параметры
  • Примечания
  • Примеры

Описание

  • Этот модуль настраивает и управляет атрибутами Карт маршрутизации на платформах Arista EOS.

Псевдонимы: route_maps

Параметры

Параметр

Комментарии

config

list / elements=dictionary

Список параметров маршрутного отображения

entries

list / elements=dictionary

Записи маршрутного отображения.

action

string

Действие для соответствующих маршрутов

Варианты:

  • "deny"
  • "permit"

continue_sequence

integer

Номер последовательности записи маршрутного отображения.

description

string

Описание для маршрутного отображения.

match

dictionary

Правила соответствия маршрутного отображения.

aggregate_role

dictionary

Роль в отношении BGP contributor-aggregate.

contributor

boolean

Участник агрегата BGP.

Варианты:

  • false
  • true

route_map

string

Маршрутное отображение для применения к агрегированному маршруту.

as

integer

Номер AS BGP.

as_path

dictionary

Установить as-path.

length

string

Указать длину as-path (с операторами сравнения, такими как <= 60 и >= 40).

path_list

string

Имя списка AS path.

community

dictionary

Атрибут сообщества BGP.

community_list

string

Список имен сообществ (в формате csv).

exact_match

boolean

Выполнять точное сопоставление сообществ.

Варианты:

  • false
  • true

instances

string

Сопоставить количество экземпляров сообщества (с операторами сравнения, такими как <= 60 и >= 40).

extcommunity

dictionary

Имя расширенного списка сообществ.

community_list

string

Список имен сообществ (в формате csv).

exact_match

boolean

Выполнять точное сопоставление сообществ.

Варианты:

  • false
  • true

interface

string

Имя интерфейса.

invert_result

dictionary

Инвертировать результат сопоставления.

aggregate_role

dictionary

Роль в отношении BGP contributor-aggregate.

contributor

boolean

Участник агрегата BGP.

Варианты:

  • false
  • true

route_map

string

Маршрутное отображение для применения к агрегированному маршруту.

as_path

dictionary

Установить as-path.

length

string

Указать длину as-path (с операторами сравнения, такими как <= 60 и >= 40).

path_list

string

Имя списка AS path.

community

dictionary

Атрибут BGP community.

community_list

string

Список имен сообществ (в формате csv).

exact_match

boolean

Выполнять точное сопоставление сообществ.

Choices:

  • false
  • true

instances

string

Сопоставить количество экземпляров сообщества (с операторами сравнения, такими как <= 60 и >= 40).

extcommunity

dictionary

Имя расширенного списка сообществ.

community_list

string

Список имен сообществ (в формате csv).

exact_match

boolean

Выполнять точное сопоставление сообществ.

Choices:

  • false
  • true

large_community

dictionary

Имя расширенного списка сообществ.

community_list

string

Список имен сообществ (в формате csv).

exact_match

boolean

Выполнять точное сопоставление сообществ.

Choices:

  • false
  • true

ip

dictionary

Установить информацию, специфичную для IP.

address

dictionary

адрес назначения следующего перехода.

access_list

string

ip access-list.

dynamic

boolean

Настроить динамический prefix-list.

Choices:

  • false
  • true

prefix_list

string

Prefix list.

next_hop

string

Список префиксов следующего перехода.

resolved_next_hop

string

Список префиксов разрешенного маршрута.

ipv6

dictionary

Установить информацию, специфичную для IPv6.

address

dictionary

адрес назначения следующего перехода.

access_list

string

ip access-list.

dynamic

boolean

Настроить динамический prefix-list.

Choices:

  • false
  • true

prefix_list

string

Prefix list.

next_hop

string

Префикс следующего перехода.

resolved_next_hop

string

Префикс маршрута с разрешенным переходом.

isis_level

string

Уровень IS-IS.

large_community

dictionary

Имя расширенного списка сообществ.

community_list

string

Список имен сообществ (в формате csv).

exact_match

boolean

Выполнять точное сопоставление сообществ.

Choices:

  • false
  • true

local_preference

integer

Локальное предпочтение BGP.

metric

integer

Метрика маршрута.

metric_type

string

Тип метрики маршрута.

Choices:

  • "type-1"
  • "type-2"

route_type

string

Тип маршрута

router_id

string

ID маршрутизатора.

source_protocol

string

Исходный протокол маршрутизации,

tag

integer

Тег маршрута

sequence

integer

Индекс в последовательности.

set

dictionary

Установить атрибуты маршрута.

as_path

dictionary

Установить as-path.

match

dictionary

Сопоставить весь as-path.

as_number

string

Номер AS для использования (включает auto; в формате csv)

none

boolean

Удалить совпадающие номера AS

Choices:

  • false
  • true

prepend

dictionary

Добавить в начало as-path.

as_number

string

Номер AS для добавления в начало (включает auto; в формате csv)

last_as

integer

Количество раз, которое нужно добавить в начало последний номер AS.

bgp

integer

Вес многопутевого AS пути BGP.

community_attributes

dictionary

Атрибут сообщества BGP.

community

dictionary

Атрибуты сообщества.

additive

boolean

Добавить к существующему сообществу.

Choices:

  • false
  • true

delete

boolean

Удалить совпадающие сообщества.

Choices:

  • false
  • true

graceful_shutdown

boolean

Грациозное завершение работы.

Choices:

  • false
  • true

internet

boolean

Сообщество Интернет

Choices:

  • false
  • true

list

string

Имя списка сообществ.

local_as

boolean

Не отправлять за пределы локального AS.

Choices:

  • false
  • true

no_advertise

boolean

Не рекламировать ни одному пиру.

Choices:

  • false
  • true

no_export

boolean

Не экспортировать в следующий AS.

Choices:

  • false
  • true

number

string

Номер сообщества (в формате csv).

graceful_shutdown

boolean

Грациозное завершение работы

Choices:

  • false
  • true

none

boolean

Отсутствует атрибут сообщества.

Choices:

  • false
  • true

distance

integer

Установить независимое от протокола расстояние.

evpn

boolean

Сохранить следующий узел при рекламировании пирам eBGP.

Choices:

  • false
  • true

extcommunity

dictionary

Расширенный атрибут сообщества BGP.

lbw

dictionary

Значения пропускной способности канала связи.

aggregate

boolean

Суммарная пропускная способность канала связи.

Choices:

  • false
  • true

divide

string

Разделить пропускную способность канала связи.

Choices:

  • "equal"
  • "ration"

value

string

Расширенное значение сообщества пропускной способности канала связи.

none

boolean

Отсутствует атрибут.

Choices:

  • false
  • true

rt

dictionary

Расширенное сообщество целевого маршрута

additive

boolean

Добавить к существующему сообществу.

Choices:

  • false
  • true

delete

boolean

Удалить совпадающие сообщества.

Choices:

  • false
  • true

vpn

string

Расширенное сообщество VPN.

soo

dictionary

Расширенное сообщество Site-of-Origin.

additive

boolean

Добавить к существующему сообществу.

Choices:

  • false
  • true

delete

boolean

Удалить совпадающие сообщества.

Choices:

  • false
  • true

vpn

string

Расширенное сообщество VPN.

ip

dictionary

Установить специфическую информацию IP.

address

string

Адрес следующего прыжка.

peer_address

boolean

Использовать адрес BGP пиринга как следующий прыжок.

Choices:

  • false
  • true

unchanged

boolean

Сохранить следующий прыжок при рекламировании для eBGP пиринга

Choices:

  • false
  • true

ipv6

dictionary

Установить специфическую информацию IPv6.

address

string

Адрес следующего прыжка.

peer_address

boolean

Использовать адрес BGP пиринга как следующий прыжок.

Choices:

  • false
  • true

unchanged

boolean

Сохранить следующий прыжок при рекламировании для eBGP пиринга

Choices:

  • false
  • true

isis_level

string

Уровень IS-IS.

local_preference

integer

Локальный приоритет BGP.

metric

dictionary

Метрика маршрута.

add

string

Добавить igp-metric / igp-nexthop-cost

Choices:

  • "igp-metric"
  • "igp-nexthop-cost"

igp_param

string

Параметр IGP

Choices:

  • "igp-metric"
  • "igp-nexthop-cost"

value

string

Значение метрики для добавления или вычитания (со знаком +/-).

metric_type

string

Тип метрики маршрута.

Choices:

  • "type-1"
  • "type-2"

nexthop

dictionary

Следующий прыжок маршрута.

max_metric

boolean

Установить максимальное значение метрики IGP.

Choices:

  • false
  • true

value

integer

Значение метрики IGP.

origin

string

Установить источник bgp.

Choices:

  • "egp"
  • "igp"
  • "incomplete"

segment_index

целое число

Индекс сегмента MPLS Segment-routing.

tag

целое число

Тег маршрута

weight

целое число

Вес BGP.

source

словарь

Переименование/копирование конфигурации

action

строка

Переименование или копирование конфигурации

Варианты:

  • "rename"
  • "copy"

overwrite

булево

Если true, перезаписывает существующую конфигурацию.

Варианты:

  • false
  • true

source_map_name

строка

Имя источника карты маршрутизации.

statement

строка

Имя оператора.

sub_route_map

словарь

Вложенная карта маршрутизации.

invert_result

булево

Инвертировать результат вложенной карты маршрутизации

Варианты:

  • false
  • true

name

строка

Имя вложенной карты маршрутизации.

route_map

строка

Имя карты маршрутизации.

running_config

строка

Этот параметр используется только со значением parsed.

Значение этого параметра должно быть результатом выполнения команды show running-config | section route-map на устройстве EOS.

Значение parsed считывает конфигурацию из параметра running_config, преобразует её в структурированные данные Ansible в соответствии с argspec модуля ресурса и возвращает значение в ключе parsed результата.

state

строка

Состояние, в котором должна оставаться конфигурация.

Варианты:

  • "deleted"
  • "merged" ← (по умолчанию)
  • "overridden"
  • "replaced"
  • "gathered"
  • "rendered"
  • "parsed"

Примечания

Примечание

  • Проверено на Arista EOS 4.24.6F
  • Этот модуль работает с подключением network_cli. См. Параметры платформы EOS.

Примеры

# Using merged
# Before state
# veos#show running-config | section route-map
# veos#

- name: Merge provided configuration with device configuration
  arista.eos.eos_route_maps:
    config:
      - route_map: "mapmerge"
        entries:
          - description: "merged_map"
            action: "permit"
            sequence: 10
            match:
              router_id: 22
          - description: "newmap"
            action: "deny"
            sequence: 25
            continue_sequence: 45
            match:
              interface: "Ethernet1"
      - route_map: "mapmerge2"
        entries:
          - sub_route_map:
              name: "mapmerge"
            action: "deny"
            sequence: 45
            set:
              metric:
                value: 25
                add: "igp-metric"
              as_path:
                prepend:
                  last_as: 2
            match:
              ipv6:
                resolved_next_hop: "list1"
    state: merged

# After State:

# veos#show running-config | section route-map
# route-map mapmerge permit 10
#    description merged_map
#    match router-id prefix-list 22
# !
# route-map mapmerge deny 25
#    description newmap
#    match interface Ethernet1
#    continue 45
# !
# route-map mapmerge2 deny 45
#    match ipv6 resolved-next-hop prefix-list list1
#    sub-route-map mapmerge
#    set metric 25 +igp-metric
#    set as-path prepend last-as 2
# !
# route-map test permit 10
# veos#

# Module Execution:

#  "after": [
#         {
#             "entries": [
#                 {
#                     "action": "permit",
#                     "description": "merged_map",
#                     "match": {
#                         "router_id": "22"
#                     },
#                     "sequence": 10
#                 },
#                 {
#                     "action": "deny",
#                     "continue_sequence": 45,
#                     "description": "newmap",
#                     "match": {
#                         "interface": "Ethernet1"
#                     },
#                     "sequence": 25
#                 }
#             ],
#             "route_map": "mapmerge"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "list1"
#                         }
#                     },
#                     "sequence": 45,
#                     "set": {
#                         "as_path": {
#                             "prepend": {
#                                 "last_as": 2
#                             }
#                         },
#                         "metric": {
#                             "add": "igp-metric",
#                             "value": "25"
#                         }
#                     },
#                     "sub_route_map": {
#                         "name": "mapmerge"
#                     }
#                 }
#             ],
#             "route_map": "mapmerge2"
#         }
#     ],
#     "before": {},
#     "changed": true,
#     "commands": [
#         "route-map mapmerge permit 10",
#         "match router-id prefix-list 22",
#         "description merged_map",
#         "route-map mapmerge deny 25",
#         "match interface Ethernet1",
#         "description newmap",
#         "continue 45",
#         "route-map mapmerge2 deny 45",
#         "match ipv6 resolved-next-hop prefix-list list1",
#         "set metric 25 +igp-metric",
#         "set as-path prepend last-as 2",
#         "sub-route-map mapmerge"
#     ],
#

# Using replaced:

# Before State:

# veos#show running-config | section route-map
# route-map mapmerge permit 10
#    description merged_map
#    match router-id prefix-list 22
# !
# route-map mapmerge deny 25
#    description newmap
#    match interface Ethernet1
#    continue 45
# !
# route-map mapmerge2 deny 45
#    match ipv6 resolved-next-hop prefix-list list1
#    sub-route-map mapmerge
#    set metric 25 +igp-metric
#    set as-path prepend last-as 2
# !
# veos#

- name: Replace
  arista.eos.eos_route_maps:
    config:
      - route_map: "mapmerge"
        entries:
          - action: "permit"
            sequence: 10
            match:
              ipv6:
                resolved_next_hop: "listr"
          - action: "deny"
            sequence: 90
            set:
              extcommunity:
                rt:
                  vpn: "22:11"
                  delete: true
              ip:
                unchanged: true
    state: replaced

# After State:

# veos#show running-config | section route-map
# route-map mapmerge permit 10
#    match ipv6 resolved-next-hop prefix-list listr
# !
# route-map mapmerge deny 25
#    description newmap
#    match interface Ethernet1
#    continue 45
# !
# route-map mapmerge deny 90
#    set ip next-hop unchanged
#    set extcommunity rt 22:11 delete
# !
# route-map mapmerge2 deny 45
#    match ipv6 resolved-next-hop prefix-list list1
#    sub-route-map mapmerge
#    set metric 25 +igp-metric
#    set as-path prepend last-as 2
# !
#
# Module Execution:
#
#     "after": [
#         {
#             "entries": [
#                 {
#                     "action": "permit",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "listr"
#                         }
#                     },
#                     "sequence": 10
#                 },
#                 {
#                     "action": "deny",
#                     "continue_sequence": 45,
#                     "description": "newmap",
#                     "match": {
#                         "interface": "Ethernet1"
#                     },
#                     "sequence": 25
#                 },
#                 {
#                     "action": "deny",
#                     "sequence": 90,
#                     "set": {
#                         "extcommunity": {
#                             "rt": {
#                                 "delete": true,
#                                 "vpn": "22:11"
#                             }
#                         },
#                         "ip": {
#                             "unchanged": true
#                         }
#                     }
#                 }
#             ],
#             "route_map": "mapmerge"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "list1"
#                         }
#                     },
#                     "sequence": 45,
#                     "set": {
#                         "as_path": {
#                             "prepend": {
#                                 "last_as": 2
#                             }
#                         },
#                         "metric": {
#                             "add": "igp-metric",
#                             "value": "25"
#                         }
#                     },
#                     "sub_route_map": {
#                         "name": "mapmerge"
#                     }
#                 }
#             ],
#             "route_map": "mapmerge2"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "permit",
#                     "sequence": 10
#                 }
#             ],
#             "route_map": "test"
#         }
#     ],
#     "before": [
#         {
#             "entries": [
#                 {
#                     "action": "permit",
#                     "description": "merged_map",
#                     "match": {
#                         "router_id": "22"
#                     },
#                     "sequence": 10
#                 },
#                 {
#                     "action": "deny",
#                     "continue_sequence": 45,
#                     "description": "newmap",
#                     "match": {
#                         "interface": "Ethernet1"
#                     },
#                     "sequence": 25
#                 }
#             ],
#             "route_map": "mapmerge"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "list1"
#                         }
#                     },
#                     "sequence": 45,
#                     "set": {
#                         "as_path": {
#                             "prepend": {
#                                 "last_as": 2
#                             }
#                         },
#                         "metric": {
#                             "add": "igp-metric",
#                             "value": "25"
#                         }
#                     },
#                     "sub_route_map": {
#                         "name": "mapmerge"
#                     }
#                 }
#             ],
#             "route_map": "mapmerge2"
#         }
#     ],
#     "changed": true,
#     "commands": [
#         "route-map mapmerge permit 10",
#         "match ipv6 resolved-next-hop prefix-list listr",
#         "no match router-id prefix-list 22",
#         "no description",
#         "route-map mapmerge deny 90",
#         "set extcommunity rt 22:11 delete",
#         "set ip next-hop unchanged"
#     ],
#
#
# Using Overridden:

# Before state:
# veos#show running-config | section route-map
# route-map mapmerge permit 10
#    match ipv6 resolved-next-hop prefix-list listr
# !
# route-map mapmerge deny 25
#    description newmap
#    match interface Ethernet1
#    continue 45
# !
# route-map mapmerge deny 90
#    set ip next-hop unchanged
#    set extcommunity rt 22:11 delete
# !
# route-map mapmerge2 deny 45
#    match ipv6 resolved-next-hop prefix-list list1
#    sub-route-map mapmerge
#    set metric 25 +igp-metric
#    set as-path prepend last-as 2
# !
# route-map test permit 10
# veos#

- name: Override
  arista.eos.eos_route_maps:
    config:
      - route_map: "mapmerge"
        entries:
          - action: "permit"
            sequence: 10
            match:
              ipv6:
                resolved_next_hop: "listr"
          - action: "deny"
            sequence: 90
            set:
              metric:
                igp_param: "igp-nexthop-cost"
    state: overridden

# After State:

# veos#show running-config | section route-map
# route-map mapmerge permit 10
#    match ipv6 resolved-next-hop prefix-list listr
# !
# route-map mapmerge deny 90
#    set metric igp-nexthop-cost
# veos#
#
#
#    "after": [
#         {
#             "entries": [
#                 {
#                     "action": "permit",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "listr"
#                         }
#                     },
#                     "sequence": 10
#                 },
#                 {
#                     "action": "deny",
#                     "sequence": 90,
#                     "set": {
#                         "metric": {
#                             "igp_param": "igp-nexthop-cost"
#                         }
#                     }
#                 }
#             ],
#             "route_map": "mapmerge"
#         }
#     ],
#     "before": [
#         {
#             "entries": [
#                 {
#                     "action": "permit",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "listr"
#                         }
#                     },
#                     "sequence": 10
#                 },
#                 {
#                     "action": "deny",
#                     "continue_sequence": 45,
#                     "description": "newmap",
#                     "match": {
#                         "interface": "Ethernet1"
#                     },
#                     "sequence": 25
#                 },
#                 {
#                     "action": "deny",
#                     "sequence": 90,
#                     "set": {
#                         "extcommunity": {
#                             "rt": {
#                                 "delete": true,
#                                 "vpn": "22:11"
#                             }
#                         },
#                         "ip": {
#                             "unchanged": true
#                         }
#                     }
#                 }
#             ],
#             "route_map": "mapmerge"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "list1"
#                         }
#                     },
#                     "sequence": 45,
#                     "set": {
#                         "as_path": {
#                             "prepend": {
#                                 "last_as": 2
#                             }
#                         },
#                         "metric": {
#                             "add": "igp-metric",
#                             "value": "25"
#                         }
#                     },
#                     "sub_route_map": {
#                         "name": "mapmerge"
#                     }
#                 }
#             ],
#             "route_map": "mapmerge2"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "permit",
#                     "sequence": 10
#                 }
#             ],
#             "route_map": "test"
#         }
#     ],
#     "changed": true,
#     "commands": [
#         "no route-map mapmerge deny 25",
#         "no route-map mapmerge2 deny 45",
#         "no route-map test permit 10",
#         "route-map mapmerge deny 90",
#         "set metric igp-nexthop-cost",
#         "no set ip next-hop unchanged",
#         "no set extcommunity rt 22:11 delete"
#     ],
#
# Using deleted:
# Before State:

# veos#show running-config | section route-map
# route-map mapmerge permit 10
#    description merged_map
#    match router-id prefix-list 22
#    match ipv6 resolved-next-hop prefix-list listr
# !
# route-map mapmerge deny 25
#    description newmap
#    match interface Ethernet1
#    continue 45
# !
# route-map mapmerge deny 90
#    set metric igp-nexthop-cost
# !
# route-map mapmerge2 deny 45
#    match ipv6 resolved-next-hop prefix-list list1
#    sub-route-map mapmerge
#    set metric 25 +igp-metric
#    set as-path prepend last-as 2
# veos#

- name: Delete route-map
  arista.eos.eos_route_maps:
    config:
      - route_map: "mapmerge"
    state: deleted
  become: true
  tags:
    - deleted1

# After State:

# veos#show running-config | section route-map
# route-map mapmerge2 deny 45
#    match ipv6 resolved-next-hop prefix-list list1
#    sub-route-map mapmerge
#    set metric 25 +igp-metric
#    set as-path prepend last-as 2
# veos#
#
# Module Execution:
#
# "after": [
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "list1"
#                         }
#                     },
#                     "sequence": 45,
#                     "set": {
#                         "as_path": {
#                             "prepend": {
#                                 "last_as": 2
#                             }
#                         },
#                         "metric": {
#                             "add": "igp-metric",
#                             "value": "25"
#                         }
#                     },
#                     "sub_route_map": {
#                         "name": "mapmerge"
#                     }
#                 }
#             ],
#             "route_map": "mapmerge2"
#         }
#     ],
#     "before": [
#         {
#             "entries": [
#                 {
#                     "action": "permit",
#                     "description": "merged_map",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "listr"
#                         },
#                         "router_id": "22"
#                     },
#                     "sequence": 10
#                 },
#                 {
#                     "action": "deny",
#                     "continue": 45,
#                     "description": "newmap",
#                     "match": {
#                         "interface": "Ethernet1"
#                     },
#                     "sequence": 25
#                 },
#                 {
#                     "action": "deny",
#                     "sequence": 90,
#                     "set": {
#                         "metric": {
#                             "igp_param": "igp-nexthop-cost"
#                         }
#                     }
#                 }
#             ],
#             "route_map": "mapmerge"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "list1"
#                         }
#                     },
#                     "sequence": 45,
#                     "set": {
#                         "as_path": {
#                             "prepend": {
#                                 "last_as": 2
#                             }
#                         },
#                         "metric": {
#                             "add": "igp-metric",
#                             "value": "25"
#                         }
#                     },
#                     "sub_route_map": {
#                         "name": "mapmerge"
#                     }
#                 }
#             ],
#             "route_map": "mapmerge2"
#         }
#     ],
#     "changed": true,
#     "commands": [
#         "no route-map mapmerge"
#     ],

# Using deleted to delete all route-maps:

# Before State:

# veos#show running-config | section route-map
# route-map mapmerge permit 10
#    description merged_map
#    match router-id prefix-list 22
# !
# route-map mapmerge deny 25
#    description newmap
#    match interface Ethernet1
#    continue 45
# !
# route-map mapmerge2 deny 45
#    match ipv6 resolved-next-hop prefix-list list1
#    sub-route-map mapmerge
#    set metric 25 +igp-metric
#    set as-path prepend last-as 2
# veos#

- name: Delete all route-maps
  arista.eos.eos_route_maps:
    state: deleted

# After State:
# ------------

# veos#show running-config | section route-map
# veos#
#
# Module Execution:
#
# "after": {},
#     "before": [
#         {
#             "entries": [
#                 {
#                     "action": "permit",
#                     "description": "merged_map",
#                     "match": {
#                         "router_id": "22"
#                     },
#                     "sequence": 10
#                 },
#                 {
#                     "action": "deny",
#                     "continue": 45,
#                     "description": "newmap",
#                     "match": {
#                         "interface": "Ethernet1"
#                     },
#                     "sequence": 25
#                 }
#             ],
#             "route_map": "mapmerge"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "list1"
#                         }
#                     },
#                     "sequence": 45,
#                     "set": {
#                         "as_path": {
#                             "prepend": {
#                                 "last_as": 2
#                             }
#                         },
#                         "metric": {
#                             "add": "igp-metric",
#                             "value": "25"
#                         }
#                     },
#                     "sub_route_map": {
#                         "name": "mapmerge"
#                     }
#                 }
#             ],
#             "route_map": "mapmerge2"
#         }
#     ],
#     "changed": true,
#     "commands": [
#         "no route-map mapmerge",
#         "no route-map mapmerge2"
#     ],

# Using gathered:

# Device configs:

# veos#show running-config | section route-map
# route-map mapmerge permit 10
#    description merged_map
#    match router-id prefix-list 22
# !
# route-map mapmerge deny 25
#    description newmap
#    match interface Ethernet1
#    continue 45
# !
# route-map mapmerge2 deny 45
#    match ipv6 resolved-next-hop prefix-list list1
#    sub-route-map mapmerge
#    set metric 25 +igp-metric
#    set as-path prepend last-as 2
# veos#

- name: gather configs
  arista.eos.eos_route_maps:
    state: gathered

# Module Execution:
#   "gathered": [
#         {
#             "entries": [
#                 {
#                     "action": "permit",
#                     "description": "merged_map",
#                     "match": {
#                         "router_id": "22"
#                     },
#                     "sequence": 10
#                 },
#                 {
#                     "action": "deny",
#                     "continue_sequence": 45,
#                     "description": "newmap",
#                     "match": {
#                         "interface": "Ethernet1"
#                     },
#                     "sequence": 25
#                 }
#             ],
#             "route_map": "mapmerge"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "list1"
#                         }
#                     },
#                     "sequence": 45,
#                     "set": {
#                         "as_path": {
#                             "prepend": {
#                                 "last_as": 2
#                             }
#                         },
#                         "metric": {
#                             "add": "igp-metric",
#                             "value": "25"
#                         }
#                     },
#                     "sub_route_map": {
#                         "name": "mapmerge"
#                     }
#                 }
#             ],
#             "route_map": "mapmerge2"
#         }
#     ],

# Using rendered:

- name: Render provided configuration
  arista.eos.eos_route_maps:
    config:
      - route_map: "mapmerge"
        entries:
          - description: "merged_map"
            action: "permit"
            sequence: 10
            match:
              router_id: 22
            set:
              bgp: 20
          - description: "newmap"
            action: "deny"
            sequence: 25
            continue_sequence: 45
            match:
              interface: "Ethernet1"
      - route_map: "mapmerge2"
        entries:
          - sub_route_map:
              name: "mapmerge"
            action: "deny"
            sequence: 45
            set:
              metric:
                value: 25
                add: "igp-metric"
              as_path:
                prepend:
                  last_as: 2
            match:
              ipv6:
                resolved_next_hop: "list1"
    state: rendered

# Task output:
# ------------

# "rendered": [
#         "route-map mapmerge permit 10",
#         "match router-id prefix-list 22",
#         "set bgp bestpath as-path weight 20",
#         "description merged_map",
#         "route-map mapmerge deny 25",
#         "match interface Ethernet1",
#         "description newmap",
#         "continue 45",
#         "route-map mapmerge2 deny 45",
#         "match ipv6 resolved-next-hop prefix-list list1",
#         "set metric 25 +igp-metric",
#         "set as-path prepend last-as 2",
#         "sub-route-map mapmerge"
#     ]

# Using parsed:

# parsed.cfg
# route-map mapmerge permit 10
#    description merged_map
#    match router-id prefix-list 22
#    set bgp bestpath as-path weight 20
# !
# route-map mapmerge deny 25
#    description newmap
#    match interface Ethernet1
#    continue 45
# !
# route-map mapmerge2 deny 45
#    match ipv6 resolved-next-hop prefix-list list1
#    sub-route-map mapmerge
#    set metric 25 +igp-metric
#    set as-path prepend last-as 2

- name: parse configs
  arista.eos.eos_route_maps:
    running_config: "{{ lookup('file', './parsed.cfg') }}"
    state: parsed

# Module Execution:
# "parsed": [
#         {
#             "entries": [
#                 {
#                     "action": "permit",
#                     "description": "merged_map",
#                     "match": {
#                         "router_id": "22"
#                     },
#                     "sequence": 10,
#                     "set": {
#                         "bgp": 20
#                     }
#                 },
#                 {
#                     "action": "deny",
#                     "continue_sequence": 45,
#                     "description": "newmap",
#                     "match": {
#                         "interface": "Ethernet1"
#                     },
#                     "sequence": 25
#                 }
#             ],
#             "route_map": "mapmerge"
#         },
#         {
#             "entries": [
#                 {
#                     "action": "deny",
#                     "match": {
#                         "ipv6": {
#                             "resolved_next_hop": "list1"
#                         }
#                     },
#                     "sequence": 45,
#                     "set": {
#                         "as_path": {
#                             "prepend": {
#                                 "last_as": 2
#                             }
#                         },
#                         "metric": {
#                             "add": "igp-metric",
#                             "value": "25"
#                         }
#                     },
#                     "sub_route_map": {
#                         "name": "mapmerge"
#                     }
#                 }
#             ],
#             "route_map": "mapmerge2"
#         }
#     ]

Авторы

  • Gomathi Selvi Srinivasan (@GomathiselviS)

Ссылки на сборку

  • Система отслеживания ошибок
  • Репозиторий (источники)

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/arista/eos/eos_route_maps_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API