使用 NETCONF 或 Junos XML 协议替换配置数据中的模式
从 Junos OS 15.1R1 开始,在运行 Junos OS replace-pattern <load-configuration> 设备的 NETCONF 或 Junos XML 协议会话中,您可以在执行操作时包含 属性来替换配置中的变量和标识符。属性 replace-pattern 将给定模式替换为全局或配置中指示的层次结构或对象级别中的另一个模式。例如,当 PIC 移动到路由器中的另一个插槽时,您可以使用此功能查找并替换接口名称的所有出现情况。属性的功能与配置 replace pattern 模式命令的功能Junos OS CLI。
更换模式操作只能与格式化为 Junos XML 标记元素的配置数据一起使用。
要替换模式<rpc><load-configuration>,客户端应用程序会发出 和 标记元素,包括Junos XML 标记元素,在 使用 Junos XML 协议创建、修改或删除配置元素中所述。在要替换模式的层级或对象级别,请包含以下属性:
-
replace-pattern—要更换的模式。 -
with—更换模式。 -
upto—(可选)要更换的事件数。如果您省略了此属性或将其设置为零,设备将替换指定范围内模式的所有实例。
在配置中放置属性确定了更换的范围,如以下各节中所述。
在配置内全局替换模式
要在整个候选配置或开放配置数据库中全局替换模式,replace-patternwith请将 和 属性包括在开放标记<configuration>中。
<rpc>
<load-configuration>
<configuration replace-pattern="pattern1" with="pattern2" [upto="n"]>
</configuration>
</load-configuration>
</rpc>
例如,以下 RPC 将 172.17.1.5 的所有实例替换为 172.16.1.1:
<rpc>
<load-configuration>
<configuration replace-pattern="172.17.1.5" with="172.16.1.1">
</configuration>
</load-configuration>
</rpc>
执行 RPC 后,可以将更新的候选配置与活动配置进行比较,以验证模式更换。您必须提交配置,更改生效。
<rpc> <get-configuration compare="rollback" rollback="0" format="text"> </get-configuration> </rpc> <rpc-reply xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos"> <configuration-information> <configuration-output> [edit groups global system ntp] - boot-server 172.17.1.5; + boot-server 172.16.1.1; [edit groups global system ntp] + server 172.16.1.1; - server 172.17.1.5; </configuration-output> </configuration-information> </rpc-reply>
替换没有标识符的层次结构级别或容器对象中的模式
要替换特定层级下的模式,包括其所有子级(或包含子级但无标识符的容器对象),客户端应用程序在表示层次结构级别或容器对象的空标记中包含 和 属性replace-patternwith。
<rpc>
<load-configuration>
<configuration>
<!-- opening tag for each parent element -->
<level-or-object replace-pattern="pattern1" with="pattern2" [upto="n"]/>
<!-- closing tag for each parent element -->
</configuration>
</load-configuration>
</rpc>
以下 RPC 在层次结构级别将 fe-0/0/1 实例替换为 ge-1/0/1 [edit interfaces] :
<rpc>
<load-configuration>
<configuration>
<interfaces replace-pattern="fe-0/0/1" with="ge-1/0/1"/>
</configuration>
</load-configuration>
</rpc>
执行 RPC 后,可以将更新的候选配置与活动配置进行比较,以验证模式更换。例如:
<rpc>
<get-configuration compare="rollback" rollback="0" format="text">
</get-configuration>
</rpc>
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos">
<configuration-information>
<configuration-output>
[edit interfaces]
- fe-0/0/1 {
- unit 0 {
- family inet {
- address 10.0.1.1/27;
- }
- }
- }
+ ge-1/0/1 {
+ unit 0 {
+ family inet {
+ address 10.0.1.1/27;
+ }
+ }
+ }
</configuration-output>
</configuration-information>
</rpc-reply>
更换具有标识符的配置对象的模式
要替换具有replace-patternwith标识符的配置对象的模式,客户端应用程序在对象的开放标记中包含 和 属性,随后包含该对象的标识符标记元素。在下面的示例中,标识符标记元素为<name>:
<rpc>
<load-configuration>
<configuration>
<!-- opening tag for each parent element -->
<container-tag replace-pattern="pattern1" with="pattern2" [upto="n"]>
<name>identifier</name>
</container-tag>
<!-- closing tag for each parent element -->
</configuration>
</load-configuration>
</rpc>
以下 RPC 将"4.5"实例替换为"4.1",但仅适用于层次结构下的 fe-0/0/2 [edit interfaces] 接口:
<rpc>
<load-configuration>
<configuration>
<interfaces>
<interface replace-pattern="4.5" with="4.1">
<name>fe-0/0/2</name>
</interface>
</interfaces>
</configuration>
</load-configuration>
</rpc>
执行 RPC 后,可以将更新的候选配置与活动配置进行比较,以验证模式更换。例如:
<rpc> <get-configuration compare="rollback" rollback="0" format="text"> </get-configuration> </rpc> <rpc-reply xmlns:junos="http://xml.juniper.net/junos/15.1R1/junos"> <configuration-information> <configuration-output> [edit interfaces fe-0/0/2 unit 0 family inet] + address 10.0.4.1/30; - address 10.0.4.5/30; </configuration-output> </configuration-information>