Ansible如何将playbook中块的所有变量传递到Jinja2模板
解决方案
你只需要修改blockA.example.j2为以下内容即可实现需求:
{% for key, value in varBlockA.items() %} {{ key }}: {{ value }} {% endfor %}
实现说明
你在playbook中定义的varBlockA是字典类型变量,Jinja2可以通过字典的items()方法同时遍历获取每个键值对的键名(对应varA、varB这类参数名)和对应参数值,不需要在模板中硬编码任何参数名。后续你仅需要在playbook的varBlockA字段下增删键值对,模板无需修改就能自动适配输出所有参数。
渲染后得到的最终效果完全符合要求:
[blockA] varA: value1 varB: value2
内容的提问来源于stack exchange,提问作者hock
相关产品推荐
相关产品推荐

