Ansible: Le script d'inventaire Ec2.py n'analysera pas les balises avec un e-mail comme valeur

Créé le 28 avr. 2016  ·  3Commentaires  ·  Source: ansible/ansible

TYPE DE PROBLEME
  • Rapport d'erreur
    VERSION ANSIBLE
ansible 2.0.1.0
CONFIGURATION
SE / ENVIRONNEMENT

RÉSUMÉ

Je ne peux effectuer aucune action ansible basée sur la balise "Propriétaire" pour les machines de mon environnement qui ont une adresse e-mail comme valeur.

ÉTAPES POUR REPRODUIRE

J'ai vérifié pour m'assurer que les valeurs des balises existaient :

./ec2.py --list >> aws_example.json

Et je peux confirmer les balises "Propriétaire":

...
"ec2_tag_Owner": "infrastructure",
...
"ec2_tag_Owner": "[email protected]",
...

Mais lorsque j'exécute une commande ansible pour référencer les hôtes qui utilisent la balise, elle ne peut pas en trouver avec une adresse e-mail comme valeur :

ansible -i tools/ec2.py [email protected] -m ping
RÉSULTATS ATTENDUS

Voici un exemple de la même commande avec une valeur de balise juste "infrastructure"

ansible -i tools/ec2.py tag_Owner_infrastructure -m ping
The authenticity of host '52.53.222.209 (52.53.222.209)' can't be established.

Cela montre qu'il connaît l'hôte et a essayé de le contacter pour s'y connecter.

RÉSULTATS ACTUELS
$ ansible -i tools/ec2.py [email protected] -m ping -vvvv
Using /Users/.../ansible/ansible.cfg as config file
ERROR! Specified hosts options do not match any hosts

Cela montre qu'il n'a pas pu associer une instance avec la clé : "Owner" et la valeur :" [email protected] "

bug

Tous les 3 commentaires

@bhuddleston Merci pour le rapport, cependant, ec2.py le fait "exprès" pour contraindre les valeurs de nom de groupe générées à l'alphanumérique ASCII.

Jetez un œil à to_safe() dans ec2.py : https://github.com/ansible/ansible/blob/devel/contrib/inventory/ec2.py#L1367

Le nom de votre groupe devrait être tag_Owner_it_domain_com . (vous pouvez toujours faire debug: var=groups partir du contexte de votre hôte pour connaître tous les groupes auxquels il appartient).

Ce comportement peut être un peu draconien (puisque j'ai vérifié que nous accepterons et travaillerons réellement avec les noms de groupe contenant '@' et '.') - n'hésitez pas à déposer un problème ou à communiquer notre liste de diffusion/IRC) pour changer le comportement de ec2.py.

AH ! Maintenant que je sais ce qui se passe, j'ai essayé la version "_" et ça a marché ! Merci pour l'aide.

Par curiosité, est-ce détaillé dans une quelconque documentation ? Je veux être sûr que je n'ai pas raté quelque chose d'évident.

Je pourrais tendre la main et voir si la liste de diffusion y est réceptive.


Brian Huddleston
Conception informatique ouverte (Ingénieur informatique)
+1.510.460.1444 (principal)
+1.510.780.2425 (télécopieur)
[email protected]

Le 28 avril 2016, à 17h05, Matt Davis [email protected] a écrit :

@bhuddleston Merci pour le rapport, cependant, ec2.py le fait "exprès" pour contraindre les valeurs de nom de groupe générées à l'alphanumérique ASCII.

Jetez un œil à to_safe() dans ec2.py : https://github.com/ansible/ansible/blob/devel/contrib/inventory/ec2.py#L1367

Le nom de votre groupe devrait être tag_Owner_it_domain_com. (vous pouvez toujours faire debug: var=groups depuis le contexte de votre hôte pour découvrir tous les groupes auxquels il appartient).

Ce comportement peut être un peu draconien (puisque j'ai vérifié que nous accepterons et travaillerons réellement avec les noms de groupe contenant '@' et '.') - n'hésitez pas à déposer un problème ou à communiquer notre liste de diffusion/IRC) pour changer le comportement de ec2.py.

-
Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail ou consultez-le sur GitHub

Oui, c'est dans la page de documentation de l'inventaire dynamique , mais un peu enfoui dans la section Balises : "Chaque paire clé/valeur est son propre groupe d'instances, encore une fois avec des caractères spéciaux convertis en traits de soulignement, au format tag_KEY_VALUE"

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