2017-09-26 21 views
0

全局變量group_vars/all.yml引用字典值

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

我已經創建,其接受輸入變量site,它可以具有值website_Awebsite_B Ansible角色health-check。該角色將根據輸入變量site執行一些操作。我嘗試了以下設置,但它沒有奏效。

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

按照該FAQ,我們可以使用HOSTVARS或瓦爾字典這項工作,但我並沒有在取得成功。

回答

1

你有一種不平衡的報價。

嘗試chdir: "{{ 'dir.' + site }}"chdir: dir.{{ site }}

+0

這兩種情況下失敗,相同的錯誤: '文件\ 「/ tmp目錄/ ansible_qRiFL5/ansible_module_command.py \」,線路163,在主\ r \ n os.chdir(CHDIR個)\ r \ nOSError:[錯誤2]沒有這樣的文件或目錄:「/root/dir.website_A'\r\n」,' 它正試圖訪問無效路徑 '/root/dir.website_A',而不是'在/ var/www/html等/ A' –

+0

感謝@Konstantin蘇沃洛夫的及時答覆 這奏效了: 'CHDIR: 「{{DIR [現場]}}」' –

+0

哦,夥計。在這種情況下,_variable concatenation_是一個頗具誤導性的術語。 –