列在jinja2模板中的列表中

时间:2017-05-30 14:02:17

标签: python ansible jinja2

我定义了以下变量:

datasources:
  - { name: 'dsname', target: ['server1', 'server2'] }

运行以下剧本:

---
- name: Create file
  template: src="datasource.py" dest="/tmp/datasource.py"

我正在尝试构建的Jinja模板如下:

{% for ds_target in datasources.target 
%} Target:{{ ds_target }} {%
endfor %}

如何让模板具有以下输出?

Target:server1 Target:server2 

任何提示都将受到高度赞赏

3 个答案:

答案 0 :(得分:1)

当然,您需要遍历datasources本身,然后在每次迭代中访问target

{% for ds in datasources %} Target:{{ ds.target }} {% endfor %}

答案 1 :(得分:0)

如果您的问题是“我该如何定义datasources: - name: dsname target: - server1 - server2 列表以使我的模板正常工作?”,那么答案是:

datasources:
  - { name: 'dsname', target: ['server1', 'server2'] }

或其他表示法:

{{1}}

答案 2 :(得分:0)

我添加了另一个循环来查看列表" target",所以我的代码看起来像这样:

set-authenticodesignature

非常感谢你们!