ANSIBLE – CÓMO RECOGER INFORMACIÓN SOBRE LOS HOSPEDAZOS REMOTOS CON HECHOS DE GATOS (2017)

Gautier Franchini

Sigue

14 de noviembre, 2020 – 2 min read

Para ello, hablaremos del módulo ansible: Gathers facts

💬 Página oficial:

Muestra los hechos de todos los hosts y almacénalos en /tmp/facts indexados por nombre de host

$ ansible all -m setup --tree /tmp/facts

➡ ahora revisa el archivo para tener una visión clara de todas las variables (hechos) recogidas por ansible para tu host como el conocido {{ inventory_hostname }}

Para listar el hecho directamente en tu playbook tienes que establecer gather_facts: True en tu playbook

gather_facts: True tasks:
- debug: var=hostvars

obtener la dirección IP del host de destino actual y usarla en tu rol o playbook de ansible

Puedes usar en tu template.j2{{ ansible_eth0.ipv4.address }} de la misma manera que usas {{ inventory_hostname }}

Para establecer el valor en tu archivo vars

---
host_ip: "{{ ansible_enp0s3.ipv4.address }}"

usar case

➡ aquí hay un ejemplo: https://github.com/orsius/ansible-dtx-cassandra-3

⚠ Este repositorio git no está pensado para ser usado en producción, es sólo para ilustrar esta entrada del blog.

Espero que ayude a alguien algún día ッ

kr,
G.

actualización: 2018-04-19

También puedes usar «setup» en tu archivo .yaml.

por ejemplo, en mi caso de uso actual, necesito obtener el default ipv4 addr:

- name: Gather facts from new server
setup:
filter: ansible_default_ipv4.address

Ahora puedes llamar a {{ ansible_default_ipv4.address }} en tu playbook.
(setup cargar todas las variables de ansible_**)

ℹ️ Para los que estén interesados en aprender más con ansible les recomiendo esta web: www.educba.com ; la información me ha parecido completa y fácil de leer.