Модуль cisco.ios.ios_vrf_global — модуль ресурсов для настройки глобальных определений VRF.
Примечание
Этот модуль входит в коллекцию cisco.ios (версия 11.4.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install cisco.ios.
Чтобы использовать модуль в плейбуке, укажите: cisco.ios.ios_vrf_global.
Новое в cisco.ios 8.0.0
Обзор
- Этот модуль обеспечивает декларативное управление определениями VRF на Cisco IOS.
Примечание
Этому модулю соответствует модуль действий.
Псевдонимы: vrf_global
Параметры
Параметр | Комментарии |
|---|---|
config словарь | Словарь с конфигурацией устройства для VRF, включая список определений VRF. |
|
vrfs список / элементы=словарь |
Список определений VRF. |
|
description строка |
Описание VRF |
|
ipv4 словарь |
Конфигурация IPv4 для VRF |
|
multicast словарь |
Конфигурация многоадресной рассылки IPv4 |
|
multitopology логическое значение |
Включить топологию, предназначенную для многоадресной рассылки Варианты:
|
|
ipv6 словарь |
Конфигурация IPv6 для VRF |
|
multicast словарь |
Конфигурация многоадресной рассылки IPv6 |
|
multitopology логическое значение |
Включить топологию, предназначенную для многоадресной рассылки Варианты:
|
|
name строка / обязательный |
Имя VRF. |
|
rd строка |
Указать различитель маршрутов (RD). |
|
route_target словарь |
Указать дополнительные параметры целевой VPN. |
|
both строка |
Этот параметр УСТАРЕЛ и заменён параметром both_options, который принимает список. |
|
both_options список / элементы=строка |
Конфигурация целевой VPN для экспорта и импорта. |
|
export строка |
Этот параметр УСТАРЕЛ и заменён параметром exports, который принимает список. |
|
exports список / элементы=строка |
Конфигурация экспорта целевой VPN. |
|
import_config строка |
Этот параметр УСТАРЕЛ и заменён параметром imports, который принимает список. |
|
imports список / элементы=строка |
Конфигурация импорта целевой VPN. |
|
vnet словарь |
Конфигурация виртуальной сети. |
|
tag целое число |
Идентификатор для маркировки пакетов, связанных с этой VNET. |
|
vpn словарь |
Настройка vpn-id для VRF в соответствии с RFC 2685. |
|
id строка |
Настройка vpn-id в формате RFC 2685. |
running_config строка | Этот параметр используется только при состоянии parsed. Значением этого параметра должен быть вывод, полученный с устройства IOS при выполнении команды show running-config | section ^vrf. Состояние parsed считывает конфигурацию из параметра |
state строка | Состояние, в котором должна остаться конфигурация Состояния rendered, gathered и parsed не вносят изменений на устройстве. Состояние rendered преобразует конфигурацию из параметра Состояние gathered получает текущую конфигурацию устройства и преобразует её в структурированные данные в формате, соответствующем спецификации аргументов модуля ресурсов; значение возвращается в ключе gathered результата. Состояние parsed считывает конфигурацию из параметра Состояние deleted удаляет только атрибуты VRF, которыми управляет этот модуль, но не удаляет VRF полностью. Таким образом, сохраняются конфигурации адресных семейств в контексте VRF. Состояние purged удаляет все определения VRF с целевого устройства. Используйте это состояние с осторожностью. Дополнительные сведения см. в примерах. Варианты:
|
Примечания
Примечание
- Проверено на Cisco IOS-XE версии 17.3 в CML.
- Этот модуль работает с подключением
network_cli. См. https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html - В примерах модуля используется плагин обратного вызова (stdout_callback = yaml) для формирования вывода задач в формате yaml.
Примеры
# Using merged
# Before state:
# -------------
#
# admin#show running-config | section ^vrf
- name: Merge provided configuration with device configuration
cisco.ios.ios_vrf_global:
config:
vrfs:
- name: VRF2
description: This is a test VRF for merged state
ipv4:
multicast:
multitopology: true
ipv6:
multicast:
multitopology: true
rd: "2:3"
route_target:
exports: "192.0.2.0:100"
imports: "192.0.2.3:200"
vpn:
id: "2:45"
vnet:
tag: 200
state: merged
# Task output
# -------------
#
# before: {}
#
# commands:
# - vrf definition VRF2
# - description This is a test VRF for merged state
# - ipv4 multicast multitopology
# - ipv6 multicast multitopology
# - rd 2:3
# - route-target export 192.0.2.0:100
# - route-target import 192.0.2.3:200
# - vnet tag 200
# - vpn id 2:45
#
# after:
# - name: VRF2
# description: This is a test VRF for merged state
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "2:3"
# route_target:
# exports: "192.0.2.0:100"
# imports: "192.0.2.3:200"
# vnet:
# tag: 200
# vpn:
# id: "2:45"
# After state:
# -------------
#
# admin#show running-config | section ^vrf
# vrf definition VRF2
# vnet tag 200
# description This is a test VRF for merged state
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 2:3
# vpn id 2:45
# route-target export 192.0.2.0:100
# route-target import 192.0.2.3:200
# Using replaced
# Before state:
# -------------
#
# admin#show running-config | section ^vrf
# vrf definition VRF2
# vnet tag 200
# description This is a test VRF for merged state
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 2:3
# vpn id 2:45
# route-target export 192.0.2.0:100
# route-target import 192.0.2.3:200
- name: Replace the provided configuration with the existing running configuration
cisco.ios.ios_vrf_global:
config:
vrfs:
- name: VRF7
description: VRF7 description
ipv4:
multicast:
multitopology: true
ipv6:
multicast:
multitopology: true
rd: "7:8"
route_target:
exports: "198.51.100.112:500"
imports: "192.0.2.4:400"
vpn:
id: "5:45"
vnet:
tag: 300
state: replaced
# Task Output:
# ------------
#
# before:
# - name: VRF2
# description: This is a test VRF for merged state
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "2:3"
# route_target:
# exports: "192.0.2.0:100"
# imports: "192.0.2.3:200"
# vnet:
# tag: 200
# vpn:
# id: "2:45
#
# commands:
# - vrf definition VRF7
# - description VRF7 description
# - ipv4 multicast multitopology
# - ipv6 multicast multitopology
# - rd 7:8
# - route-target export 198.51.100.112:500
# - route-target import 192.0.2.4:400
# - vnet tag 300
# - vpn id 5:45
#
# after:
# - name: VRF2
# description: This is a test VRF for merged state
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "2:3"
# route_target:
# exports: "192.0.2.0:100"
# imports: "192.0.2.3:200"
# vnet:
# tag: 200
# vpn:
# id: "2:45
# - name: VRF7
# description: VRF7 description
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "7:8"
# route_target:
# exports: "198.51.100.112:500"
# imports: "192.0.2.4:400"
# vnet:
# tag: 300
# vpn:
# id: "5:45"
#
# After state:
# -------------
#
# admin#show running-config | section ^vrf
# vrf definition VRF2
# vnet tag 200
# description This is a test VRF for merged state
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 2:3
# vpn id 2:45
# route-target export 192.0.2.0:100
# route-target import 192.0.2.3:200
# vrf definition VRF7
# vnet tag 300
# description VRF7 description
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 7:8
# route-target export 198.51.100.112:500
# route-target import 192.0.2.4:400
# vpn id 5:45
# Using Overridden
# Before state:
# -------------
#
# admin#show running-config | section ^vrf
# vrf definition VRF2
# vnet tag 200
# description This is a test VRF for merged state
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 2:3
# vpn id 2:45
# route-target export 192.0.2.0:100
# route-target import 192.0.2.3:200
# vrf definition VRF7
# vnet tag 300
# description VRF7 description
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 7:8
# route-target export 198.51.100.112:500
# route-target import 192.0.2.4:400
# vpn id 5:45
- name: Override the provided configuration with the existing running configuration
cisco.ios.ios_vrf_global:
config:
vrfs:
- name: VRF6
description: VRF6 description
ipv4:
multicast:
multitopology: true
ipv6:
multicast:
multitopology: true
rd: "6:7"
route_target:
exports: "198.51.0.2:400"
imports: "198.51.0.5:200"
vpn:
id: "4:5"
vnet:
tag: 500
state: overridden
# Task Output:
# ------------
#
# before:
# - name: VRF2
# description: This is a test VRF for merged state
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "2:3"
# route_target:
# exports: "192.0.2.0:100"
# imports: "192.0.2.3:200"
# vnet:
# tag: 200
# vpn:
# id: "2:45
# - name: VRF7
# description: VRF7 description
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "7:8"
# route_target:
# exports: "198.51.100.112:500"
# imports: "192.0.2.4:400"
# vnet:
# tag: 300
# vpn:
# id: "5:45"
#
# commands:
# - vrf definition VRF2
# - no description This is a test VRF for merged state
# - no ipv4 multicast multitopology
# - no ipv6 multicast multitopology
# - no rd 2:3
# - no route-target export 192.0.2.0:100
# - no route-target import 192.0.2.3:200
# - no vnet tag 200
# - no vpn id 2:45
# - vrf definition VRF7
# - no description VRF7 description
# - no ipv4 multicast multitopology
# - no ipv6 multicast multitopology
# - no rd 7:8
# - no route-target export 198.51.100.112:500
# - no route-target import 192.0.2.4:400
# - no vnet tag 300
# - no vpn id 5:45
# - vrf definition VRF6
# - description VRF6 description
# - ipv4 multicast multitopology
# - ipv6 multicast multitopology
# - rd 6:7
# - route-target export 198.51.0.2:400
# - route-target import 198.51.0.5:200
# - vnet tag 500
# - vpn id 4:5
#
# after:
# - name: VRF2
# - name: VRF6
# description: VRF6 description
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "6:7"
# route_target:
# exports: "198.51.0.2:400"
# imports: "198.51.0.5:200"
# vnet:
# tag: 500
# vpn:
# id: "4:5
# - name: VRF7
# After state:
# ------------
#
# admin#show running-config | section ^vrf
# vrf definition VRF2
# vrf definition VRF6
# vnet tag 500
# description VRF6 description
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 6:7
# vpn id 4:5
# route-target export 198.51.0.2:400
# route-target import 198.51.0.5:200
# vrf definition VRF7
# Using Deleted
# Before state:
# -------------
#
# admin#show running-config | section ^vrf
# vrf definition VRF2
# vrf definition VRF6
# vnet tag 500
# description VRF6 description
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 6:7
# vpn id 4:5
# route-target export 198.51.0.2:400
# route-target import 198.51.0.5:200
# vrf definition VRF7
- name: Delete the provided configuration when config is given
cisco.ios.ios_vrf_global:
config:
vrfs:
- name: VRF2
- name: VRF6
- name: VRF7
state: deleted
# Task Output:
# ------------
#
# before:
# - name: VRF2
# - name: VRF6
# description: VRF6 description
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "6:7"
# route_target:
# exports: "198.51.0.2:400"
# imports: "198.51.0.5:200"
# vnet:
# tag: 500
# vpn:
# id: "4:5"
# - name: VRF7
#
# commands:
# - vrf definition VRF2
# - vrf definition VRF6
# - no description VRF6 description
# - no ipv4 multicast multitopology
# - no ipv6 multicast multitopology
# - no rd 6:7
# - no route-target export 198.51.0.2:400
# - no route-target import 198.51.0.5:200
# - no vnet tag 500
# - no vpn id 4:5
# - vrf definition VRF7
#
# after:
# - name: VRF2
# - name: VRF6
# - name: VRF7
# After state:
# -------------
# admin#show running-config | section ^vrf
# vrf definition VRF2
# vrf definition VRF6
# vrf definition VRF7
# Using Deleted with empty config
# Before state:
# -------------
#
# admin#show running-config | section ^vrf
# vrf definition VRF2
# vrf definition VRF6
# vnet tag 500
# description VRF6 description
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 6:7
# vpn id 4:5
# route-target export 198.51.0.2:400
# route-target import 198.51.0.5:200
# vrf definition VRF7
- name: Delete the provided configuration when config is empty
cisco.ios.ios_vrf_global:
config:
state: deleted
# Task Output:
# ------------
#
# before:
# - name: VRF2
# - name: VRF6
# description: VRF6 description
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "6:7"
# route_target:
# exports: "198.51.0.2:400"
# imports: "198.51.0.5:200"
# vnet:
# tag: 500
# vpn:
# id: "4:5"
# - name: VRF7
# commands:
# - vrf definition VRF2
# - vrf definition VRF6
# - no description VRF6 description
# - no ipv4 multicast multitopology
# - no ipv6 multicast multitopology
# - no rd 6:7
# - no route-target export 198.51.0.2:400
# - no route-target import 198.51.0.5:200
# - no vnet tag 500
# - no vpn id 4:5
# - vrf definition VRF7
#
# after:
# - name: VRF2
# - name: VRF6
# - name: VRF7
# After state:
# -------------
#
# admin#show running-config | section ^vrf
# vrf definition VRF2
# vrf definition VRF6
# vrf definition VRF7
# Using purged - would delete all the VRF definitions
# Before state:
# -------------
#
# admin#show running-config | section ^vrf
# vrf definition VRF2
# vrf definition VRF6
# vrf definition VRF7
- name: Purge all the configuration from the device
cisco.ios.ios_vrf_global:
state: purged
# Task Output:
# ------------
#
# before:
# - name: VRF2
# - name: VRF6
# - name: VRF7
# commands:
# - no vrf definition VRF2
# - no vrf definition VRF6
# - no vrf definition VRF7
# after: {}
# After state:
# -------------
#
# admin#show running-config | section ^vrf
# Using Rendered
- name: Render provided configuration with device configuration
cisco.ios.ios_vrf_global:
config:
vrfs:
- name: VRF2
description: This is a test VRF for merged state
ipv4:
multicast:
multitopology: true
ipv6:
multicast:
multitopology: true
rd: "2:3"
route_target:
exports: "192.0.2.0:100"
imports: "192.0.2.3:200"
vpn:
id: "2:45"
vnet:
tag: 200
state: rendered
# Task Output:
# ------------
#
# rendered:
# - vrf definition VRF2
# - description This is a test VRF for merged state
# - ipv4 multicast multitopology
# - ipv6 multicast multitopology
# - rd 2:3
# - route-target export 192.0.2.0:100
# - route-target import 192.0.2.3:200
# - vnet tag 200
# - vpn id 2:45
# Using Gathered
# Before state:
# -------------
#
# admin#show running-config | section ^vrf
# vrf definition VRF2
# vnet tag 200
# description This is a test VRF for merged state
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 2:3
# vpn id 2:45
# route-target export 192.0.2.0:100
# route-target import 192.0.2.3:200
- name: Gather existing running configuration
cisco.ios.ios_vrf_global:
config:
state: gathered
# Task Output:
# ------------
#
# gathered:
# vrfs:
# - name: VRF2
# description: This is a test VRF for merged state
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "2:3"
# route_target:
# exports: "192.0.2.0:100"
# imports: "192.0.2.3:200"
# vnet:
# tag: 200
# vpn:
# id: "2:45"
# Using parsed
# File: parsed.cfg
# ----------------
#
# vrf definition test
# vnet tag 34
# description This is test VRF
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 192.0.2.0:300
# vpn id 3:4
# route-target export 192.0.2.0:100
# route-target import 192.0.2.2:300
# vrf definition test2
# vnet tag 35
# description This is test VRF
# ipv4 multicast multitopology
# ipv6 multicast multitopology
# rd 192.0.2.3:300
- name: Parse the provided configuration
cisco.ios.ios_vrf_global:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Task Output:
# ------------
#
# parsed:
# vrfs:
# - name: test
# description: This is test VRF
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "192.0.2.0:300"
# route_target:
# exports: "192.0.2.0:100"
# imports: "192.0.2.2:300"
# vnet:
# tag: 34
# vpn:
# id: "3:4"
# - name: test2
# description: This is test VRF
# ipv4:
# multicast:
# multitopology: true
# ipv6:
# multicast:
# multitopology: true
# rd: "192.0.2.3:300"
# vnet:
# tag: 35
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
after словарь | Конфигурация после выполнения модуля. Возвращается: при наличии изменений Пример: |
before словарь | Конфигурация до выполнения модуля. Возвращается: если state имеет значение Пример: |
commands список / элементы=строка | Набор команд, отправленных на удалённое устройство. Возвращается: если state имеет значение Пример: |
gathered список / элементы=строка | Сведения о сетевом ресурсе, полученные с удалённого устройства в виде структурированных данных. Возвращается: если state имеет значение Пример: |
parsed список / элементы=строка | Собственная конфигурация устройства, указанная в параметре running_config и разобранная в структурированные данные согласно спецификации аргументов модуля. Возвращается: если state имеет значение Пример: |
rendered список / элементы=строка | Конфигурация, указанная в задаче и преобразованная в собственный формат устройства (автономно). Возвращается: если state имеет значение Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/cisco/ios/ios_vrf_global_module.html