2017-12-16 3 views
-2

Wenn ich das folgende YAML-Listenelement habe (ich glaube, so heißt es), das als Schlüssel/Wert-Paar ausgedrückt wird, wie lese ich den Wert? Ich habe die YAML-Dokumentation durchgesehen und habe diese Situation nicht besprochen.Zugriff auf Wert aus YAML-Schlüssel/Wert-Paarlistenelement?

--- 
apache_vhosts: 
    - servername: localhost 
    documentroot: "/var/www/html" 

möchte ich so etwas wie dies zu tun und setzen install_path auf "/ var/www/html":

... 
# This doesn't work 
install_path: "{{ apache_vhosts.servername[documentroot] }}" 
+2

Sie * nicht lesen einen Wert * in YAML, weil YAML keine Programmiersprache ist. Es scheint, dass Sie eine Templating-Sprache verwenden, aber sagen Sie uns nicht, welche oder in welchem ​​Kontext. – flyx

+0

Ich habe die Tags ansible und jinja2 hinzugefügt. Bitte fügen Sie beim nächsten Mal so viel Kontext wie nötig hinzu, damit andere verstehen, woran Sie arbeiten. YAML ist eine eigene Sprache, die nicht nur in Ansible verwendet wird. – tinita

+0

Es tut mir leid. Dies ist ein Abschnitt aus einem Ansible-Playbook und ich versuche, eine YAML-Variable mit dem Wert einer anderen Variablen höher in der Datei zuzuweisen. – William

Antwort

0

apache_vhosts eine Liste der Zuordnungen ist. Sie versuchen, aus dieser Liste auf den Schlüssel servername zuzugreifen, aber Listen haben keine Schlüssel. Auch ich weiß nicht, was Sie mit .servername[documentroot] erreichen wollen.

Meine Vermutung ist, was Sie brauchen: apache_vhosts[0].documentroot (das erste Element des apache_vhosts -> Schlüssel documentroot)

haben Sie einen Blick auf die Jinja2 Template Docs. Edit: Wahrscheinlich besser für Ihren Fall: Ansible Templating

Verwandte Themen