AUF DIESER SEITE
Fehlerbehebung bei Junos PyEZ (junos-eznc)-Installationsfehlern für Ansible-Module
Problemstellung
Beschreibung
Während der Ausführung eines juniper.device Moduls generiert der Ansible-Steuerungsknoten einen Fehler, der junos-eznc nicht installiert ist. Zum Beispiel:
"msg": "junos-eznc is required but does not appear to be installed. It can be installed using `pip install junos-eznc`"
Ursache
Viele Module in der juniper.device Sammlung verwenden die Junos PyEZ Python-Bibliothek, um Operationen auf Junos-Geräten auszuführen. Ansible generiert diesen Fehler, wenn die Bibliothek nicht installiert ist oder wenn Ansible die Bibliothek nicht finden kann. Ansible kann die Bibliothek möglicherweise nicht finden, z. B. wenn Sie Ansible in einer virtuellen Umgebung oder unter einer Python-Installation an einem nicht standardmäßigen Systemspeicherort installieren und Ansible an einem anderen Speicherort als dem Standardsystemspeicherort nach der Bibliothek sucht.
Lösung
Installieren Sie Junos PyEZ auf dem Ansible-Steuerungsknoten und aktualisieren Sie alle erforderlichen Umgebungsvariablen. Weitere Informationen finden Sie unter https://github.com/Juniper/py-junos-eznc#installation .
Wenn Sie Ansible mit einer Python-Installation in einer virtuellen Umgebung oder an einem nicht standardmäßigen Systemspeicherort ausführen, müssen Sie Folgendes tun:
-
Installieren Sie Junos PyEZ unter der gewünschten Python-Installation (je nach Bedarf in der virtuellen Umgebung oder an einem nicht standardmäßigen Systemstandort).
-
Geben Sie den Pfad zum Python-Interpreter an, z. B. die
interpreter_pythonVariable in der Ansible-Konfigurationsdatei oder dieansible_python_interpreterVariable für die entsprechenden Geräte in der Ansible-Bestandslistendatei.# file ansible.cfg [defaults] interpreter_python = /home/user/MyProjects/Ansible/venv/bin/python ...
Weitere Informationen finden Sie unter Interpreterermittlung in der offiziellen Ansible-Dokumentation.
Um zu überprüfen, ob Junos PyEZ erfolgreich auf dem Steuerungsknoten installiert wurde, starten Sie die interaktive Python-Shell mit derselben Python-Installation, die Sie für Ansible-Operationen verwenden. Importieren Sie dann das jnpr.junos Paket.
(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'
Wenn Sie das jnpr.junos Paket erfolgreich importieren, wird Junos PyEZ auf dem Ansible-Steuerungsknoten installiert. Wenn beim Ausführen des Ansible-Moduls immer noch dieselbe Fehlermeldung angezeigt wird, stellen Sie sicher, dass Sie den richtigen Speicherort für den Python-Interpreter in Ihrer Ansible-Umgebung angegeben haben.
Sie können die von Ansible verwendete Python-Installation überprüfen, indem Sie Ihr Ansible-Playbook mit der -vvv Option ausführen und die Protokollmeldungen überprüfen.