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 jnpr.junos.utils.config.Config 实用程序回滚 Junos 设备上的配置。

要求

此示例使用以下硬件和软件组件:

  • 运行 Python 3.5 或更高版本以及 Junos PyEZ 2.0 或更高版本的配置管理服务器

  • 启用了 NETCONF 且用户帐户配置了适当权限的 Junos 设备

  • 为服务器和 Junos 设备上的相应用户配置的 SSH 公钥/私钥对

概述

此示例提供了一个 Python 应用程序,该应用程序使用 Junos PyEZ Config 实用程序回滚指定设备上的配置。Junos 设备存储最近提交的配置的副本和最多 49 个先前配置的副本。您可以回滚到任何存储的配置。当配置更改导致不良结果,并且您希望恢复到已知的工作配置时,这很有用。回滚配置类似于在设备上进行配置更改的过程,但不是加载配置数据,而是执行回滚,这会将整个候选配置替换为之前提交的配置。

Python 应用程序将导入处理 Device 与 Junos 设备的连接的类;用于在目标设备上执行配置模式命令的类; Config 以及模块中 jnpr.junos.exception 所需的例外,其中包含管理 Junos 设备时遇到的异常。

为目标设备创建 Device 实例后, open() 该方法将与设备建立连接和 NETCONF 会话。然后, Config 实用程序方法锁定、回滚、提交和解锁候选配置。

该方法 rollback() 有一个参数, rb_id即指定要加载的存储配置的回滚 ID。有效值为 0(对于最近提交的配置为零)到比存储的先前配置数(最大值为 49)少 1。如果在方法调用中省略此参数,则默认为 0。此示例加载具有回滚 ID 1 的配置,这是在活动配置之前提交的配置。该方法 rollback() 将配置加载到候选配置中,然后通过调用该方法 commit() 提交候选配置以使其处于活动状态。

回滚并提交配置后,应用程序将调用该方法 close() 终止 NETCONF 会话和连接。该应用程序包含用于处理异常的代码,例如 LockError 锁定配置时发生的错误和 CommitError 提交操作期间发生的错误。该应用程序还包括用于处理可能发生的任何其他异常的代码。

配置

创建 Junos PyEZ 应用程序

分步过程

要创建使用 Junos PyEZ 回滚 Junos 设备上的配置的 Python 应用程序,请执行以下操作:

  1. 导入任何必需的模块、类和对象。

  2. 包括任何必需的变量,对于此示例,其中包括受管设备的主机名。

  3. 创建 main() 函数定义和函数调用,并将其余语句放在定义中。

  4. 创建类的 Device 实例,并提供主机名和该特定连接所需的任何参数。

  5. 打开连接并与设备建立 NETCONF 会话。

  6. 创建实用程序的 Config 实例。

  7. 锁定配置。

  8. 回滚并提交配置,并处理任何错误。

  9. 解锁配置,然后结束 NETCONF 会话并关闭与设备的连接。

结果

在配置管理服务器上,查看已完成的应用程序。如果应用程序未显示预期的代码,请重复此示例中的说明以更正应用程序。

执行 Junos PyEZ 代码

执行应用程序

要执行 Junos PyEZ 代码,请执行以下操作:

  • 在配置管理服务器上,执行应用程序。

验证

验证配置

目的

验证配置是否已在 Junos 设备上正确回滚。

行动

登录到 Junos 设备并查看配置或配置差异以及日志文件。例如:

意义

配置差异和日志文件内容指示配置已成功回滚并在设备上提交。