【发布时间】:2018-09-19 01:21:48
【问题描述】:
我在 Ansible 中用一组变量模板化一个文件。
我的defaults/main.yaml 文件中的一些条目是:
jenkins_plugins:
'ant': '1.8'
'antisamy-markup-formatter': '1.5'
'apache-httpcomponents-client-4-api': '4.5.3-2.1'
'kubernetes': '1.3'
这个键值对中的一个应该被注入到我的模板文件config.xml.j2的这一行中:
<markupFormatter class="hudson.markup.RawHtmlMarkupFormatter" plugin="antisamy-markup-formatter@{{ jenkins_plugins.antisamy-markup-formatter }}">
所以基本上我的最终结果应该是这样的:
<markupFormatter class="hudson.markup.RawHtmlMarkupFormatter" plugin="antisamy-markup-formatter@1.5">
但是当我运行调用这个模板文件的剧本时,我得到了错误:
TASK [jenkins : Generate config.xml file.] ****************************************
fatal: [default]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'antisamy'"}
如果我删除所有破折号-,它会正常工作,但这是我无法做到的,因为我还必须下载这些插件,并且我需要使用破折号卷曲正确的名称。
为什么 jinja 模板在 - 之后跳过所有内容?
【问题讨论】: