Dynamisches Inventar: ec2.py
ansible 2.1.0.0
Python 2.7.10
Mac OS X 10.11.6
Das eigenständige Ausführen von ec2.py führt zu Importfehlern.
python ec2.py --list
Traceback (most recent call last):
File "ec2.py", line 134, in <module>
from ansible.module_utils import ec2 as ec2_utils
ImportError: No module named ansible.module_utils
Eine Liste von Instanzen
Fehler oben.
Wenn ich die Zeile from ansible.module_utils import ec2 as ec2_utils
auskommentiere, läuft das Skript einwandfrei.
Die Linie wurde in # 16606 eingeführt.
@jonatanblue, dass der Import von https://github.com/ansible/ansible/commit/59e499f8f00e4068b68c147b8f3002535ad706e0 hinzugefügt wurde. Dies scheint ein Versuch zu sein, den Setup-Code des Boto-Clients zu normalisieren.
Die Implikation ist, dass zur Verwendung des Inventarskripts ansible auf dem Computer installiert sein muss, sodass "ansible" im Python-Pfad für Ihren Standard-Python-Interpreter verfügbar ist. Wir planen, die ansiblen Bibliotheken in den dynamischen Inventarskripten im Laufe der Zeit stärker zu nutzen, daher werde ich diese Änderung nicht rückgängig machen.
Schön zu hören, dass es kein Fehler ist. Wird dies irgendwo in der Dokumentation beschrieben?
Ich habe herausgefunden, was es an meinem Ende verursacht hat: Die Installation von Ansible mit brew
machte ansible für meinen Python-Interpreter nicht verfügbar.
Um dies zu beheben, habe ich Ansible deinstalliert und mit pip erneut installiert:
brew uninstall ansible
pip install ansible
Jetzt ist ansible verfügbar:
python -c "import ansible;print(ansible.__version__)"
2.1.1.0
und das Skript funktioniert wie erwartet.
Es kann sinnvoll sein, dies irgendwo in der Dokumentation zu erwähnen oder das Skript einen informativen Fehler auslösen zu lassen, wenn ansible
im Python-Pfad nicht verfügbar ist.
Hilfreichster Kommentar
Schön zu hören, dass es kein Fehler ist. Wird dies irgendwo in der Dokumentation beschrieben?
Ich habe herausgefunden, was es an meinem Ende verursacht hat: Die Installation von Ansible mit
brew
machte ansible für meinen Python-Interpreter nicht verfügbar.Um dies zu beheben, habe ich Ansible deinstalliert und mit pip erneut installiert:
Jetzt ist ansible verfügbar:
und das Skript funktioniert wie erwartet.
Es kann sinnvoll sein, dies irgendwo in der Dokumentation zu erwähnen oder das Skript einen informativen Fehler auslösen zu lassen, wenn
ansible
im Python-Pfad nicht verfügbar ist.