wake-up-neo.com

Wie erhalte ich den Hostnamen der aktuellen Maschine, wie in der Ansible-Hostdatei definiert?

Ich erstelle ein Ansible-Spielbuch, um ein paar Server einzurichten. Es gibt einige Aufgaben, die ich nur ausführen möchte, wenn der aktuelle Host mein lokaler dev-Host ist und in meiner Hostdatei "local" heißt. Wie kann ich das machen? Ich kann es nirgendwo in der Dokumentation finden.

Ich habe diese when-Anweisung ausprobiert, sie schlägt jedoch fehl, da ansible_hostname in den Host-Namen aufgelöst wird, der beim Erstellen des Computers generiert wird, und nicht den in Ihrer hosts-Datei definierten Namen.

- name: Install this only for local dev machine
  pip: name=pyramid
  when: ansible_hostname == "local"
144
Tanner Semerad

Die notwendige Variable ist inventory_hostname .

- name: Install this only for local dev machine
  pip: name=pyramid
  when: inventory_hostname == "local"

Es ist etwas versteckt in der Dokumentation am Ende dieses Abschnitts .

245
Tanner Semerad

Sie können den Umfang eines Playbooks einschränken, indem Sie den Host-Header in seinen Spielen ändern, ohne sich auf Ihr spezielles Host-Label "local" in Ihrem Inventar zu verlassen. Localhost benötigt keine spezielle Zeile in den Lagerbeständen.

- name: run on all except localhost
  hosts: all:!localhost
0
bbaassssiiee

Dies ist eine Alternative:

- name: Install this only for local dev machine
  pip: name=pyramid
  delegate_to: localhost
0
bbaassssiiee