Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用 Junos PyEZ 提交配置

Junos PyEZ 允许您在 Junos 设备上进行结构化和非结构化配置更改。连接到设备并修改配置后,您必须提交配置以使其处于活动状态。本主题讨论如何提交配置以及 Junos PyEZ 应用程序支持哪些提交选项。

如何提交候选配置

使用 Junos PyEZ jnpr.junos.utils.config.Config 实用程序在设备上进行非结构化配置更改时,需要调用 Config instance commit() 方法提交候选配置。例如:

要验证配置的语法而不提交它,请调用 commit_check() 该方法来代替该 commit() 方法。

使用 Junos PyEZ 配置表和视图在设备上进行结构化配置更改时,可以通过调用 set() 方法(该方法会自动调用 lock()load()commit() unlock() 方法)或单独调用各种方法来提交候选配置。例如:

同样,您可以调用各个方法,如以下示例所示:

注意:

如果使用上下文管理器创建 Config or Table 对象并将参数private设置为 modeexclusivebatchdynamicephemeral,则只需调用 load()commit() 方法来配置设备。上下文管理器处理数据库的打开和锁定以及关闭和解锁,因此lock()在这些模式之一中调用 、 unlock()set()方法会导致 LockError 异常。

如何指定提交选项

Junos CLI 为提交操作提供选项,例如添加提交注释或同步多个路由引擎上的配置。Junos PyEZ 支持许多相同的提交选项和一些附加选项,您可以通过在 or 方法 参数列表中包含相应的参数 commit() set() ,在 Junos PyEZ 应用程序中使用这些选项。表 1 概述了支持的提交选项,并提供了相应的 CLI 命令。

表 1:Junos PyEZ 支持的提交选项

commit option 参数

描述

CLI 命令

comment="comment"

在系统日志文件和设备的提交历史记录中记录该提交操作的注释。

commit comment "comment"

confirm=(True | minutes)

要求在初始提交后的指定时间内确认提交操作。否则,请回滚到之前提交的配置。

将参数 True 设置为以使用默认时间 10 分钟。

commit confirmed <minutes>

detail=True

返回一个 XML 对象,其中包含有关提交过程的详细信息。

commit | display detail | display xml

force_sync=True

在两个路由引擎上同步并提交配置,即使另一个路由引擎有打开的配置会话或未提交的配置更改。

commit synchronize force

ignore_warning=True

ignore_warning="string"

ignore_warning=["string1", "string2"]

忽略提交操作期间引发的警告。

将参数 True 设置为忽略所有警告,或将参数设置为指定要忽略哪些警告的字符串或字符串列表。

sync=True

同步并提交两个路由引擎上的配置。

commit synchronize

timeout=seconds

使用指定的值作为超时等待操作完成。

提交评论

提交配置时,可以添加简短的注释来描述提交更改的目的。要记录描述更改的注释,请根据需要在 or set() method 参数列表中包括comment参数和消息字符串commit()。例如:

包含 comment 参数相当于在 CLI 中发出 commit comment 配置模式命令。注释将记录到系统日志文件中,并包含在设备的提交历史记录中,您可以通过在 CLI 中发出 show system commit 命令来查看该记录。

提交确认

若要要求在初始提交后的指定时间内确认提交操作,请酌情将参数commit()包含在 confirm=minutes or set() 方法参数列表中。

如果在给定的时限内未确认提交,设备会自动回滚到之前提交的配置,并向所有登录的用户发送广播消息。允许的范围为 1 到 65,535 分钟。您还可以指定 confirm=True 使用默认的 10 分钟回滚时间。要确认提交操作,请调用 commit() or commit_check() 方法。

确认的提交操作可用于验证配置更改是否正常工作,并且不会阻止管理访问设备。如果更改导致访问失败或导致其他错误,则在回滚截止时间过后,自动回滚到之前的配置将允许访问设备。如果失去与设备的连接,则必须发出 Junos PyEZ open() 方法才能恢复连接。

提交详细信息

您可以通过将参数commit()包含在 detail=True or set() method 参数列表中来查看整个提交操作的详细信息。当您包含此参数时,该方法将返回一个 XML 对象,其中包含有关提交过程的详细信息。返回值等同于 CLI 中命令输出commit | display detail | display xml中元素<commit-results>所包含的内容。

提交同步

如果设备具有双路由引擎,则可以通过将参数commit()包含在 sync=True or set() method 参数列表中来同步和提交两个路由引擎上的配置。

包含参数 sync=True 后,设备会将存储在本地路由引擎上的候选配置复制到另一个路由引擎,验证候选配置的语法正确性,并在两个路由引擎上提交。要强制 commit synchronize 操作成功,即使另一个路由引擎上存在打开的配置会话或未提交的配置更改,请使用该 force_sync=True 参数,这会导致设备在同步和提交配置之前终止另一个路由引擎上的任何配置会话。

提交和提交检查超时

RPC 超时的默认时间为 30 秒。大的配置更改可能会超过此值,从而导致提交或提交检查操作超时,然后才能上传、检查和提交配置。要适应可能需要提交检查或长于默认超时间隔的提交时间的配置更改,请将参数commit_check()包含在 timeout=secondscommit() set()方法参数列表中,并将超时间隔设置为适当的值。例如:

忽略警告

当 RPC 回复包含<rpc-error>严重性为警告或更高的元素时,Junos PyEZ 会引发RpcError异常。如果有必要或希望抑制RpcError响应警告而引发的异常,则可以包含该commit()方法的ignore_warning参数。例如:

有关使用该 ignore_warning 参数的更多信息,请参阅抑制 Junos PyEZ 应用程序中为警告引发的 RpcError 异常