【发布时间】:2014-09-19 23:40:39
【问题描述】:
使用 Ansible,有没有办法为列表项设置默认值? 例如,如果我在 group_vars 文件中定义一个列表,如下所示:
list1:
item1:
a: 1
item2:
a: 2
b: a2
...
#the list can contain more than two items.
然后我想在某个角色中使用它,但如果未设置 list1.item1.b,我希望它使用计算出的默认值(例如 {{ "a" + list1.item1.a }} 之类的东西)。
我可以为角色中的每个任务设置使用default 过滤器,但我想为角色设置一次,然后在整个角色中使用它。
有没有办法做到这一点?
【问题讨论】:
-
如果您期望 jinja2 模板中的值,那么您可以使用
{{ value | default('...') }}。更好的描述在这里jinja.pocoo.org/docs/dev/templates/#default -
@cdr 是的,但我必须在我想使用它的每个位置都这样做。
标签: ansible