Tout ce que je pouvais trouver était celui-ci de la documentation :
De plus,
inventory_hostname
est le nom du nom d’hôte tel que configuré dans le fichier hôte de l’inventaire d’Ansible. Cela peut être utile lorsque vous ne voulez pas vous fier au nom d’hôte découvertansible_hostname
ou pour d’autres raisons mystérieuses. Si vous avez un nom de domaine complet long,inventory_hostname_short
contient également la partie jusqu'à la première période, sans le reste du domaine.
Existe-t-il une différence réelle entre les variables inventory_hostname
et ansible_hostname
dans Ansible? Si oui, alors lequel devrais-je utiliser et quand?
inventory_hostname
- Tel que configuré dans le fichier d'inventaire ansible (par exemple: /etc/ansible/hosts
). Il peut s’agir d’une adresse IP ou d’un nom pouvant être résolu par le serveur DNS.ansible_hostname
- Comme découvert par ansible
. Ansible ssh
's dans l'hôte et rassemble quelques faits. En fait, il découvre également son nom d’hôte qui est stocké dans ansible_hostname
.hostvars
est un dictionnaire comportant une entrée pour chaque hôte d'inventaire. Si vous souhaitez accéder aux informations sur l'hôte, vous devez utiliser le inventory_hostname
. Si vous souhaitez utiliser/imprimer le nom de l'hôte tel qu'il est configuré sur l'hôte, vous devez utiliser ansible_hostname
étant donné que l'adresse IP sera probablement utilisée dans le fichier d'inventaire.
Important: Pour utiliser ansible_hostname
, vous devez rassembler des faits:
gather_facts: true
Sinon, vous recevrez un message indiquant que ansible_hostname
n'est pas défini.
"ansible_hostname": "VARIABLE IS NOT DEFINED!"
Essayez ceci avec un hôte pour comprendre les différences
tasks:
- debug: var=inventory_hostname
- debug: var=ansible_hostname
- debug: var=hostvars