Solución de problemas de errores de instalación de Junos PyEZ (junos-eznc) para módulos de Ansible
Problema
Descripción
Durante la ejecución de un juniper.device módulo, el nodo de control de Ansible genera un error que junos-eznc no está instalado. Por ejemplo:
"msg": "junos-eznc is required but does not appear to be installed. It can be installed using `pip install junos-eznc`"
Causa
Muchos módulos de la juniper.device colección usan la biblioteca de Python de Junos PyEZ para realizar operaciones en dispositivos Junos. Ansible genera este error si la biblioteca no está instalada o si Ansible no puede encontrar la biblioteca. Es posible que Ansible no pueda localizar la biblioteca, por ejemplo, si instala Ansible en un entorno virtual o en una instalación de Python en una ubicación del sistema no estándar y Ansible busca la biblioteca en una ubicación diferente, como la ubicación predeterminada del sistema.
Solución
Instale Junos PyEZ en el nodo de control de Ansible y actualice las variables de entorno necesarias. Consulte https://github.com/Juniper/py-junos-eznc#installation para obtener más información.
Si ejecuta Ansible con una instalación de Python en un entorno virtual o en una ubicación del sistema no estándar, debe:
-
Instale Junos PyEZ en la instalación de Python deseada (en el entorno virtual o en una ubicación del sistema no estándar, según corresponda).
-
Especifique la ruta al intérprete de Python; por ejemplo, establezca la
interpreter_pythonvariable en el archivo de configuración de Ansible o defina laansible_python_interpretervariable para los dispositivos adecuados en el archivo de inventario de Ansible.# file ansible.cfg [defaults] interpreter_python = /home/user/MyProjects/Ansible/venv/bin/python ...
Para obtener más información, consulte Interpreter Discovery en la documentación oficial de Ansible.
Para comprobar que Junos PyEZ se instaló correctamente en el nodo de control, inicie el shell interactivo de Python con la misma instalación de Python que utiliza para las operaciones de Ansible. A continuación, importe el jnpr.junos paquete.
(venv) user@ansible-cn:~/MyProjects/Ansible$ python3 Python 3.12.3 (main, Nov 6 2025, 13:44:16) [GCC 13.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import jnpr.junos >>> jnpr.junos.__version__ '2.7.5'
Si importa correctamente el jnpr.junos paquete, Junos PyEZ se instala en el nodo de control de Ansible. Si sigue viendo el mismo mensaje de error al ejecutar el módulo de Ansible, asegúrese de haber especificado la ubicación correcta para el intérprete de Python en su entorno de Ansible.
Puede comprobar la instalación de Python que utiliza Ansible ejecutando su manual de estrategias de Ansible con la -vvv opción y revisando los mensajes de registro.