Jinja2 For Loop над списком словарей YAML - PullRequest
0 голосов
/ 20 марта 2019

Я довольно новичок в Jinja2, и у меня есть проблема, которую я не могу решить, что бы я ни пытался.Я пытаюсь создать файл конфигурации для устройства, используя шаблон Jinja2 и некоторые переменные файлы, которые я создал.Я не могу заставить его работать вообще, когда я задаю список словарей для моего файла переменных YAML.

template:

{% 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

1 Ответ

1 голос
/ 20 марта 2019

выглядит хорошо.Игра ниже

- name: Template
  template:
    src: template.j2
    dest: test.txt

дает

# 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 

с шаблоном

# cat template.j2
{% for item in VLANS %}
vlan {{ item.id }}
  name {{ item.name }}
  vn-segment {{ item.vni }}
{% endfor %}
...