cisco.iosxr.iosxr_bgp_templates 模块 – 管理 BGP 模板资源模块。

注意

此模块是 cisco.iosxr 集合(版本 10.2.2)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install cisco.iosxr

要在 playbook 中使用它,请指定:cisco.iosxr.iosxr_bgp_templates

cisco.iosxr 6.0.0 中新增

概要

  • 此模块配置和管理 Cisco IOS-XR 平台上 BGP 模板的属性。

参数

参数

注释

config

字典

BGP 模板配置。

as_number

字符串

自治系统号。

neighbor

列表 / elements=字典

BGP 邻居组配置的列表。

address_family

列表 / elements=字典

启用地址族并进入其配置模式

advertise

字典

每个邻居的通告选项

local_labeled_route

字典

通告带有本地标签的路由

disable

布尔值

禁用本地标签路由

选择

  • false

  • true

set

布尔值

设置本地标签路由

选择

  • false

  • true

permanent_network

布尔值

允许此邻居的永久网络

选择

  • false

  • true

afi

字符串

地址族。

选择

  • "ipv4"

  • "ipv6"

  • "vpnv4"

  • "vpnv6"

  • "link-state"

  • "l2vpn"

aigp

字典

AIGP 属性

disable

布尔值

忽略 AIGP 属性。

选择

  • false

  • true

send_cost_community_disable

布尔值

发送 AIGP 属性。

选择

  • false

  • true

send_med

字典

发送 MED 选项。

disable

布尔值

禁用在 MED 中发送 AIGP 值。

选择

  • false

  • true

set

布尔值

设置在 MED 中发送 AIGP 值。

选择

  • false

  • true

set

布尔值

设置 AIGP 属性。

选择

  • false

  • true

allowas_in

字典

允许 AS 路径中包含我的 AS。

set

布尔值

设置 allowas_in

选择

  • false

  • true

value

整数

AS 号 1-10 的出现次数。

as_override

字典

发送更新时覆盖匹配的 AS 号

inheritance_disable

布尔值

防止 as-override 从父级继承。

选择

  • false

  • true

set

布尔值

设置 as_override

选择

  • false

  • true

bestpath_origin_as_allow_invalid

布尔值

更改默认路由选择条件。允许 BGP 源 AS 设置。

选择

  • false

  • true

capability_orf_prefix

字符串

将地址前缀 ORF 能力通告给此邻居。

选择

  • "both"

  • "send"

  • "none"

  • "receive"

default_originate

字典

向此邻居始发默认路由。

inheritance_disable

布尔值

防止 default-originate 从父级继承。

选择

  • false

  • true

route_policy

字符串

指定始发默认路由条件的路由策略

set

布尔值

设置默认路由。

选择

  • false

  • true

encapsulation_type_srv6

布尔值

指定封装类型

选择

  • false

  • true

long_lived_graceful_restart

字典

启用长期平稳重启支持。

capable

布尔值

将邻居视为 LLGR 功能。

选择

  • false

  • true

stale_time

字典

在清除长期失效的路由之前等待的最长时间。

accept

整数

最大接受时间

send

整数

最大发送时间

maximum_prefix

字典

从此对等方接受的最大前缀数。

discard_extra_paths

布尔值

超过限制时丢弃额外的路径。

选择

  • false

  • true

max_limit

整数

最大前缀限制数。<1-4294967295。

restart

整数

重启时间间隔。

threshold_value

整数

生成警告消息的阈值 (%) <1-100>。

warning_only

布尔值

仅在超过限制时给出警告消息。

选择

  • false

  • true

multipath

布尔值

来自此邻居的路径符合多路径的条件。

选择

  • false

  • true

next_hop_self

字典

禁用此邻居的下一跳计算。

inheritance_disable

布尔值

防止 next_hop_self 从父级继承。

选择

  • false

  • true

set

布尔值

设置下一跳 self。

选择

  • false

  • true

next_hop_unchanged

字典

禁用此邻居的下一跳计算。

inheritance_disable

布尔值

防止 next_hop_unchanged 从父级继承。

选择

  • false

  • true

multipath

布尔值

在通告多路径之前,不要覆盖下一跳。

选择

  • false

  • true

set

布尔值

设置下一跳 unchanged。

选择

  • false

  • true

optimal_route_reflection_group_name

字符串

配置最佳路由反射组。

orf_route_policy

字符串

指定 ORF 和入站过滤条件。’

origin_as

字典

BGP 源 AS 设置。

validation

字典

BGP 源 AS 验证设置。

disable

布尔值

禁用 RPKI 源 AS 验证。

选择

  • false

  • true

remove_private_AS

字典

从出站更新中删除私有 AS 号。

entire_aspath

布尔值

仅当路径中的所有 AS 均为私有时才删除。

选择

  • false

  • true

inbound

布尔值

从入站更新中删除私有 AS 号。

选择

  • false

  • true

inheritance_disable

布尔值

防止 remove-private-AS 从父级继承。

选择

  • false

  • true

set

布尔值

设置删除私有 AS。

选择

  • false

  • true

route_policy

字典

将路由策略应用于邻居。

inbound

字符串

将路由策略应用于入站路由。

outbound

字符串

将路由策略应用于出站路由。

route_reflector_client

字典

将邻居配置为路由反射器客户端。

inheritance_disable

布尔值

防止 route-reflector-client 从父级继承。

选择

  • false

  • true

set

布尔值

设置路由反射器客户端。

选择

  • false

  • true

safi

字符串

地址族修饰符

选择

  • "flowspec"

  • "mdt"

  • "multicast"

  • "mvpn"

  • "rt-filter"

  • "tunnel"

  • "unicast"

  • "labeled-unicast"

  • "sr-policy"

  • "link-state"

  • "evpn"

  • "mspw"

  • "vpls-vpws"

send_community_ebgp

字典

将团体属性发送给此外部邻居。

inheritance_disable

布尔值

防止 send_community_ebgp 从父级继承。

选择

  • false

  • true

set

布尔值

设置 send_community_ebgp。

选择

  • false

  • true

send_community_gshut_ebgp

字典

允许将 g-shut 团体发送到此外部邻居。

inheritance_disable

布尔值

防止 send_community_gshut_ebgp 从父级继承。

选择

  • false

  • true

set

布尔值

设置 send_community_gshut_ebgp。

选择

  • false

  • true

send_extended_community_ebgp

字典

将扩展团体属性发送到此外部邻居。

inheritance_disable

布尔值

防止 send_extended_community_ebgp 从父级继承。

选择

  • false

  • true

set

布尔值

设置 send_extended_community_ebgp。

选择

  • false

  • true

send_multicast_attributes

字典

将多播属性发送给此邻居。

disable

布尔值

禁用发送多播属性。

选择

  • false

  • true

set

布尔值

设置 send_multicast_attributes。

选择

  • false

  • true

signalling

字典

要禁用的信令协议,BGP 或 LDP

bgp_disable

布尔值

选择要禁用的 BGP

选择

  • false

  • true

ldp_disable

布尔值

选择要禁用的 LDP

选择

  • false

  • true

soft_reconfiguration

字典

每个邻居的软重配置。

inbound

字典

入站软重配置

always

布尔值

允许此邻居的入站软重配置。始终使用软重配置,即使支持路由刷新也是如此。

选择

  • false

  • true

inheritance_disable

布尔值

防止 soft_reconfiguration 从父级继承。

选择

  • false

  • true

set

布尔值

设置入站

选择

  • false

  • true

update

字典

update

out_originator_loopcheck_disable

布尔值

禁用始发者循环检查

选择

  • false

  • true

out_originator_loopcheck_set

布尔值

设置始发者循环检查

选择

  • false

  • true

use

字符串

从此 af-group 继承此地址族的配置。

weight

整数

设置来自此邻居的路由的默认权重。

advertisement_interval

整数

发送 BGP 路由更新之间的最小间隔。示例 - <0-600>。

bfd

字典

配置 BFD 参数。

fast_detect

字典

启用快速检测

disable

布尔值

防止 bfd 设置从父级继承。

选择

  • false

  • true

set

布尔值

设置快速检测

选择

  • false

  • true

strict_mode

布尔值

保持邻居会话直到 BFD 会话启动

选择

  • false

  • true

minimum_interval

整数

为邻居指定 BFD 会话的最小间隔值。

multiplier

整数

为邻居指定 BFD 会话的乘数值。

bmp_activate

字典

为此邻居启用 BMP 日志记录。

server

整数

启用与特定服务器的 BMP 连接。示例 - <1-8>。

capability

字典

向对等体通告能力。

additional_paths

字典

BGP 附加路径命令。

receive

字典

附加路径接收能力

disable

布尔值

设置接收能力

选择

  • false

  • true

set

布尔值

设置接收能力

选择

  • false

  • true

send

字典

附加路径发送能力

disable

布尔值

设置发送能力

选择

  • false

  • true

set

布尔值

设置发送能力

选择

  • false

  • true

suppress

字典

禁止向对等体通告能力。

all

字典

所有能力

inheritance_disable

布尔值

不要从父组继承此配置。

选择

  • false

  • true

set

布尔值

设置全部。

选择

  • false

  • true

four_byte_AS

字典

4 字节 AS 能力

set

布尔值

设置 4_byte_as。

选择

  • false

  • true

cluster_id

字符串

此路由器作为路由反射器的集群 ID。

description

字符串

邻居特定描述。

字典

传播 DMZ 链路带宽。

布尔值

不要从父组继承此配置。

选择

  • false

  • true

布尔值

设置 dmz-link-bandwidth。

选择

  • false

  • true

dscp

字符串

设置 IP DSCP(差分服务代码点)。请参考供应商文档以获取有效条目。

ebgp_multihop

字典

允许 EBGP 邻居不在直接连接的网络上。

mpls

布尔值

禁用 BGP MPLS 转发。

选择

  • false

  • true

value

整数

最大跃点计数。示例 - <1-255>。

ebgp_recv_extcommunity_dmz

字典

从 ebgp 邻居接收 extcommunity dmz 链路带宽。

inheritance_disable

布尔值

防止 ebgp-recv-community-dmz 从父级继承

选择

  • false

  • true

set

布尔值

设置 ebgp-recv-community-dmz。

选择

  • false

  • true

ebgp_send_extcommunity_dmz

字典

从 ebgp 邻居发送 extcommunity dmz 链路带宽。

cumulatie

布尔值

将所有多路径的累积 community dmz 链路带宽发送到 ebgp 邻居。

选择

  • false

  • true

inheritance_disable

布尔值

防止 ebgp-send-community-dmz 从父级继承

选择

  • false

  • true

set

布尔值

设置 ebgp-send-community-dmz。

选择

  • false

  • true

egress_engineering

字典

为此邻居启用出口对等工程。

inheritance_disable

布尔值

防止出口工程从父级继承

选择

  • false

  • true

set

布尔值

设置出口工程。

选择

  • false

  • true

enforce_first_as

字典

强制执行 EBGP 路由的第一个 AS

disable

布尔值

禁用强制执行第一个 AS

选择

  • false

  • true

graceful_maintenance

字典

优雅维护的属性。这将导致邻居不优先选择来自此路由器的路由,而是选择备用路由。这允许路由器优雅地投入或退出服务。

activate

字典

在激活此处或在路由器 bgp 配置下时,路由将使用优雅维护属性进行通告。

inheritance_disable

布尔值

防止从父级继承激活。

选择

  • false

  • true

set

布尔值

激活。

选择

  • false

  • true

as_prepends

字典

将本地 AS 号附加到路由的 AS 路径的次数。默认值=0

inheritance_disable

布尔值

防止从父级继承 AS 预置。

选择

  • false

  • true

value

整数

AS 预置的值范围。示例 - <0-6>。

local_preference

字典

向 ibgp 邻居通告路由的本地首选项。默认值=无触摸

inheritance_disable

布尔值

防止从父级继承本地首选项。

选择

  • false

  • true

value

整数

本地首选项的值范围。示例 - <0-4294967295>。

set

布尔值

设置优雅维护。

选择

  • false

  • true

graceful_restart

字典

为此邻居启用优雅重启支持。

restart_time

整数

以秒为单位向邻居通告的重启时间 <1-4095>。

stalepath_time

整数

等待支持 GR 的对等体重启的最长时间(以秒为单位)<1-4095>。

idle_watch_time

整数

等待删除 IDLE 状态的动态对等体的最长时间。

ignore_connected_check

字典

绕过单跳 eBGP 对等体的直接连接的下一跳检查

inheritance_disable

布尔值

防止从父级继承 ignore-connected-check

选择

  • false

  • true

set

布尔值

设置 ignore-connected-check。

选择

  • false

  • true

internal_vpn_client

布尔值

在 VPN 核心中的 ATTR_SET 中保留 iBGP CE 邻居路径。

选择

  • false

  • true

keychain

字典

设置基于密钥链的身份验证。

inheritance_disable

布尔值

防止从父级继承密钥链。

选择

  • false

  • true

name

字符串

密钥链的名称 - 最大 32 个字符。

local

字典

配置本地参数

address

字典

IPv4 地址

inheritance_disable

布尔值

防止从父级继承本地地址。

选择

  • false

  • true

ipv4_address

字符串

IPv4 地址 <A.B.C.D>。

local_address_subnet

字符串

路由更新的本地地址子网

local_as

字典

指定本地 AS 号。

inheritance_disable

布尔值

防止从父级继承本地 AS。

选择

  • false

  • true

no_prepend

字典

不要将本地 AS 预置到此邻居的通告中。

replace_as

字典

仅将本地 AS 预置到对此邻居的通告中。

dual_as

布尔值

双 AS 模式。

选择

  • false

  • true

set

布尔值

仅将本地 AS 预置到对此邻居的通告中。

选择

  • false

  • true

set

布尔值

不要将本地 AS 预置到此邻居的通告中。

选择

  • false

  • true

value

整数

2 字节、4 字节 AS 号

log

字典

记录每个邻居的更新消息。

log_message

字典

记录每个邻居的更新/通知消息。

in

字典

入站日志消息

disable

布尔值

禁用入站消息记录。

选择

  • false

  • true

inheritance_disable

布尔值

防止消息日志从父级继承。

选择

  • false

  • true

value

整数

消息日志缓冲区大小的范围 <1-100>。

out

字典

出站日志消息

disable

布尔值

禁用入站消息记录。

选择

  • false

  • true

inheritance_disable

布尔值

防止消息日志从父级继承。

选择

  • false

  • true

value

整数

消息日志缓冲区大小的范围 <1-100>。

maximum_peers

整数

最大动态邻居数 <1-4095>。

name

字符串

邻居组的名称。

password

字典

设置密码。

encrypted

字符串

指定将跟随加密密码。

inheritance_disable

布尔值

防止从父级继承密码。

选择

  • false

  • true

peer_set

整数

将此邻居分配给用于出口对等工程的对等集 <1-255>。

precedence

字符串

设置优先级

选择

  • "critical"

  • "flash"

  • "flash-override"

  • "immediate"

  • "internet"

  • "network"

  • "priority"

  • "routine"

receive_buffer_size

整数

设置套接字和 BGP 接收缓冲区大小。示例 <512-131072>。

remote_as

整数

邻居自治系统。

remote_as_list

字符串

远程 AS 列表配置

send_buffer_size

整数

设置套接字和 BGP 发送缓冲区大小。示例 <4096-131072>。

session_open_mode

字符串

使用此 TCP 打开模式建立 BGP 会话。

选择

  • "active-only"

  • "both"

  • "passive-only"

shutdown

字典

以管理方式关闭此邻居。

inheritance_disable

布尔值

防止从父级继承关闭

选择

  • false

  • true

set

布尔值

关闭。

选择

  • false

  • true

tcp

字典

TCP 会话配置命令。

mss

字典

最大分段大小。

inheritance_disable

布尔值

防止从父级继承 mss

选择

  • false

  • true

value

整数

TCP 初始最大分段大小。

timers

字典

每个邻居的 BGP 定时器。

holdtime

整数

保持时间 <3-65535> 或 0 禁用保持时间。

keepalive_time

整数

保持活动间隔 <0-65535>。

min_holdtime

整数

来自邻居的最小可接受保持时间 <3-65535>。

ttl_security

字典

启用 EBGP TTL 安全。

inheritance_disable

布尔值

防止从父级继承 ttl-security

选择

  • false

  • true

set

布尔值

设置 ttl-security

选择

  • false

  • true

update

字典

BGP 更新配置。

in

字典

入站更新消息处理。

filtering

字典

入站更新消息过滤

attribute_filter

字典

属性过滤器配置。

group

字符串

组的名称。

logging

字典

更新过滤 syslog 消息。

disable

布尔值

禁用更新过滤 syslog 消息。

选择

  • false

  • true

update_message

字典

已过滤的更新消息。

buffers

整数

用于存储已过滤更新消息的缓冲区数量。

update_source

字符串

路由更新的源。有关有效值,请参考供应商文档。

use

字典

使用邻居组和会话组模板。

neighbor_group

字符串

从邻居组继承配置。

session_group

字符串

从会话组继承与地址族无关的配置

running_config

字符串

此选项仅在状态为parsed时使用。

此选项的值应该是通过执行命令 show running-config router bgp 从 Iosxr 设备接收的输出。

状态parsedrunning_config 选项中读取配置,并按照资源模块的 argspec 将其转换为 Ansible 结构化数据,然后该值在结果内的 parsed 键中返回。

state

字符串

配置应保留的状态。

选择

  • "deleted"

  • "merged" ← (默认)

  • "overridden"

  • "replaced"

  • "gathered"

  • "rendered"

  • "parsed"

备注

注意

  • 此模块使用连接 network_cli

示例

# Using merged
# Before state:
# -------------
# RP/0/RP0/CPU0:10#show running-config router bgp
# Thu Mar 23 10:00:12.668 UTC
# % No such configuration item(s)
#
# RP/0/RP0/CPU0:10#

- name: Merge the provided configuration with the existing running configuration
  cisco.iosxr.iosxr_bgp_templates:
    config:
      as_number: 65536
      neighbor:
        - address_family:
            - advertise:
                local_labeled_route:
                  set: true
              afi: ipv4
              safi: unicast
          advertisement_interval: 10
          bfd:
            fast_detect:
              strict_mode: true
          internal_vpn_client: true
          name: neighbor-group1
          precedence: critical
        - cluster_id: '1'
          description: neighbor-group2
          dmz_link_bandwidth:
            set: true
          ebgp_multihop:
            value: 255
          egress_engineering:
            set: true
          graceful_maintenance:
            as_prepends:
              value: 0
            set: true
          ignore_connected_check:
            set: true
          internal_vpn_client: true
          local:
            address:
              inheritance_disable: true
          local_as:
            value: 6
          name: neighbor-group2
          precedence: flash
          receive_buffer_size: 512
          send_buffer_size: 4096
          session_open_mode: both
          tcp:
            mss:
              inheritance_disable: true
          ttl_security:
            set: true
          update_source: Loopback919
    state: merged

# Task Output
# -----------
# before: {}
# commands:
# - router bgp 65536
# - neighbor-group neighbor-group1
# - advertisement-interval 10
# - bfd fast-detect strict-mode
# - internal-vpn-client
# - precedence critical
# - address-family ipv4 unicast
# - advertise local-labeled-route
# - neighbor-group neighbor-group2
# - dmz-link-bandwidth
# - description neighbor-group2
# - cluster-id 1
# - ebgp-multihop 255
# - egress-engineering
# - internal-vpn-client
# - ignore-connected-check
# - local-as 6
# - local address inheritance-disable
# - precedence flash
# - receive-buffer-size 512
# - send-buffer-size 4096
# - session-open-mode both
# - tcp mss inheritance-disable
# - update-source Loopback919
# - ttl-security
# - graceful-maintenance
# - graceful-maintenance as-prepends 0
# after:
#   as_number: '65536'
#   neighbor:
#     - address_family:
#         - advertise:
#             local_labeled_route:
#               set: true
#           afi: ipv4
#           safi: unicast
#       advertisement_interval: 10
#       bfd:
#         fast_detect:
#           strict_mode: true
#       internal_vpn_client: true
#       name: neighbor-group1
#       precedence: critical
#     - cluster_id: '1'
#       description: neighbor-group2
#       dmz_link_bandwidth:
#         set: true
#       ebgp_multihop:
#         value: 255
#       egress_engineering:
#         set: true
#       graceful_maintenance:
#         as_prepends:
#           value: 0
#         set: true
#       ignore_connected_check:
#         set: true
#       internal_vpn_client: true
#       local:
#         address:
#           inheritance_disable: true
#       local_as:
#         value: 6
#       name: neighbor-group2
#       precedence: flash
#       receive_buffer_size: 512
#       send_buffer_size: 4096
#       session_open_mode: both
#       tcp:
#         mss:
#           inheritance_disable: true
#       ttl_security:
#         set: true
#       update_source: Loopback919

# After state:
# ------------
# RP/0/RP0/CPU0:10#show running-config router bgp
# Thu Mar 23 10:14:33.116 UTC
# router bgp 65536
#  neighbor-group neighbor-group1
#   bfd fast-detect strict-mode
#   precedence critical
#   advertisement-interval 10
#   internal-vpn-client
#   address-family ipv4 unicast
#    advertise local-labeled-route
#   !
#  !
#  neighbor-group neighbor-group2
#   ebgp-multihop 255
#   egress-engineering
#   precedence flash
#   graceful-maintenance
#    as-prepends 0
#   !
#   tcp mss inheritance-disable
#   local-as 6
#   cluster-id 1
#   dmz-link-bandwidth
#   description neighbor-group2
#   ttl-security
#   local address inheritance-disable
#   update-source Loopback919
#   ignore-connected-check
#   session-open-mode both
#   send-buffer-size 4096
#   receive-buffer-size 512
#   internal-vpn-client
#  !
# !


# Using replaced
# Before state:
# ------------
# RP/0/RP0/CPU0:10#show running-config router bgp
# Thu Mar 23 10:14:33.116 UTC
# router bgp 65536
#  neighbor-group neighbor-group1
#   bfd fast-detect strict-mode
#   precedence critical
#   advertisement-interval 10
#   internal-vpn-client
#   address-family ipv4 unicast
#    advertise local-labeled-route
#   !
#  !
#  neighbor-group neighbor-group2
#   ebgp-multihop 255
#   egress-engineering
#   precedence flash
#   graceful-maintenance
#    as-prepends 0
#   !
#   tcp mss inheritance-disable
#   local-as 6
#   cluster-id 1
#   dmz-link-bandwidth
#   description neighbor-group2
#   ttl-security
#   local address inheritance-disable
#   update-source Loopback919
#   ignore-connected-check
#   session-open-mode both
#   send-buffer-size 4096
#   receive-buffer-size 512
#   internal-vpn-client
#  !
# !

- name: Replaced given bgp_templates configuration
  cisco.iosxr.iosxr_bgp_templates:
    config:
      as_number: 65536
      neighbor:
        - address_family:
            - advertise:
                local_labeled_route:
                  set: true
              afi: ipv4
              safi: unicast
          advertisement_interval: 12
          name: neighbor-group1
          precedence: flash
        - cluster_id: '2'
          description: replace neighbor-group2
          ebgp_multihop:
            value: 254
          graceful_maintenance:
            as_prepends:
              value: 2
            set: true
          update_source: Loopback917
          name: neighbor-group2
    state: replaced

# Task Output
# -----------
# before:
#   as_number: '65536'
#   neighbor:
#     - address_family:
#         - advertise:
#             local_labeled_route:
#               set: true
#           afi: ipv4
#           safi: unicast
#       advertisement_interval: 10
#       bfd:
#         fast_detect:
#           strict_mode: true
#       internal_vpn_client: true
#       name: neighbor-group1
#       precedence: critical
#     - cluster_id: '1'
#       description: neighbor-group2
#       dmz_link_bandwidth:
#         set: true
#       ebgp_multihop:
#         value: 255
#       egress_engineering:
#         set: true
#       graceful_maintenance:
#         as_prepends:
#           value: 0
#         set: true
#       ignore_connected_check:
#         set: true
#       internal_vpn_client: true
#       local:
#         address:
#           inheritance_disable: true
#       local_as:
#         value: 6
#       name: neighbor-group2
#       precedence: flash
#       receive_buffer_size: 512
#       send_buffer_size: 4096
#       session_open_mode: both
#       tcp:
#         mss:
#           inheritance_disable: true
#       ttl_security:
#         set: true
#       update_source: Loopback919
# commands:
# - router bgp 65536
# - neighbor-group neighbor-group1
# - no bfd fast-detect strict-mode
# - no internal-vpn-client
# - advertisement-interval 12
# - precedence flash
# - neighbor-group neighbor-group2
# - no dmz-link-bandwidth
# - no egress-engineering
# - no internal-vpn-client
# - no ignore-connected-check
# - no local-as 6
# - no local address inheritance-disable
# - no precedence flash
# - no receive-buffer-size 512
# - no send-buffer-size 4096
# - no session-open-mode both
# - no tcp mss inheritance-disable
# - no ttl-security
# - description replace neighbor-group2
# - cluster-id 2
# - ebgp-multihop 254
# - update-source Loopback917
# - graceful-maintenance as-prepends 2
# after:
#   as_number: '65536'
#   neighbor:
#     - address_family:
#         - advertise:
#             local_labeled_route:
#               set: true
#           afi: ipv4
#           safi: unicast
#       advertisement_interval: 12
#       name: neighbor-group1
#       precedence: flash
#     - cluster_id: '2'
#       description: replace neighbor-group2
#       ebgp_multihop:
#         value: 254
#       graceful_maintenance:
#         as_prepends:
#           value: 2
#         set: true
#       name: neighbor-group2
#       update_source: Loopback917

# After state:
# ------------
# RP/0/RP0/CPU0:10#show running-config router bgp
# Thu Mar 23 10:23:34.104 UTC
# router bgp 65536
#  neighbor-group neighbor-group1
#   precedence flash
#   advertisement-interval 12
#   address-family ipv4 unicast
#    advertise local-labeled-route
#   !
#  !
#  neighbor-group neighbor-group2
#   ebgp-multihop 254
#   graceful-maintenance
#    as-prepends 2
#   !
#   cluster-id 2
#   description replace neighbor-group2
#   update-source Loopback917
#  !
# !


# Using deleted
# Before state:
# -------------
# RP/0/RP0/CPU0:10#show running-config router bgp
# Thu Mar 23 10:23:34.104 UTC
# router bgp 65536
#  neighbor-group neighbor-group1
#   precedence flash
#   advertisement-interval 12
#   address-family ipv4 unicast
#    advertise local-labeled-route
#   !
#  !
#  neighbor-group neighbor-group2
#   ebgp-multihop 254
#   graceful-maintenance
#    as-prepends 2
#   !
#   cluster-id 2
#   description replace neighbor-group2
#   update-source Loopback917
#  !
# !

- name: Delete given bgp_nbr_address_family configuration
  cisco.iosxr.iosxr_bgp_templates: &deleted
    config:
    state: deleted

# Task Output
# -----------
# before:
#   as_number: '65536'
#   neighbor:
#     - address_family:
#         - advertise:
#             local_labeled_route:
#               set: true
#           afi: ipv4
#           safi: unicast
#       advertisement_interval: 12
#       name: neighbor-group1
#       precedence: flash
#     - cluster_id: '2'
#       description: replace neighbor-group2
#       ebgp_multihop:
#         value: 254
#       graceful_maintenance:
#         as_prepends:
#           value: 2
#         set: true
#       name: neighbor-group2
#       update_source: Loopback917
# commands:
# - router bgp 65536
# - no neighbor-group neighbor-group1
# - no neighbor-group neighbor-group2
# after: {}

# After state:
# -------------
# RP/0/RP0/CPU0:10#show running-config router bgp
# Thu Mar 23 10:00:12.668 UTC
# % No such configuration item(s)
#
# RP/0/RP0/CPU0:10#

# Using gathered
# Before state:
# -------------
# RP/0/RP0/CPU0:10#show running-config router bgp
# Thu Mar 23 10:30:38.785 UTC
# router bgp 65536
#  neighbor-group neighbor-group1
#   bfd fast-detect strict-mode
#   precedence critical
#   advertisement-interval 10
#   internal-vpn-client
#   address-family ipv4 unicast
#    advertise local-labeled-route
#   !
#  !
#  neighbor-group neighbor-group2
#   ebgp-multihop 255
#   egress-engineering
#   precedence flash
#   graceful-maintenance
#    as-prepends 0
#   !
#   tcp mss inheritance-disable
#   local-as 6
#   cluster-id 1
#   dmz-link-bandwidth
#   description neighbor-group2
#   ttl-security
#   local address inheritance-disable
#   update-source Loopback919
#   ignore-connected-check
#   session-open-mode both
#   send-buffer-size 4096
#   receive-buffer-size 512
#   internal-vpn-client
#  !
# !

- name: Gather given bgp_templates configuration
  cisco.iosxr.iosxr_bgp_templates: &id001
    config:
    state: gathered

# Task output
# -----------
# gathered:
#   as_number: '65536'
#   neighbor:
#     - address_family:
#         - advertise:
#             local_labeled_route:
#               set: true
#           afi: ipv4
#           safi: unicast
#       advertisement_interval: 10
#       bfd:
#         fast_detect:
#           strict_mode: true
#       internal_vpn_client: true
#       name: neighbor-group1
#       precedence: critical
#     - cluster_id: '1'
#       description: neighbor-group2
#       dmz_link_bandwidth:
#         set: true
#       ebgp_multihop:
#         value: 255
#       egress_engineering:
#         set: true
#       graceful_maintenance:
#         as_prepends:
#           value: 0
#         set: true
#       ignore_connected_check:
#         set: true
#       internal_vpn_client: true
#       local:
#         address:
#           inheritance_disable: true
#       local_as:
#         value: 6
#       name: neighbor-group2
#       precedence: flash
#       receive_buffer_size: 512
#       send_buffer_size: 4096
#       session_open_mode: both
#       tcp:
#         mss:
#           inheritance_disable: true
#       ttl_security:
#         set: true
#       update_source: Loopback919


# Using overridden

# Before state:
# -------------
# RP/0/RP0/CPU0:10#show running-config router bgp
# Thu Mar 23 10:30:38.785 UTC
# router bgp 65536
#  neighbor-group neighbor-group1
#   bfd fast-detect strict-mode
#   precedence critical
#   advertisement-interval 10
#   internal-vpn-client
#   address-family ipv4 unicast
#    advertise local-labeled-route
#   !
#  !
#  neighbor-group neighbor-group2
#   ebgp-multihop 255
#   egress-engineering
#   precedence flash
#   graceful-maintenance
#    as-prepends 0
#   !
#   tcp mss inheritance-disable
#   local-as 6
#   cluster-id 1
#   dmz-link-bandwidth
#   description neighbor-group2
#   ttl-security
#   local address inheritance-disable
#   update-source Loopback919
#   ignore-connected-check
#   session-open-mode both
#   send-buffer-size 4096
#   receive-buffer-size 512
#   internal-vpn-client
#  !
# !
- name: override given bgp_templates configuration
  cisco.iosxr.iosxr_bgp_templates:
    config:
      as_number: 65536
      neighbor:
        - address_family:
            - advertise:
                local_labeled_route:
                  disable: true
              afi: ipv4
              safi: unicast
          advertisement_interval: 12
          bfd:
            fast_detect:
              strict_mode: true
          name: neighbor-group1
          precedence: flash
    state: overridden

# Task Output
# -----------
# before:
#   as_number: '65536'
#   neighbor:
#     - address_family:
#         - advertise:
#             local_labeled_route:
#               set: true
#           afi: ipv4
#           safi: unicast
#       advertisement_interval: 10
#       bfd:
#         fast_detect:
#           strict_mode: true
#       internal_vpn_client: true
#       name: neighbor-group1
#       precedence: critical
#     - cluster_id: '1'
#       description: neighbor-group2
#       dmz_link_bandwidth:
#         set: true
#       ebgp_multihop:
#         value: 255
#       egress_engineering:
#         set: true
#       graceful_maintenance:
#         as_prepends:
#           value: 0
#         set: true
#       ignore_connected_check:
#         set: true
#       internal_vpn_client: true
#       local:
#         address:
#           inheritance_disable: true
#       local_as:
#         value: 6
#       name: neighbor-group2
#       precedence: flash
#       receive_buffer_size: 512
#       send_buffer_size: 4096
#       session_open_mode: both
#       tcp:
#         mss:
#           inheritance_disable: true
#       ttl_security:
#         set: true
#       update_source: Loopback919
# commands:
# - router bgp 65536
# - no neighbor-group neighbor-group2
# - neighbor-group neighbor-group1
# - no internal-vpn-client
# - advertisement-interval 12
# - precedence flash
# - address-family ipv4 unicast
# - no advertise local-labeled-route
# - advertise local-labeled-route disable
# after:
#   as_number: '65536'
#   neighbor:
#     - address_family:
#         - advertise:
#             local_labeled_route:
#               disable: true
#           afi: ipv4
#           safi: unicast
#       advertisement_interval: 12
#       bfd:
#         fast_detect:
#           strict_mode: true
#       name: neighbor-group1
#       precedence: flash


# Using rendered
- name: >-
    Render platform specific configuration lines with state rendered (without
    connecting to the device)
  cisco.iosxr.iosxr_bgp_templates:
    config:
      as_number: 65536
      neighbor:
        - address_family:
            - advertise:
                local_labeled_route:
                  set: true
              afi: ipv4
              safi: unicast
          advertisement_interval: 10
          bfd:
            fast_detect:
              strict_mode: true
          internal_vpn_client: true
          name: neighbor-group1
          precedence: critical
        - cluster_id: '1'
          description: neighbor-group2
          dmz_link_bandwidth:
            set: true
          ebgp_multihop:
            value: 255
          egress_engineering:
            set: true
          graceful_maintenance:
            as_prepends:
              value: 0
            set: true
          ignore_connected_check:
            set: true
          internal_vpn_client: true
          local:
            address:
              inheritance_disable: true
          local_as:
            value: 6
          name: neighbor-group2
          precedence: flash
          receive_buffer_size: 512
          send_buffer_size: 4096
          session_open_mode: both
          tcp:
            mss:
              inheritance_disable: true
          ttl_security:
            set: true
          update_source: Loopback919
    state: rendered

# Task Output
# -----------
# rendered:
# - router bgp 65536
# - neighbor-group neighbor-group1
# - advertisement-interval 10
# - bfd fast-detect strict-mode
# - internal-vpn-client
# - precedence critical
# - address-family ipv4 unicast
# - advertise local-labeled-route
# - neighbor-group neighbor-group2
# - dmz-link-bandwidth
# - description neighbor-group2
# - cluster-id 1
# - ebgp-multihop 255
# - egress-engineering
# - internal-vpn-client
# - ignore-connected-check
# - local-as 6
# - local address inheritance-disable
# - precedence flash
# - receive-buffer-size 512
# - send-buffer-size 4096
# - session-open-mode both
# - tcp mss inheritance-disable
# - update-source Loopback919
# - ttl-security
# - graceful-maintenance
# - graceful-maintenance as-prepends 0


# Using parsed
- name: Parse externally provided BGP configuration
  register: result
  cisco.iosxr.iosxr_bgp_templates:
    running_config: "{{ lookup('file', 'parsed.cfg') }}"
    state: parsed

# content of pared.cfg
# router bgp 65536
#  neighbor-group neighbor-group1
#   bfd fast-detect strict-mode
#   precedence critical
#   advertisement-interval 10
#   internal-vpn-client
#   address-family ipv4 unicast
#    advertise local-labeled-route
#   !
#  !
#  neighbor-group neighbor-group2
#   ebgp-multihop 255
#   egress-engineering
#   precedence flash
#   graceful-maintenance
#    as-prepends 0
#   !
#   tcp mss inheritance-disable
#   local-as 6
#   cluster-id 1
#   dmz-link-bandwidth
#   description neighbor-group2
#   ttl-security
#   local address inheritance-disable
#   update-source Loopback919
#   idle-watch-time 30
#   ignore-connected-check
#   session-open-mode both
#   send-buffer-size 4096
#   receive-buffer-size 512
#   internal-vpn-client
#  !
# !
# Task output
# -----------
# parsed:
#   as_number: '65536'
#   neighbor:
#     - address_family:
#         - advertise:
#             local_labeled_route:
#               set: true
#           afi: ipv4
#           safi: unicast
#       advertisement_interval: 10
#       bfd:
#         fast_detect:
#           strict_mode: true
#       internal_vpn_client: true
#       name: neighbor-group1
#       precedence: critical
#     - cluster_id: '1'
#       description: neighbor-group2
#       dmz_link_bandwidth:
#         set: true
#       ebgp_multihop:
#         value: 255
#       egress_engineering:
#         set: true
#       graceful_maintenance:
#         as_prepends:
#           value: 0
#         set: true
#       ignore_connected_check:
#         set: true
#       internal_vpn_client: true
#       local:
#         address:
#           inheritance_disable: true
#       local_as:
#         value: 6
#       name: neighbor-group2
#       precedence: flash
#       receive_buffer_size: 512
#       send_buffer_size: 4096
#       session_open_mode: both
#       tcp:
#         mss:
#           inheritance_disable: true
#       ttl_security:
#         set: true
#       update_source: Loopback919

返回值

常见返回值记录在此处 此处,以下是此模块独有的字段

描述

after

字典

模块执行后的结果配置。

Returned: when changed

示例: "此输出将始终与模块 argspec 的格式相同。\n"

before

字典

模块执行之前的配置。

Returned: when state is merged, replaced, overridden, deleted or purged

示例: "此输出将始终与模块 argspec 的格式相同。\n"

commands

list / elements=string

推送到远程设备的命令集。

Returned: when state is merged, replaced, overridden, deleted or purged

示例: ["router bgp 65536", "neighbor-group neighbor-group1", "advertisement-interval 10", "bfd fast-detect strict-mode", "internal-vpn-client"]

gathered

list / elements=string

从远程设备收集的有关网络资源的事实,采用结构化数据形式。

Returned: when state is gathered

示例: ["此输出将始终与模块 argspec 的格式相同。\n"]

parsed

list / elements=string

running_config 选项中提供的设备本机配置根据模块 argspec 解析为结构化数据。

Returned: when state is parsed

示例: ["此输出将始终与模块 argspec 的格式相同。\n"]

rendered

list / elements=string

任务中提供的配置以设备本机格式呈现(离线)。

返回:staterendered

示例: ["router bgp 65536", "neighbor-group neighbor-group1", "advertisement-interval 10", "bfd fast-detect strict-mode", "internal-vpn-client"]

作者

  • Ashwini Mhatre (@amhatre)