it-swarm.com.de

Was ist der Unterschied zwischen inventory_hostname und ansible_hostname?

Alles, was ich finden konnte, war das aus den Dokumenten :

Zusätzlich, inventory_hostname ist der Name des Hostnamens, wie er in der Inventar-Host-Datei von Ansible konfiguriert ist. Dies kann nützlich sein, wenn Sie sich nicht auf den ermittelten Hostnamen verlassen möchten. ansible_hostname oder aus anderen mysteriösen Gründen. Wenn Sie einen langen FQDN haben, inventory_hostname_short enthält auch den Teil bis zum ersten Punkt ohne den Rest der Domain.

Gibt es einen tatsächlichen Unterschied zwischen inventory_hostname und ansible_hostname Variablen in Ansible? Wenn ja, welches sollte ich wann verwenden?

28
  • inventory_hostname - Wie in der anzeigbaren Inventardatei konfiguriert (zB: /etc/ansible/hosts). Dies kann eine IP-Adresse oder ein Name sein, der vom DNS aufgelöst werden kann
  • ansible_hostname - Wie von ansible entdeckt. Ansible ssh 's in den Host und sammelt einige Fakten. Dabei wird auch der Hostname ermittelt, der in ansible_hostname Gespeichert ist.

Welches solltest du verwenden?

hostvars ist ein Wörterbuch, das einen Eintrag für jeden Inventar-Host enthält. Wenn Sie auf die Host-Informationen zugreifen möchten, müssen Sie den inventory_hostname Verwenden. Wenn Sie den auf dem Host konfigurierten Hostnamen verwenden/drucken möchten, sollten Sie ansible_hostname Verwenden, da die IP-Adresse höchstwahrscheinlich in der Inventardatei verwendet wird.

Wichtig: Um ansible_hostname Zu verwenden, müssen Sie Fakten sammeln:

gather_facts: true

Andernfalls erhalten Sie eine Meldung, dass ansible_hostname Nicht definiert ist.

"ansible_hostname": "VARIABLE IS NOT DEFINED!"

Versuchen Sie dies mit einem Host, um die Unterschiede zu verstehen

  tasks:
    - debug: var=inventory_hostname
    - debug: var=ansible_hostname
    - debug: var=hostvars
43
helloV