Wie drucke ich den aktuellen Hostnamen eines Hosts in ansible

11

Ich habe eine Rolle zum Bearbeiten des Motivs geschrieben, wenn sich der Benutzer am Computer anmeldet, aber ich möchte das Motiv personalisieren, um den Hostnamen des Computers zu drucken

Welche Variable verwende ich? oder wie mache ich das Vorlage? Wie? Ich habe das copy modulefür die Motd-Datei verwendet

Zum Beispiel möchte ich in der Lage sein, "Willkommen bei $ hostname" zu sagen. Wie analysiere ich diesen Hostnamen mit ansible?

Schneider gewähren
quelle

Antworten:

20

Dazu müssen Sie das Template- Modul verwenden.

Hier ist eine Beispielaufgabe:

- name: Create motd
  template: src="motd.j2" dest="/etc/motd"

Die Datei motd.j2 (im Vorlagenverzeichnis Ihrer Rolle abgelegt) könnte dann folgendermaßen aussehen:

Welcome to host {{ansible_hostname}}!

{{ansible_hostname}} wird dann durch den Hostnamen ersetzt.

Stellen Sie sicher, dass Sie in Ihrer Rolle " Fakten sammeln ", da sonst die Variable leer ist.

rndmh3ro
quelle
Wie "sammle ich Fakten"? .. danke
Grant Schneider
funktioniert danke ... aber was meinst du mit "Fakten sammeln"?
Grant Schneider
Ich habe der Dokumentation zwei Links hinzugefügt, um Fakten zu sammeln.
rndmh3ro
1
ansible_eth0.ipv4.addresses heraus nach einigen schweren searching..which saugt ... ansible sollte wissen , dass es sehr wichtige Variablen sind , die einfacher sein sollte , finden und deutlich auf der doc Stelle erwähnt werden
Zuschuss Schneider
1
Wenn Sie in den Ansible-Dokumenten nach "IP-Adresse" suchen, finden Sie diese leicht im ersten Link. Es gibt sogar einen ganzen Absatz , der zwei verschiedene Möglichkeiten zeigt, wie man die Adresse eines Hosts erhält!
rndmh3ro