Jinja2 For 遍历 YAML 字典列表
Jinja2 For Loop over a YAML List of Dictionaries
我是 Jinja2 的新手,我有一个问题,无论我尝试什么都无法解决。我正在尝试使用 Jinja2 模板和我创建的一些变量文件为设备创建配置文件。当我为我的 YAML 变量文件指定字典列表时,我似乎根本无法让它工作。
模板:
{% for id in VLANS %}
vlan {{ id.id }}
name {{ id.name }}
vn-segment {{ id.vni }}
{% endfor %}
可变文件:
VLANS:
- id: 9
name: "VLAN9"
vni: 109
- id: 10
name: "VLAN10"
vni: 110
- id: 11
name: "VLAN11"
vni: 111
- id: 12
name: "VLAN12"
vni: 112
看起来不错。下面的戏
- name: Template
template:
src: template.j2
dest: test.txt
给予
shell> cat test.txt
vlan 9
name VLAN9
vn-segment 109
vlan 10
name VLAN10
vn-segment 110
vlan 11
name VLAN11
vn-segment 111
vlan 12
name VLAN12
vn-segment 112
使用模板
shell> cat template.j2
{% for item in VLANS %}
vlan {{ item.id }}
name {{ item.name }}
vn-segment {{ item.vni }}
{% endfor %}
我是 Jinja2 的新手,我有一个问题,无论我尝试什么都无法解决。我正在尝试使用 Jinja2 模板和我创建的一些变量文件为设备创建配置文件。当我为我的 YAML 变量文件指定字典列表时,我似乎根本无法让它工作。
模板:
{% for id in VLANS %}
vlan {{ id.id }}
name {{ id.name }}
vn-segment {{ id.vni }}
{% endfor %}
可变文件:
VLANS:
- id: 9
name: "VLAN9"
vni: 109
- id: 10
name: "VLAN10"
vni: 110
- id: 11
name: "VLAN11"
vni: 111
- id: 12
name: "VLAN12"
vni: 112
看起来不错。下面的戏
- name: Template
template:
src: template.j2
dest: test.txt
给予
shell> cat test.txt
vlan 9
name VLAN9
vn-segment 109
vlan 10
name VLAN10
vn-segment 110
vlan 11
name VLAN11
vn-segment 111
vlan 12
name VLAN12
vn-segment 112
使用模板
shell> cat template.j2
{% for item in VLANS %}
vlan {{ item.id }}
name {{ item.name }}
vn-segment {{ item.vni }}
{% endfor %}