【发布时间】:2017-03-06 19:39:03
【问题描述】:
所以我使用的是基于 group_vars 的剧本,用于为各种网站提供 IIS 设置。
group_vars 由 2 个主要 dicts 组成(其中一个包含 dicts 列表的复杂 dicts 列表。)
复杂的引用了 Jinja2 中 firstdict 中的变量(例如 {{ firstdic.sitename }})
这与 group_vars 完美配合,引用由 Ansible 中的 jinja2 引擎解析。 但是当涉及到动态库存时,当从第一个字典中引用 vars 时,整个字典是未设置的。
这里有一些 JSON(来自我的动态库存):
"firstdict": { "sitename": "mysitename" }
"complexdict": {"someotherdict": {"sitepath": "{{ firstdict.sitename }}"}}
使用此 JSON 时,调试模块会发现未定义 complexdict。
但是,jinja2 部分已正确解析并执行,因为这会起作用。
动态库存输入:
"complexdict": {"someotherdict": {"sitepath": "{{ \"foo\" }}"}}
调试模块返回:
"complexdict": {
"someotherdict": {
"sitepath": "foo"
}
}
是否存在变量优先级问题?还有什么我应该知道为什么它不能这样工作的吗?
感谢您的帮助,Ansible 大师 :)
PS:我已经尝试了很多经验转义,转义花括号,双引号等等。
【问题讨论】:
标签: ansible jinja2 ansible-inventory