在此页面上
配置 Junos 设备时排除 Junos PyEZ 错误
以下部分概述了使用 Junos PyEZ 配置 Junos 设备时可能会遇到的错误。这些部分还针对每个错误提供潜在原因和解决方案。
故障排除超时错误
问题
描述
Junos PyEZ 代码生成 RpcTimeoutError 消息或 TimeoutExpiredError 消息,并且无法更新设备配置。
RpcTimeoutError(host: dc1a.example.com, cmd: commit-configuration, timeout: 30)
原因
NETCONF RPC 超时的默认时间为 30 秒。大型配置更改可能超过此值,导致操作超时,然后才能上传和提交配置。
解决 方案
要适应可能需要超过默认超时间隔的提交时间的配置更改,请将超时间隔设置为适当的值,然后重新运行代码。要配置间隔时间,请将属性设置Device
timeout
为适当的值,或在设备上加载和提交配置数据时,在或set()
方法中commit()
包含timeout=seconds
该参数。例如:
dev = Device(host="host") dev.open() dev.timeout = 300 with Config(dev, mode='exclusive') as cu: cu.load(path='junos-config.conf', merge=True) cu.commit(timeout=360) dev.close()
配置锁定错误故障排除
问题
描述
Junos PyEZ 代码会生成 LockError 消息,表示配置无法锁定。
LockError(severity: error, bad_element: None, message: configuration database modified)
原因
由于以下原因,可能会出现配置锁定错误:
另一个用户对配置有专属锁定。
另一位用户对共享配置数据库进行了更改,但尚未提交更改。
执行 Junos PyEZ 代码的用户没有配置设备的权限。
解决 方案
如果另一个用户对配置有专属锁定或已修改配置,请等待锁发布或提交更改,然后再次执行代码。如果问题的原因在于用户没有配置设备的权限,要么与拥有必要权限的用户一起执行程序,或者在适当时配置 Junos 设备,为当前用户提供进行更改的必要权限。