Variable ändern in Ansible template auf Basis von Gruppe

Habe ich eine Ansible Inventar-Datei, die ein bisschen wie diese:

[es-masters]
host1.my-network.com

[es-slaves]
host2.my-network.com
host3.my-network.com

[es:children]
es-masters
es-slaves

Ich habe auch ein Jinja2 template-Datei muss einen bestimmten Wert auf "true" gesetzt, wenn ein host gehört zu den "es-masters" - Gruppe.

Ich bin mir sicher, dass es eine einfache Möglichkeit, es zu tun, aber nach etwas Googeln und dem Lesen der Dokumentation, habe ich gezeichnet leer.

Ich bin auf der Suche nach etwas einfachen und programmatischen wie diese gehen in der Jinja2 template:

{% if hostvars[host][group] == "es-masters" %}
node_master=true
{% else %}
node_master=false
{% endif %}

Irgendwelche Ideen?

  • Sind Sie vorbei hostvars auf die render-Funktion oder erwarten Sie jinja2 Zugriff hostvars?
  • Das war nur ein Beispiel, wirklich - was ich wirklich Suche, ist eine programmatische Art und Weise zu "sehen" die Gruppen, die einen bestimmten host Mitglied ist, und einen Weg finden, ändern Sie eine variable in einer Vorlage, die Grundlage.
  • Docs: neben der Speicherung von Variablen direkt in der INI-Datei, host-und Gruppe-Variablen gespeichert werden können in einzelnen Dateien relativ zu der inventory-Datei. Diese variable Dateien im YAML-format. Siehe YAML-Syntax wenn Sie neu in YAML. Der YAML-Bibliothek enthalten ist, mit der AppEngine SDK
Schreibe einen Kommentar