ANSIBLE – COMMENT COLLECTER DES INFORMATIONS SUR LES HÔTES À DISTANCE AVEC DES FAITS DE GATHERS (2017)

Gautier Franchini

Follow

Nov 14, 2020 – 2 min de lecture

.

Pour ce faire, nous allons parler du module ansible : Gathers facts

💬 Page web officielle:

Afficher les faits de tous les hôtes et les stocker dans /tmp/facts indexé par le nom de l’hôte

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

➡ maintenant vérifier le fichier pour avoir une vue claire de toutes les variables (faits) recueillies par ansible pour votre hôte comme le bien connu {{ inventory_hostname }}

Pour énumérer le fait directement dans votre playbook, vous devez définir gather_facts : True dans votre playbook

gather_facts: True tasks:
- debug: var=hostvars

get current target host’s IP address and use it in your ansible role or playbook

Vous pouvez utiliser dans votre template.j2{{ ansible_eth0.ipv4.address }} de la même manière que vous utilisez {{ inventory_hostname }}

To set the value in your vars file

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

use case

➡ voici un exemple : https://github.com/orsius/ansible-dtx-cassandra-3

⚠ Ce dépôt git n’est pas destiné à être utilisé en production, c’est juste pour illustrer ce billet de blog.

J’espère que cela aidera quelqu’un un jour ッ

kr,
G.

update : 2018-04-19

Vous pouvez également utiliser « setup » dans votre .yaml.

e.g. Dans mon cas d’utilisation actuel, j’ai besoin d’obtenir le default ipv4 addr:

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

Vous pouvez maintenant appeler {{ ansible_default_ipv4.address }} dans votre playbook.
(setup load all the ansible_** variables)

ℹ️ Pour ceux qui sont intéressés à en apprendre davantage avec ansible, je recommande ce site web : www.educba.com ; J’ai trouvé les informations complètes et faciles à lire.