.
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
- Pour énumérer le fait directement dans votre playbook, vous devez définir gather_facts : True dans votre playbook
- get current target host’s IP address and use it in your ansible role or playbook
- To set the value in your vars file
- use case
- update : 2018-04-19
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.