Solucionar problemas de erros de instalação do Junos PyEZ (junos-eznc) para módulos do Ansible
Problema
Descrição
Durante a execução de um juniper.device módulo, o nó de controle do Ansible gera um erro que junos-eznc não está instalado. Por exemplo:
"msg": "junos-eznc is required but does not appear to be installed. It can be installed using `pip install junos-eznc`"
Causa
Muitos módulos da juniper.device coleção usam a biblioteca Python do Junos PyEZ para realizar operações em dispositivos Junos. O Ansible gera esse erro se a biblioteca não estiver instalada ou se o Ansible não conseguir localizar a biblioteca. O Ansible pode falhar ao localizar a biblioteca, por exemplo, se você instalar o Ansible em um ambiente virtual ou em uma instalação do Python em um local não padrão do sistema e o Ansible estiver procurando a biblioteca em um local diferente, como o local padrão do sistema.
Solução
Instale o Junos PyEZ no nó de controle do Ansible e atualize as variáveis de ambiente necessárias. Consulte https://github.com/Juniper/py-junos-eznc#installation para obter mais informações.
Se você executar o Ansible usando uma instalação do Python em um ambiente virtual ou em um local de sistema não padrão, deverá:
-
Instale o Junos PyEZ na instalação Python desejada (no ambiente virtual ou em um local não padrão do sistema, conforme apropriado).
-
Especifique o caminho para o interpretador do Python, por exemplo, defina a
interpreter_pythonvariável no arquivo de configuração do Ansible ou defina aansible_python_interpretervariável para os dispositivos apropriados no arquivo de inventário do Ansible.# file ansible.cfg [defaults] interpreter_python = /home/user/MyProjects/Ansible/venv/bin/python ...
Para obter mais informações, consulte Interpreter Discovery na documentação oficial do Ansible.
Para verificar se o Junos PyEZ foi instalado com sucesso no nó de controle, inicie o shell interativo do Python usando a mesma instalação do Python que você usa para operações do Ansible. Em seguida, importe o jnpr.junos pacote.
(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'
Se você importar o jnpr.junos pacote com êxito, o Junos PyEZ será instalado no nó de controle do Ansible. Se você ainda vir a mesma mensagem de erro ao executar o módulo Ansible, certifique-se de ter especificado o local correto para o interpretador Python em seu ambiente Ansible.
Você pode verificar a instalação do Python que o Ansible usa executando seu manual do Ansible com a -vvv opção e revisando as mensagens de log.