使用 Junos XML 协议将活动或候选配置与早期版本进行比较
在Junos OS CLI中,您可使用 命令将活动或候选配置与之前提交的配置进行比较, compare
并显示差异。您可以通过引用其配置修订版标识符或回滚编号来指定对比配置。
例如,在操作模式下,可以使用以下命令将活动配置与之前提交的配置进行比较:
show configuration | compare revision revision-id
show configuration | compare rollback rollback-number
同样,在配置模式下,您可以使用以下命令将候选配置与先前提交的配置进行比较:
show | compare revision revision-id
show | 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 数据模型相关联的配置数据。