将值插入模板的Ansible和Template文件

时间:2016-05-05 21:47:39

标签: python-2.7 templates dictionary ansible jinja2

我现在遇到问题我有一些aws子网的地图,其路由表就像这样(通过ansible输出示例):

"subnetwork_route_map": [
    {
        "route_table_id": "rtb-xxxxxx",
        "subnet_id": "subnet-xxxxxx"
    },
    {
        "route_table_id": "rtb-xxxxxx",
        "subnet_id": "subnet-xxxxxxx"
    },
    {
        "route_table_id": "rtb-xxxxxx",
        "subnet_id": "subnet-xxxxxx"
    }
]

我希望将这些值插入到模板文件中,我认为在看到一些示例后我可以做这样的事情:

{% for item in subnetwork_route_map %}
{{ item[1]['subnet_id'] }},{{ item[1]['route_table_id'] }}§
{% endfor %}

当我尝试这个时我得到一个错误我从ansible得到了一个错误:

fatal: [localhost]: FAILED! => {"failed": true, "msg": "dict object has no element 1"}

1 个答案:

答案 0 :(得分:0)

subnetwork_route_map是一个词典列表item是一个单独的词典,您不需要[1]部分:

{% for item in subnetwork_route_map %}
    {{ item['subnet_id'] }},{{ item['route_table_id'] }}§
{% endfor %}