ansible 2.0.1.0
No puedo realizar ninguna acción ansible basada en la etiqueta "Propietario" para las máquinas de mi entorno que tienen una dirección de correo electrónico como valor.
Verifiqué para asegurarme de que existían los valores de la etiqueta:
./ec2.py --list >> aws_example.json
Y puedo confirmar las etiquetas de "Propietario":
...
"ec2_tag_Owner": "infrastructure",
...
"ec2_tag_Owner": "[email protected]",
...
Pero cuando ejecuto un comando ansible para hacer referencia a los hosts que usan la etiqueta, no puede encontrar aquellos con una dirección de correo electrónico como valor:
ansible -i tools/ec2.py [email protected] -m ping
A continuación, se muestra un ejemplo del mismo comando con un valor de etiqueta de solo "infraestructura".
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.
Esto muestra que conoce el host y trató de comunicarse con él para conectarse.
$ 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
Esto muestra que no pudo asociar una instancia con la clave: "Propietario" y el valor: " [email protected] "
@bhuddleston Gracias por el informe, sin embargo, ec2.py está haciendo esto "a propósito" para restringir los valores de nombre de grupo generados a ASCII alfanumérico.
Eche un vistazo a to_safe()
en ec2.py: https://github.com/ansible/ansible/blob/devel/contrib/inventory/ec2.py#L1367
El nombre de su grupo debe aparecer como tag_Owner_it_domain_com
. (siempre puede hacer debug: var=groups
desde el contexto de su anfitrión para averiguar todos los grupos a los que pertenece).
Este comportamiento puede ser un poco draconiano (ya que he verificado que realmente aceptaremos y trabajaremos con nombres de grupos con '@' y '.' En ellos). No dude en presentar un problema o relaciones públicas (o iniciar una discusión sobre nuestra lista de correo / IRC) para cambiar el comportamiento de ec2.py.
¡AH! Ahora que sé lo que está pasando, probé la versión "_" ¡y funcionó! Gracias por la ayuda.
Por curiosidad, ¿está eso detallado en alguna documentación en algún lugar? Quiero estar seguro de que no me perdí algo obvio.
Podría acercarme y ver si la lista de correo es receptiva.
Brian Huddleston
Diseño de TI abierto (Ingeniero de TI)
+1.510.460.1444 (principal)
+1.510.780.2425 (fax)
[email protected]
El 28 de abril de 2016, a las 5:05 p.m., Matt Davis [email protected] escribió:
@bhuddleston Gracias por el informe, sin embargo, ec2.py está haciendo esto "a propósito" para restringir los valores de nombre de grupo generados a ASCII alfanumérico.
Eche un vistazo a to_safe () en ec2.py: https://github.com/ansible/ansible/blob/devel/contrib/inventory/ec2.py#L1367
El nombre de su grupo debería aparecer como tag_Owner_it_domain_com. (siempre puede hacer debug: var = groups desde el contexto de su host para averiguar todos los grupos a los que pertenece).
Este comportamiento puede ser un poco draconiano (ya que he verificado que realmente aceptaremos y trabajaremos con nombres de grupos con '@' y '.' En ellos). No dude en presentar un problema o relaciones públicas (o iniciar una discusión sobre nuestra lista de correo / IRC) para cambiar el comportamiento de ec2.py.
-
Recibes esto porque te mencionaron.
Responda a este correo electrónico directamente o véalo en GitHub
Sí, está en la página de documentos del Inventario dinámico , pero un poco escondido en la sección Etiquetas: "Cada par clave / valor es su propio grupo de instancias, nuevamente con caracteres especiales convertidos en guiones bajos, en el formato tag_KEY_VALUE"