Jinja评论了命令中断模板

您觉得我需要为我几个小时以来一直在苦苦挣扎的事情提供答案。希望有一天能对某人有所帮助。

我一直在尝试自动化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%}工作之后我都无法找到最底层的部分。 原来注释掉“#”实际上并不会导致该行被忽略,出于厌倦一遍又一遍地键入内容,我出于测试目的不得不使用该行。

从星期日开始,我试图修改我的(未注释的)if语句,而我要么只获得模板的顶部,要么是一个严重的错误,抱怨意外的“ elif”或未找到组错误。

luxi19830817 回答:Jinja评论了命令中断模板

想要在此处寻求帮助,但最后一分钟尝试删除所有已注释的行,现在我的模板终于可以使用了。

工作代码(删除了注释行):

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

很抱歉,如果这是Jinja的明显行为,我想无论如何我都会在这里发布,以免某人浪费时间在这个问题上浪费时间。

,

Jinja注释如下{# comment #},如果使用单个# jinja仍将评估那些导致错误或目标文件格式错误的行,请参见Jinja Templating docs

本文链接:https://www.f2er.com/3143083.html

大家都在问