Wie erhalte ich den Hostnamen des aktuellen Computers, wie in der Ansible-Hosts-Datei definiert?


166

Ich richte ein Ansible-Playbook ein, um ein paar Server einzurichten. Es gibt einige Aufgaben, die ich nur ausführen möchte, wenn der aktuelle Host mein lokaler Entwicklerhost mit dem Namen "local" in meiner Hosts-Datei ist. Wie kann ich das machen? Ich kann es nirgendwo in der Dokumentation finden.

Ich habe diese when-Anweisung versucht, aber sie schlägt fehl, weil sie ansible_hostnamein den Hostnamen aufgelöst wird, der beim Erstellen des Computers generiert wurde, und nicht in den Namen, den Sie in Ihrer Hosts-Datei definiert haben.

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

Antworten:



2

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 verlassen zu müssen. Localhost benötigt keine spezielle Zeile in den Lagerbeständen.

- name: run on all except local
  hosts: all:!local

hosts: !localhostfunktioniert wahrscheinlich auch als zB --limit '!dev'funktioniert
timdiels

0

Dies ist eine Alternative:

- name: Install this only for local dev machine
  pip: name=pyramid
  delegate_to: localhost
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.