Jinja прокомментировал командные перерывы шаблонов - PullRequest
2 голосов
/ 07 ноября 2019

Привет, я чувствовал, что мне нужно дать ответ на то, с чем я боролся в течение нескольких часов. Я надеюсь, что когда-нибудь это кому-нибудь поможет.

Я пытался автоматизировать шаблон для развертывания с помощью Ansible:

Содержимое инвентаря:

[splunk_license]
10.10.113.209

[splunk_master]

[splunk_search]
10.10.113.209

[splunk_indexer]
10.10.113.234

Мой шаблон основан на логикео том, определена ли в группе splunk_master хост или нет.

Оригинал код:

{% if inventory_hostname in groups['splunk_indexer'] and 
groups['splunk_master']|length > 0 %}
#{% if blah blah blah blah...%}
# CUSTOMER INDEXES go to $SPLUNK_HOME/etc/master-apps/_cluster/local/indexes.conf
# on Master node

{% elif inventory_hostname in groups['splunk_master'] %}
#{% if some other blah blah blah blah...%}
# CUSTOMER INDEXES go to $SPLUNK_HOME/etc/master-apps/_cluster/local/indexes.conf

{% else %}
# CUSTOMER INDEXES

[nothing]
coldToFrozenDir = $SPLUNK_DB/frozen/nothing/frozendb
thawedPath = $SPLUNK_DB/hotwarm/nothing/thaweddb
coldPath = volume:secondary/nothing/colddb
homePath = volume:primary/nothing/db
{% endif %}

Независимо от того, что я сделал, я не могполучить нижнюю часть после {% else%} для работы. Оказывается, комментарий «#» на самом деле не приводит к игнорированию этой строки, что я имел для целей тестирования, так как мне надоело набирать тексты снова и снова.

Я пытался изменить свой (без комментариев)Если в каждом из заявлений, начиная с воскресенья, я либо получу только верхнюю часть шаблона, то возникнет ошибка, сообщающая о неожиданном 'elif' или о группах, которые не нашли ошибок.

Ответы [ 2 ]

1 голос
/ 08 ноября 2019

Комментарии Jinja выглядят следующим образом {# comment #} при использовании одного # jinja по-прежнему будет оценивать эти строки, вызывающие ошибки или неверно отформатированный файл назначения, см. Документация шаблонов Jinja

1 голос
/ 07 ноября 2019

Собирался обратиться за помощью здесь, но в последнюю минуту попытался удалить все закомментированные строки, и теперь мой шаблон наконец работает.

Рабочий код (закомментированные строки удалены):

{% if inventory_hostname in groups['splunk_indexer'] and 
groups['splunk_master']|length > 0 %}
# CUSTOMER INDEXES go to $SPLUNK_HOME/etc/master-apps/_cluster/local/indexes.conf
# on Master node

{% elif inventory_hostname in groups['splunk_master'] %}
# CUSTOMER INDEXES go to $SPLUNK_HOME/etc/master-apps/_cluster/local/indexes.conf

{% else %}
# CUSTOMER INDEXES

[nothing]
coldToFrozenDir = $SPLUNK_DB/frozen/nothing/frozendb
thawedPath = $SPLUNK_DB/hotwarm/nothing/thaweddb
coldPath = volume:secondary/nothing/colddb
homePath = volume:primary/nothing/db
{% endif %}

Извиняюсь, если это очевидное поведение Джинджи, которое я в любом случае опубликую здесь, чтобы спасти кого-то от потери времени на раскручивание колес в этом вопросе.

...