cisco.ios.ios_vrf_global 模块 – 配置全局 VRF 定义的资源模块。
注意
此模块是 cisco.ios 集合 (版本 9.0.3) 的一部分。
如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用: ansible-galaxy collection install cisco.ios。
要在 playbook 中使用它,请指定: cisco.ios.ios_vrf_global。
cisco.ios 8.0.0 中的新增功能
概要
- 此模块提供对 Cisco IOS 上 VRF 定义的声明式管理。 
参数
| 参数 | 注释 | 
|---|---|
| 包含 VRF 设备配置的字典,包括 VRF 定义列表。 | |
| VRF 定义列表。 | |
| VRF 的具体描述 | |
| VRF IPv4 配置 | |
| IPv4 多播配置 | |
| 启用多播专用拓扑 选项 
 | |
| VRF IPv6 配置 | |
| IPv6 多播配置 | |
| 启用多播专用拓扑 选项 
 | |
| VRF 的名称。 | |
| 指定路由区分符 (RD)。 | |
| 指定目标 VPN 扩展配置。 | |
| 导出和导入目标 VPN 配置。 | |
| 导出目标 VPN 配置。 | |
| 导入目标 VPN 配置。 | |
| 虚拟网络配置。 | |
| 用于标记与该 VNET 关联的数据包的标识符。 | |
| 根据 RFC 2685 中指定的配置 VRF 的 vpn-id。 | |
| 以 RFC 2685 格式配置 vpn-id。 | |
| 此选项仅与状态 *parsed* 一起使用。 此选项的值应为通过执行命令 **show running-config | section ^vrf** 从 IOS 设备接收到的输出。 状态 *parsed* 从  | |
| 配置应保留的状态 状态 *rendered*、*gathered* 和 *parsed* 不会对设备进行任何更改。 状态 *rendered* 将  状态 *gathered* 将从设备获取运行配置并将其转换为结构化数据,其格式符合资源模块 argspec,该值将返回结果中的 *gathered* 密钥。 状态 *parsed* 从  状态 *deleted* 只删除此模块管理的 VRF 属性,而不会完全否定 VRF。从而保留 VRF 上下文中与地址族相关的配置。 状态 *purged* 将删除目标设备上的所有 VRF 定义。使用此状态时请谨慎。 有关更多详细信息,请参阅示例。 选项 
 | 
备注
注意
- 在 CML 上针对 Cisco IOS-XE 版本 17.3 进行了测试。 
- 此模块与连接 - network_cli配合使用。请参阅 https://docs.ansible.org.cn/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:
            export: "192.0.2.0:100"
            import_config: "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:
#       export: "192.0.2.0:100"
#       import_config: "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:
            export: "198.51.100.112:500"
            import_config: "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:
#       export: "192.0.2.0:100"
#       import_config: "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:
#       export: "192.0.2.0:100"
#       import_config: "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:
#       export: "198.51.100.112:500"
#       import_config: "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:
            export: "198.51.0.2:400"
            import_config: "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:
#       export: "192.0.2.0:100"
#       import_config: "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:
#       export: "198.51.100.112:500"
#       import_config: "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:
#       export: "198.51.0.2:400"
#       import_config: "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:
#       export: "198.51.0.2:400"
#       import_config: "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:
#       export: "198.51.0.2:400"
#       import_config: "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:
            export: "192.0.2.0:100"
            import_config: "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:
#         export: "192.0.2.0:100"
#         import_config: "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:
#         export: "192.0.2.0:100"
#         import_config: "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
返回值
公共返回值已在此处记录 此处,以下是此模块独有的字段
| 键 | 描述 | 
|---|---|
| 模块执行后的结果配置。 返回:发生更改时 示例:  | |
| 模块执行之前的配置。 返回:当 state 为  示例:  | |
| 推送到远程设备的命令集。 返回:当 state 为  示例:  | |
| 从远程设备收集的关于网络资源的结构化数据事实。 返回:当state 为  示例:  | |
| 根据模块argspec,将running_config选项中提供的设备原生配置解析为结构化数据。 返回:当state 为  示例:  | |
| 以设备原生格式(离线)渲染任务中提供的配置。 返回:当state 为  示例:  | 
