LINUX.ORG.RU

Шаблонизация jinja2

 


1

1

Всем привет. Пытаюсь разобраться с jinja2, но что-то не выходит. Подскажите, пожалуйста, как правильно перебрать переменную данного вида?

apps:
  - name: app-1
    logs:
      access: yes
      error: no

  - name: app-2
    logs:
      access: no
      error: yes

Собственно что требуется: запустить playbook, который применит шаблон. В шаблоне в зависимости от значения access и error создаётся тот или иной файл. Как добраться до значений access и error ? Пробовал вот так - item.logs[access] - ничего не происходит. Если задавать вот так - item.logs.access, то сообщение об ошибке, что переменная access не определена.

Вот так выглядит шаблон. Может в нём ошибка?

{% for item in vhosts %}
server {
  listen 80;

  server_name {{ item.name }}.mysite.com;
  {% if item.logs[access] == "yes" %}
     access_log  /var/log/nginx/{{ item.name }}_access.log
  {% endif %}

  {% if item.logs[error] == "yes" %}
     error_log /var/log/nginx/{{ item.name }}_error.log
  {% endif %}
  return 202 "OK";
}
{% endfor %}

Ответ на: комментарий от Difrex

Спасибо. Помогло. А подскажите ещё, пожалуйста, про кавычки - это знание пришло с опытом или оно прям написано где-то, что так надо делать? Просто находил примеры/документацию и такого там не увидел, не исключаю, что мог просмотреть.

Marmon ()