本页内容
 

Ansible 模块的 Junos PyEZ (junos-eznc) 安装错误故障排除

问题

描述

在执行 juniper.device 模块期间,Ansible 控制节点会生成未安装的 junos-eznc 错误。例如:

原因

集合中的 juniper.device 许多模块都使用 Junos PyEZ Python 库对 Junos 设备执行操作。如果未安装库或 Ansible 找不到库,则 Ansible 将生成此错误。例如,如果您在虚拟环境中或在非标准系统位置的 Python 安装下安装 Ansible,并且 Ansible 正在其他位置(例如默认系统位置)搜索库,则 Ansible 可能无法找到库。

解决方案

在 Ansible 控制节点上安装 Junos PyEZ 并更新所有必要的环境变量。有关详细信息,请参阅 https://github.com/Juniper/py-junos-eznc#installation 。

如果您在虚拟环境或非标准系统位置使用 Python 安装运行 Ansible,则必须:

  • 在所需的 Python 安装下安装 Junos PyEZ(在虚拟环境或非标准系统位置,视情况而定)。

  • 指定 Python 解释器的路径,例如,在 Ansible 配置文件中设置 interpreter_python 变量,或在 Ansible 清单文件中为相应设备定义 ansible_python_interpreter 变量。

    有关更多信息,请参阅 Ansible 官方文档中的 解释器发现 。

要验证 Junos PyEZ 是否已成功安装在控制节点上,请使用用于 Ansible 操作的相同 Python 安装启动 Python 交互式 shell。然后导入 jnpr.junos 包。

如果成功导入软件 jnpr.junos 包,则 Junos PyEZ 将安装在 Ansible 控制节点上。如果您在执行 Ansible 模块时仍然看到相同的错误消息,请确保您已在 Ansible 环境中为 Python 解释器指定了正确的位置。

注意:

您可以使用该 -vvv 选项执行 Ansible 操作指南并查看日志消息,以验证 Ansible 使用的 Python 安装。