[英]Jinja2 Templating: Conditionally forming a set from Ansible Variables
我正在尝试使用Jinja2模板化和Ansible变量生成一些配置。 我当前使用的框架不允许我在Ansible中执行以下操作,因此我希望在Jinja2中获得相同的结果。
我的Ansible变量如下:
---
Top:
inner:
type: type1
other_random_variable:
- random: 1
inner2:
type: type2
inner3:
type: type1
当我遍历循环并形成配置文件时,上述结构可以很好地工作:
{% if Top is defined %}
{% for inner_vars in Top %}
# perform substitution here
{% endfor %}
{% endif %}
我想做的是形成一组类型,以便可以为每种唯一类型生成另一个配置。
我有什么办法可以遍历Top
并将项添加到集合中?
我认为我有一个可行的解决方案:
{% set types = [] %}
{% if Top is defined%}
{% for inner_var in Top %}
{% if types.append(Top[inner_var].type) %}{% endif %}
{% endfor %}
{% endif %}
{{ types|unique }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.