Ale*_*lex 8 templating ansible ansible-template
准备模板时出现错误。谁能告诉你如何解决?
\n如有必要,还可以编辑变量。
\n vars:\n All\xd0\xa1ountry:\n - "name1"\n - "name2"\n name1:\n - "region1a" \n - "region1b" \n name2:\n - "region2a"\n - "region2b"\nRun Code Online (Sandbox Code Playgroud)\n代码
\n{% for country in All\xd0\xa1ountry %} \n{name: "{{ country }}",{% for count in {{ country }} %}My country = {{ count }}\n{% endfor %}{% endfor %}\nRun Code Online (Sandbox Code Playgroud)\n结果是一个错误\nAnsibleError:模板化字符串时出现模板错误:预期标记“:”,得到“}”
\n是的,最后我希望得到整个列表的输出
\nname: "name1 My country = "region1a" My country = "region1b" \nname: "name2: My country = "region2a" My country = "region2b"\nRun Code Online (Sandbox Code Playgroud)\n
β.ε*_*.βε 10
发生这种情况是因为您在 Jinja 的语句分隔符中嵌套了{{表达式分隔符:{%
{% for count in {{ country }} %}
{# ^--- right there #}
Run Code Online (Sandbox Code Playgroud)
为了实现您想要做的事情,您可以使用查找vars。
鉴于剧本:
{% for count in {{ country }} %}
{# ^--- right there #}
Run Code Online (Sandbox Code Playgroud)
这产生了回顾:
- hosts: all
gather_facts: no
tasks:
- debug:
msg: >
{% for country in AllCountry %}
{name: "{{ country }}",{% for count in lookup('vars', country) %}My country = {{ count }}
{% endfor %}{% endfor %}
vars:
AllCountry:
- name1
- name2
name1:
- region1a
- region1b
name2:
- region2a
- region2b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30086 次 |
| 最近记录: |