Mla*_*lic 2 python jinja2 ansible
我是新手,Jinja2也许我的问题很菜鸟,但我无法理解。
因此,我使用Jinja2任务Ansible作为模板来创建文件,我在默认变量文件中定义了一个字典,如下所示:
test123:
testA:
name: test1
number: 1
path: /tmp/test.txt
testB:
name: test2
number: 2
path: /tmp/test.txt
Run Code Online (Sandbox Code Playgroud)
现在在我的Jinja2文件中,我想循环遍历该字典并打印字典中定义的所有内容。
我尝试了各种例子,但没有一个是正确的。
例如:
{% for item in test123.values() -%}
{{ item.name }}="{{ item.number }}"
{%- endfor %}
{% for item in test123.testB.values() -%}
{{ item.name }}="{{ item.number }}"
{%- endfor %}
Run Code Online (Sandbox Code Playgroud)
错误信息:
致命:[测试服务器]:失败!=> {“changed”:false,“msg”:“AnsibleUndefinedVariable:'ansible.parsing.yaml.objects.AnsibleUnicode对象'没有属性'名称'”}
我认为最好的办法可能是为此创建一个 while 循环并将所有内容打印出来,但由于Jinja2没有 while 循环,我有点困惑如何做到这一点。
有人知道如何实现这一目标吗?因此,目标再次是打印文件中字典中的所有内容Jinja2。
先感谢您
下面将创建一个包含所有用户名的输出
{% for item in test123.values() %}
name of the user: {{ item.name }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
输出格式:
name of the user: test1
name of the user: test2
Run Code Online (Sandbox Code Playgroud)
如果您需要特定格式的内容,请告诉我所需的输出
| 归档时间: |
|
| 查看次数: |
14037 次 |
| 最近记录: |