Джинджа2 л oop через функцию диапазона - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть jinja2, извлекающий переменные из файла yaml, но шаблон не работает даже до того, как он может попасть в часть yml. Я думаю, что диапазон должен работать в Jinja, но он продолжает падать. Мой скрипт настроит стек коммутаторов из 5 48 коммутаторов портов = 240 портов:

{% for n in range(240) %}
  {% if n+1 < 16 %}
  interface GigabitEthernet2/0/{{ n+1 }}
    description {{ yml_vars.SERVER['description'] }}
    switchport mode {{ yml_vars.SERVER['mode'] }}
    switchport access vlan {{ yml_vars.SERVER['vlan_id'] }}
    spanning-tree portfast{{ yml_vars.SERVER['portfast'] }}
  {% elif n+1 > 16 and n < 19 %}
  interface GigabitEthernet2/0/{{ n+1 }}
    description {{ yml_vars.WIFI_PORT['description'] }}
    switchport mode {{ yml_vars.WIFI_PORT['mode'] }}
    switchport access vlan {{ yml_vars.WIFI_PORT['native'] }}
    spanning-tree portfast{{ yml_vars.WIFI_PORT['stp_speed'] }}
  {% endif %}
{% endfor %}

Моя ошибка: файл "/home/blamb/Python_Projects/3850_Replacement_Netmiko/template.j2", строка 2, в? {% для n в диапазоне (10)%}

Синтаксическая ошибка: недопустимый синтаксис: /home/blamb/Python_Projects/3850_Replacement_Netmiko/template.j2, строка 2, позиция 2 {% для n в диапазоне (10) %}

...