使用 Junos XML 协议将活动或候选配置与早期版本进行比较
在Junos OS CLI中,您可使用 命令将活动或候选配置与之前提交的配置进行比较, compare 并显示差异。您可以通过引用其配置修订版标识符或回滚编号来指定对比配置。
例如,在操作模式下,可以使用以下命令将活动配置与之前提交的配置进行比较:
show configuration | compare revision revision-idshow configuration | compare rollback rollback-number
同样,在配置模式下,您可以使用以下命令将候选配置与先前提交的配置进行比较:
show | compare revision revision-idshow | compare rollback rollback-number
在 Junos XML 协议会话中,运行 Junos OS 的设备请求服务器显示活动或候选配置与先前提交的配置(对比配置)之间的差异,客户端应用程序会使用 与 属性的操作。 <get-configuration> compare 属性 compare 接受以下值,表示用于参考比较配置的方法:
configuration-revision—通过您可以在属性中定义的配置修订版标识符字符串来参考比较configuration-revision="revision-id"配置。rollback—通过您可以在属性中定义的回滚索引来参考比较rollback="rollback-number"配置。
compare属性可以与 属性结合使用,以指明候选配置或活动配置是否与先前提交 database 的配置进行比较。要比较活动配置,请指定 database="committed" 。要比较候选配置,请指定 database="candidate" 或不指定 database 属性。
通过定义 或 属性并指定相应的配置修订版标识符或回滚索引, configuration-revision rollback 可定义对比配置。如果包括属性,但省略相应的或属性或者提供无效的配置修订标识符,服务器将使用活动配置 compare configuration-revision rollback 作为比较配置。活动配置对应于回滚编号 0。
例如,要将候选配置与具有给定配置修订版标识符的配置进行比较,请使用以下语法:
<rpc>
<get-configuration compare="configuration-revision" configuration-revision="revision-id" format="text">
<!-- optional - configuration elements to compare -->
</get-configuration>
</rpc>
同样,要将候选配置与具有给定回滚索引的配置进行比较,请使用以下语法:
<rpc>
<get-configuration compare="rollback" rollback="[0-49]" format="text">
<!-- optional - configuration elements to compare -->
</get-configuration>
</rpc>
要比较活动配置与之前的配置,请包括 database="committed" 属性。例如:
<rpc>
<get-configuration database="committed" compare="configuration-revision" configuration-revision="re0-1605138555-328"/>
</rpc>
您还可以指定比较的范围。您可以比较完整配置,也可以比较配置的子集。要比较配置的子集,请定义选择要比较的元素的子树过滤器,如以下示例所示:
<rpc>
<get-configuration compare="configuration-revision" configuration-revision="re0-1605288042-335">
<configuration>
<system>
<scripts/>
</system>
</configuration>
</get-configuration>
</rpc>
将候选配置与活动配置进行比较时, compare 操作将返回 XML 输出。对于所有其他比较,它使用补丁格式将输出返回为文本。文本输出包含在 和 <configuration-information> <configuration-output> 标记中。输出使用以下约定来指定配置之间的差异:
仅在活动配置或候选配置中的语句使用加号 (+) 作为前缀。
仅在比较文件中使用减号 (-) 作为前缀的语句。
不更改的语句以单个空白空间 ( ) 作为前缀。
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/20.4R1/junos"> <configuration-information> <configuration-output> [edit system scripts op] - file bgp-summary.py; + file bgp-neighbors.py; </configuration-output> </configuration-information> </rpc-reply>
将候选配置与活动配置进行比较时,可以通过在请求中为属性添加相应的值来显示文本、XML 或 JSON 格式 format 的差异。从版本 1 开始,您可显示 XML 格式Junos OS,15.1R1版本开始显示 JSON 格式Junos OS差异16.1R1。
<rpc>
<get-configuration compare="rollback" rollback="0" format="xml"/>
</rpc>
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/16.1R1/junos">
<configuration>
<system>
<scripts operation="create">
<op>
<file>
<name>bgp.slax</name>
</file>
</op>
</scripts>
</system>
</configuration>
</rpc-reply>
<rpc>
<get-configuration compare="rollback" rollback="0" format="json"/>
</rpc>
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/16.1R1/junos">
<configuration-information>
<json-output>
{
"configuration" : {
"system" : {
"scripts" : {
"@" : {
"operation" : "create"
},
"op" : {
"file" : [
{
"name" : "bgp.slax"
}
]
}
}
}
}
}
</json-output>
</configuration-information>
</rpc-reply>
从 Junos OS 版 16.2R2 开始,当您比较候选配置和有效配置并显示 XML 或 JSON 格式的差异时,设备将省略 XML 输出中的标记,如果比较结果没有差异,或者如果比较只返回非本机配置数据返回差异,设备将省略 JSON 输出中的对象 <configuration> configuration , 例如,与 OpenConfig 数据模型相关联的配置数据。