使用jinja2使用不同的密钥访问嵌套的YAML

时间:2019-07-03 16:52:53

标签: ansible yaml jinja2

使用不均匀的嵌套字典映射渲染Jinja模板失败。错误始终与“字典对象”没有属性<“某些键”>有关。

{% for rule in INPUT %}
   {{ rule }}
   {{ INPUT[rule].target }}
{% endfor %}
INPUT:
   rule1:
     src: 1.1.1.1
     target: ACCEPT
   rule2:
     inintf: eth0
FORWARD:
   rule4:
     outintf: br-6b
FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'target'"}

如果yaml文件如下所示,那么它将起作用。

INPUT:
   rule1:
     src: 1.1.1.1
     target: ACCEPT
   rule2:
     inintf: eth0
     target: ACCEPT
FORWARD:
   rule4:
     target: DOCKERN
     outintf: br-6b

有什么方法可以使其与非均匀词典映射一起工作?

2 个答案:

答案 0 :(得分:1)

错误消息

  

“ msg”:“ AnsibleError:模板化字符串时模板错误:意外的']'

是括号不平衡的结果

-A INPUT -d {{ INPUT[rules].dest] }}

答案 1 :(得分:0)

您是否尝试过使用iptables模块?