使用多个提交脚本时如何避免潜在冲突
使用多个提交脚本时,每个脚本都会评估原始 候选配置文件 。一个脚本所做的更改不会由其他脚本评估。这意味着,首次将脚本应用于配置时,可能无法解决脚本之间的冲突。提交脚本按照它们在层次结构级别列出的 [edit system scripts commit]
顺序执行, 如图 1 所示。

作为提交脚本之间冲突的示例,假设创建了提交脚本 A.xsl ,以确保设备使用 IP 地址为 192.168.0.255 的域名服务器。稍后,DNS 服务器的地址更改为 192.168.255.255,并添加了第二个脚本 B.xsl,以检查设备是否使用该地址的 DNS 服务器。但是,不会删除或禁用脚本 A.xsl 。
由于每个提交脚本都会评估原始候选配置,因此执行脚本 A.xsl 和 B.xsl 的最终结果取决于在原始候选配置中配置的 DNS 服务器地址。如果配置了现已过时的地址 192.168.0.255,则脚本 B.xsl 会将其更改为 192.168.255.255。但是,如果配置了正确的地址 192.168.255.255,则脚本 A.xsl 会将其更改为不正确的值 192.168.0.255。
作为提交脚本之间潜在冲突的另一个示例,假设提交脚本使用该属性保护 protect
层次结构。如果第二个提交脚本尝试修改或删除层次结构或层次结构中的语句,Junos OS 会在提交过程中发出警告并阻止配置更改。
请注意确保不会在脚本之间引入冲突,如示例中描述的那些。作为检查与持久更改冲突的方法,您可以发出两个单独的 commit
命令。