Ich habe eine host_vars
Datei verweisen, die wie folgt aussieht:ansible: Wie Variablen eines bestimmten Schlüssels
---
clients:
cl1:
to_install:
- value11
- value21
to_uninstall:
- value31
cl3:
to_install:
- value12
- value22
- value32
to_uninstall:
- value42
ich die Werte unter cl1/to_install
aufgeführt möchte nur cl1
Client installiert werden, und diejenigen, die unter cl3/to_install
nur zu cl3
installiert werden. Dies sollte durch Schleifen der in to_install
enthaltenen Werte erfolgen. cl1 und cl3 sind ebenfalls in der hosts-Datei definiert. Ich versuche nur, um die Werte zu drucken:
- name: test variables...
hosts: localhost
vars_files:
- path/to/hosts_vars
tasks:
- name: Print softwares to install
debug: msg="Softwares installed on {{ item.key }} are: {{ item.value.to_install }}"
with_dict:
- "{{ clients }}"
aber to_install
beiden Kunden drucken. Ich könnte auch explizit auf den Client verweisen (zum Beispiel mit cl1 anstelle von Schlüssel), aber die Anzahl der Clients, die in host_vars
definiert sind, wird jedes Mal geändert. Wie kann ich nur auf die Werte in to_install
eines bestimmten Clients verweisen? Dank
Danke das hilft sicherlich. Ich habe mich gefragt, wofür "-e" steht, wenn du das Playbook nennst? und wenn ich das 'name'-Feld leer lasse, d. h. ohne' My-first-Machine' funktioniert es auch? – diegus
'-e' steht für Extra-Variable, benutze dies, um die Informationen für spezifische Maschinen wie cl1/cl3 zu erhalten und wenn du den' name' belässt, funktioniert es, aber zeigt dir die komplette Variable anstelle des Maschinennamens. versuchen Sie es und lassen Sie mich wissen, wenn Sie mehr Hilfe brauchen –
Es funktioniert super! Ich habe den Namen weggelassen und verwende nur '{{machine}}', so dass der Name des Clients ausgegeben wird. Danke nochmal – diegus