因此,我使用基於group_vars的playbook,用於爲各種網站提供IIS設置。Ansible:動態庫存中的Jinja引用
的group_vars包括2種主要類型的字典(含有http://stardict.sourceforge.net/Dictionaries.php下載的列表的類型的字典的複雜列表其中之一。)
複數一個參考了從firstdict中的Jinja2瓦爾(例如{{firstdic.sitename}} )
這與group_vars完美結合,引用由Ansible中的jinja2引擎解析。 但是,當涉及到一個動態庫存時,從第一個字典中引用變量時,整個字典是未設置的。
這裏談到的一些JSON(從我的動態庫存):
"firstdict": { "sitename": "mysitename" }
"complexdict": {"someotherdict": {"sitepath": "{{ firstdict.sitename }}"}}
當使用這個JSON,調試模塊會發現沒有定義complexdict。
但是,jinja2部分正確解析並執行,因爲這將工作。
動態庫存輸入:
"complexdict": {"someotherdict": {"sitepath": "{{ \"foo\" }}"}}
調試模塊返回:
"complexdict": {
"someotherdict": {
"sitepath": "foo"
}
}
有一個變量的優先級問題?還有什麼我應該知道爲什麼它不能像這樣工作?
感謝您的幫助,Ansible大師:)
PS:我已經嘗試過逃跑經驗很多,逃避花括號,雙引號,等等。
是的,你說得對。這工作完美。問題在於json中的一些轉義字符。 非常感謝您的幫助! – pschaeffer