Ansible: register : ec2 / with_items : ec2.instances - résulte en "str object has no attribute"

Créé le 18 juin 2015  ·  3Commentaires  ·  Source: ansible/ansible

J'ai un playbook qui ressemble beaucoup aux exemples en ligne :


Tâches:
- nom : créer une instance EC2
ec2 :
[-couper-]
s'inscrire : ec2
- nom : imprimez-le
débogage : msg="item has - {{ item.public_ip }}"
with_items : ec2.instances


Cela donne l'erreur :


fatal : [localhost] => Une ou plusieurs variables non définies : 'str object' n'a pas d'attribut 'public_ip'

Si je le remplace par {{ item }}, je vois :

TÂCHE : [l'imprimer] * * * * * * * * * * * * * * * * * * * *
ok : [localhost] => (item=ec2.instances) => {
"item": "ec2.instances",
"msg": "l'élément a - ec2.instances"
}


Il semble que 'ec2.instances' soit simplement une chaîne ? Enfin, si j'utilise "with_items: ec2.results", je peux le parcourir mais je dois le référencer en tant qu'élément.instances.0.public_ip

Avez-vous une idée de la raison pour laquelle ec2_instances semble être une chaîne par opposition à un dictionnaire ?

Éditer:
: arp_kiki/pts/55:0.08:nouveau; ansible --version ansible 1.5.4

après la mise à jour :

ok : [localhost] => (item=ec2.instances) => {
"item": "ec2.instances",
"msg": "l'élément a - ec2.instances"
}

JOUER RÉCAPITULATIF * * * * * * * * * * * * * * * * * * * * * *
localhost : ok=2 modifié=1 inaccessible=0 échec=0

: arp_kiki/pts/55:0.31:nouveau; ansible --version
ansible 1.9.1

Commentaire le plus utile

Entendu. J'ai supposé que c'était un bug parce que je suivais la documentation et obtenais des résultats différents.

Tous les 3 commentaires

Salut!

Merci beaucoup de l'intérêt que vous portez à Ansible. Cela signifie sincèrement beaucoup pour nous.

Cela semble être une question d'utilisateur, et nous aimerions diriger ce genre de choses vers la liste de diffusion ou le canal IRC.

la raison en est également que with_items est utilisé, il y aurait donc plusieurs instances et les résultats de chaque instance créée sont stockés dans le dict ec2.results. s'il n'y a qu'une seule instance, créez, évitez with_items, vous devriez obtenir ce dont vous avez besoin ou si vous avez plusieurs instances à créer, utilisez l'adresse IP publique with_items : ec2.results et item.public_ip

IRC : #ansible sur irc.freenode.net
liste de diffusion : https://groups.google.com/forum/#!forum/ansible -project
Si vous pouvez vous y arrêter, nous vous en serions reconnaissants. Cela nous permet de garder le suivi des problèmes pour les bogues, les demandes d'extraction, les RFE et autres.

Merci encore et au plaisir de vous voir sur la liste ou sur IRC. Merci!

Entendu. J'ai supposé que c'était un bug parce que je suivais la documentation et obtenais des résultats différents.

Je viens d'arriver sur ce fil en raison de la même "erreur d'utilisateur", dont @bennojoy a décrit la cause de manière très succincte. Constatant qu'il s'agit d'une situation très "non évidente", ce serait bien d'avoir une référence à cela, au moins dans les exemples de la documentation du module ec2, car with_items va être un modèle très courant systèmes de gestion dans des zones de disponibilité définies.

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