Junos PyEZ 连接错误疑难解答
拒绝连接错误疑难解答
问题
描述
使用 Junos PyEZ 管理远程 Junos 设备时,代码将生成连接被拒绝的错误。例如:
jnpr.junos.exception.ConnectRefusedError
原因
设备上未启用 NETCONF,或者连接数超过限制。
拒绝连接错误的最可能原因是 Junos 设备上未启用 NETCONF over SSH。要快速测试是否启用了 NETCONF,请验证用户帐户是否可以成功启动与设备的 NETCONF 会话。
[user@server]$ ssh user@R1.example.com -p 830 -s netconf
溶液
如果 Junos 设备上未启用 NETCONF,请启用 NETCONF。
[edit] user@R1# set system services netconf ssh user@R1# commit
如果 NETCONF 会话数超过限制,请将允许的最大会话数增加到 250。默认值为 75。
[edit] user@R1# set system services netconf ssh connection-limit limit user@R1# commit
排除 Onbox 事件脚本中的 Junos PyEZ 连接错误
问题
描述
在 onbox Python 事件脚本中使用 Junos PyEZ 时,代码会生成引用用户“nobody”的 ConnectError 消息。例如:
ConnectError(host: None, msg: user "nobody" does not have access privileges.)
原因
为防止执行未经授权的 Python 代码,默认情况下,Junos 设备使用通用非特权用户和组 nobody的访问权限执行 Python 事件脚本。
溶液
要使用特定用户的访问权限执行事件脚本,必须为该事件脚本配置 python-script-user 语句并指定用户。配置的用户必须在设备上具有本地用户帐户。
[edit] user@host# set event-options event-script file filename python-script-user user user@host# commit
注意:
不能将 Python 事件脚本配置为使用 root 访问权限执行。
例如:
[edit] user@host# set event-options event-script file bgp-neighbors.py python-script-user admin user@host# commit