Las variables de respuesta provienen de una variedad de fuentes. Por ejemplo, es posible proporcionar host_vars y group_vars creando archivos YAML en una subcarpeta denominada host_vars
y, group_vars
respectivamente, de la carpeta que contiene el archivo de inventario.
¿Cómo puedo enumerar todas las variables Ansible sería saber acerca de un grupo o host dentro de un libro de jugadas? Nota: Lo intenté ansible -m debug -e 'var=hostvars' host
y fue ansible -m debug -e '- debug: var=hostvars'
en vano.
Sugerencia: noansible <group|host> -m setup
es la respuesta correcta, ya que no incluye todas las variables que provienen de otras fuentes (solo contiene . De hecho, ni siquiera incluye las variables proporcionadas por un script de inventario dinámico (vía, etc.).{ "ansible_facts" : { ... } }
_meta
Versión que responde: 1.9.1.
2.0.2
, esto ya no parece funcionar. La salida eslocalhost | SUCCESS => { "hostvars": "<ansible.vars.hostvars.HostVars object at 0x7f320943da10>" }
"var=hostvars[inventory_hostname]"
en ansible> 2.0ansible my.hostname.example.com -m setup -i ../my/inventory/hosts.example -u root
ansible host-name -m debug -a "var=[var_name]" -i inventory/testing/hosts
FYI: Este proyecto github le muestra cómo enumerar el 90% de las variables en todos los hosts. Me resulta más útil a nivel mundial que los comandos de host único. El archivo README incluye instrucciones para crear un informe de inventario simple. Es aún más valioso ejecutar esto al final de un libro de jugadas para ver todos los hechos. Para depurar también el comportamiento de la tarea, utilice el registro:
fuente
Agregando un pequeño consejo a la muy buena respuesta anterior, si quieres hurgar programáticamente puedes
Use la respuesta existente para hostvars :
Pero ansible_facts está vacío porque
debug
no ejecuta elsetup
módulo. Por lo tanto, debe probar algo adicional, comojq
después de recortar la salida para que sea válida json.Pensé que la gente podría encontrar esto útil al investigar el muro gigante de texto que regresa en hechos visibles cuando solo quieres una cosa como
jq .ansible_facts.ansible_devices.vda.size
fuente