首页 > 解决方案 > Ansible Jinja2 for 循环变量在“查找”中失去作用域

问题描述

在 jinja2 模板中,我再次迭代一个已经循环的字典值,该字典值是通过 ansible 任务使用 dict2items 设置的。这是按预期工作的。在 jinja2 'for' 循环中调用该变量有效,除非在文件查找中引用。这是预期的行为吗?如果是这样,我还能怎么做?

{% for filename in item.value.filenames %}
{{ item.value.filenames[filename] }} #works

{{ filename }} #works

{{ lookup('file', '/somedir/{{ item.value.filenames[filename] }}') }} #does not work, variable filename undefined

{{ lookup('file', '/somedir/{{ filename }}') }} #does not work, variable filename undefined

{% endfor %}

标签: ansiblejinja2ansible-template

解决方案


推荐阅读