Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用事件脚本更改配置

您可以配置事件策略来针对事件更改配置。事件策略可通过引用更改和提交配置的事件脚本或使用 change-configuration 语句执行更改配置的配置模式命令来修改配置。事件脚本在修改配置时提供比 change-configuration 语句更高的灵活性。例如,事件脚本允许您检查具体情况,以不同格式提供配置数据,并指定如何将数据与现有配置合并。在某些情况下,例如在启用不间断活动路由 (NSR) 的双路由引擎设备上,事件策略只能使用事件脚本来修改配置。

以下部分讨论使用事件脚本修改配置。

如何使用 SLAX 或 XSLT 事件脚本更改配置

SLAX 和 XSLT 事件脚本可称为 jcs:load-configuration 模板,以便对 Junos OS 配置进行结构化更改。在调用模板修改配置之前,必须先与目标设备建立连接。有关模板的信息,请参阅 jcs:load-configuration使用 SLAX 和 XSLT 脚本更改配置

以下 SLAX 事件脚本将打开与本地设备的连接,呼叫 jcs:load-configuration 模板以修改和提交配置,然后关闭连接。模板所需的所有值都定义为 jcs:load-configuration 变量,然后作为参数传递到模板中。

要配置为给定事件调用 SLAX 事件脚本的事件策略:

  1. 将脚本复制到设备上的 /var/db/scripts/event 目录中,并提供使用 .slax 扩展文件名(例如 config-change.slax)的文件名。
  2. 配置事件脚本。
  3. 配置为特定事件调用事件脚本的事件策略,例如:
  4. 提交配置。

如何使用 Python 事件脚本更改配置

Python 脚本可使用 Junos PyEZ 库对运行 Junos OS 的设备上的配置进行更改。Junos PyEZ jnpr.junos.utils.config.Config 实用程序提供锁定、加载、提交和解锁配置的实例方法。

以下 Python 事件脚本连接到本地设备并更新并提交配置。

要配置为给定事件调用 Python 事件脚本的事件策略:

  1. 将脚本复制到设备上的 /var/db/scripts/event 目录中,并提供使用 .py 扩展文件名(例如 ,config-change.py)的文件名。
    注意:

    未签名的 Python 脚本必须归 Junos OS super-user 登录类中的 root 或用户所有,并且只有文件所有者才能为该文件写入许可。

  2. 允许在设备上执行未签名的 Python 脚本。
  3. 配置事件脚本以及根据其权限执行脚本的用户。
  4. 配置为特定事件调用事件脚本的事件策略,例如:
  5. 提交配置。

有关使用 Junos PyEZ 配置运行 Junos OS 的设备的详细信息,请参阅 Junos PyEZ 开发人员指南

如何在启用不间断活动路由的设备上使用事件脚本更改配置

当您使用事件策略更改已启用不间断活动路由 (NSR) 的双路由引擎设备上的配置时,我们建议事件策略调用事件脚本,该事件脚本仅在主路由引擎上提交更新的配置。这有助于确保配置更新和后续提交操作在两个路由引擎上均成功完成。该配置会自动同步至备份路由引擎,因为语 commit synchronize 句在层次结构级别上配置 [edit system] 为 NSR 配置的一部分。或者,如果您使用 change-configuration 语句修改配置,或者事件脚本未仅在主路由引擎上提交更改,则两个路由引擎可能同时尝试锁定配置数据库,从而导致一个或两个提交都失败。

要创建仅在主路由引擎上配置和提交配置的事件脚本,请包含用于测试当前路由引擎是否是主路由引擎的逻辑。如果当前路由引擎是主路由引擎,则更新配置并提交。

以下 SLAX 事件脚本连接到本地设备,并检查当前路由引擎是否是主路由引擎。如果是主路由引擎,则脚本会更新配置,然后提交。

同样,以下 Python 事件脚本连接到本地设备,如果当前路由引擎是主路由引擎,则仅更新并提交配置: