Wie erhalte ich den Wert einer Variablen aus dem Inventar, wenn die Variable entweder in der Inventardatei oder im Verzeichnis group_vars
enthalten sein könnte?Ansible: Wie erhält man den Wert einer Variablen aus der Inventar- oder group_vars-Datei?
Zum Beispiel könnte region=place-a
irgendwo in der Inventardatei oder in einer Datei in der group_vars
sein. Ich möchte, dass ein Befehl in der Lage ist, diesen Wert mithilfe von ansible oder etwas abrufen diesen Wert abrufen. wie:
$ ansible -i /somewhere/production/web --get-value region
place-a
Das würde mir mit Bereitstellungen helfen und wissen, in welcher Region bereitgestellt wird.
.
Eine längere Erklärung zu klären, sieht mein Inventar Struktur wie folgt aus:
/somewhere/production/web
/somewhere/production/group_vars/web
Der Inhalt mit den Variablen der Inventardatei, /somewhere/production/web
wie folgt aussieht:
[web:children]
web1 ansible_ssh_host=10.0.0.1
web2 ansible_ssh_host=10.0.0.2
[web:vars]
region=place-a
Ich konnte die Wert aus der Inventardatei durch einfaches Parsen der Datei. etwa so:
$ awk -F "=" '/^region/ {print $2}' /somewhere/production/web
place-a
Aber diese Variable in der group_vars
Datei sein könnte, auch. Zum Beispiel:
$ cat /somewhere/production/group_vars/web
region: place-a
Oder es könnte wie ein Array aussehen:
$ cat /somewhere/production/group_vars/web
region:
- place-a
ich nicht suchen wollen und alle möglichen Dateien zu analysieren.
Hat Ansible eine Möglichkeit, die Werte zu erhalten? So ähnlich wie mit --list-hosts
?
$ ansible web -i /somewhere/production/web --list-hosts
web1
web2
> "NEIN es gibt keine CLI-Option, um den Wert von Variablen zu erhalten." Schade, aber danke. Davon wollte ich überzeugt sein. – user3358549