Ansible: Le script Python d'inventaire dynamique AWS ne s'exécute pas

Créé le 19 août 2016  ·  2Commentaires  ·  Source: ansible/ansible

TYPE DE PROBLEME
  • Rapport d'erreur
    NOM DU COMPOSANT

Inventaire dynamique: ec2.py

VERSION ANSIBLE
ansible 2.1.0.0
Python 2.7.10
OS / ENVIRONNEMENT

Mac OS X 10.11.6

SOMMAIRE

L'exécution d'ec2.py autonome provoque une erreur d'importation.

ÉTAPES POUR REPRODUIRE
  1. Téléchargez le script d'inventaire dynamique ec2.py et le fichier ec2.ini comme indiqué dans la documentation .
  2. Exécutez le script avec Python 2.7
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
RÉSULTATS ATTENDUS

Une liste d'instances

RÉSULTATS ACTUELS

Erreur ci-dessus.

solution de contournement

Si je commente la ligne from ansible.module_utils import ec2 as ec2_utils le script fonctionne correctement.

La ligne a été introduite dans # 16606.

aws bug cloud

Commentaire le plus utile

Génial d'entendre que ce n'est pas un bug. Est-ce décrit quelque part dans la documentation?

J'ai compris ce qui l'a causé à ma fin: l'installation d'Ansible avec brew rendu ansible indisponible pour mon interpréteur Python.

Pour résoudre ce problème, j'ai désinstallé Ansible et l'ai réinstallé à l'aide de pip:

brew uninstall ansible
pip install ansible

Maintenant ansible est disponible:

python -c "import ansible;print(ansible.__version__)"
2.1.1.0

et le script fonctionne comme prévu.

Cela peut valoir la peine de le mentionner quelque part dans la documentation, ou que le script renvoie une erreur informative si ansible n'est pas disponible dans le chemin python.

Tous les 2 commentaires

@jonatanblue que l'importation a été ajoutée par https://github.com/ansible/ansible/commit/59e499f8f00e4068b68c147b8f3002535ad706e0 qui semble être une tentative de normaliser le code de configuration du client boto.

L'implication est que pour utiliser le script d'inventaire, vous devez avoir anible installé sur la machine de telle sorte que "ansible" soit disponible dans le chemin python de votre interpréteur python par défaut. Nous prévoyons d'utiliser davantage les bibliothèques ansible dans les scripts d'inventaire dynamique au fil du temps, donc je ne vais pas annuler ce changement.

Génial d'entendre que ce n'est pas un bug. Est-ce décrit quelque part dans la documentation?

J'ai compris ce qui l'a causé à ma fin: l'installation d'Ansible avec brew rendu ansible indisponible pour mon interpréteur Python.

Pour résoudre ce problème, j'ai désinstallé Ansible et l'ai réinstallé à l'aide de pip:

brew uninstall ansible
pip install ansible

Maintenant ansible est disponible:

python -c "import ansible;print(ansible.__version__)"
2.1.1.0

et le script fonctionne comme prévu.

Cela peut valoir la peine de le mentionner quelque part dans la documentation, ou que le script renvoie une erreur informative si ansible n'est pas disponible dans le chemin python.

Cette page vous a été utile?
0 / 5 - 0 notes