fel*_*has 2 jinja2 ansible ansible-template
我正在使用一个仅包含变量的简单模板。这就是我的剧本中任务的样子(实际上是我的剧本中正在使用的角色):
- name: Ensure the conf file exists
template:
src: file.conf.j2
dest: '/opt/file.conf'
with_items: '{{ myrole }}'
Run Code Online (Sandbox Code Playgroud)
我将变量保留在group_vars中。中的任何变量都file.conf.j2将正确展开,例如,{{ myrole_user }}但是在扩展with_items变量之一(如)时失败{{ myrole.applicationName }}。
我的group_vars看起来像这样:
myrole_user: regularuser
myrole:
- { applicationName: foo, othervar: bar }
Run Code Online (Sandbox Code Playgroud)
这是Ansible错误:
“ msg”:“ AnsibleUndefinedVariable:“列表对象”没有属性“ applicationName””
您定义了一个名为的列表myrole,然后尝试访问key的值myrole.applicationName,因此会收到一条错误消息,指出该列表不包含键/属性(这是正确的-列表仅包含一组有序的元素)。
with_默认情况下,Ansible 循环*设置一个名为变量item,该变量包含当前迭代中元素的值,因此在模板中,您应引用item(而不是myrole保持不变的变量):
{{ item.applicationName }}
Run Code Online (Sandbox Code Playgroud)
*您可以loop_var通过循环控制部分中的设置更改此设置。
| 归档时间: |
|
| 查看次数: |
4404 次 |
| 最近记录: |