2017-09-26 4 views
0

Globale Variable group_vars/all.ymlReferenzierung Wörterbuch Werte

--- 
dir: 
    website_A: /var/www/html/a 
    website_B: /var/www/html/b 

Ich habe health-check ansible Rolle geschaffen, die Eingangsgröße site akzeptiert, kann sie haben Werte website_A oder website_B. Diese Rolle führt einige Aktionen basierend auf der Eingabevariablen site aus. Ich habe es mit den folgenden Einstellungen versucht, aber es hat nicht funktioniert.

chdir: "{{ "dir." + site }}"

Gemäß der FAQ, können wir diese Arbeit mit hostvars machen oder Vars Wörterbuch, aber ich habe das nicht gelingt.

Antwort

1

Sie haben eine Art unausgewogener Zitate.

Versuchen chdir: "{{ 'dir.' + site }}" oder chdir: dir.{{ site }}

+0

beiden Fällen mit dem gleichen Fehler fehlgeschlagen: 'File \ "/ tmp/ansible_qRiFL5/ansible_module_command.py \", Leitung 163, in den Haupt \ r \ n os.chdir (Chdir) \ r \ nOSError: [Errno 2] Keine Datei oder kein Verzeichnis: '/root/dir.website_A'\r\n ",' Es wird versucht, auf den ungültigen Pfad' /root/dir.website_A 'zuzugreifen statt . '/ var/www/html/a' –

+0

Dank @Konstantin Suvorov für Ihre prompte Antwort Dies hat den Trick: 'chdir: "{{dir [site]}}"' –

+0

Oh, Mann. .. _variable Verkettung_ ist in diesem Fall ziemlich irreführender Begriff. –