在if条件Jinja模板中使用可解析事实

2024-05-29 03:33:56 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我的Ansible Jinja模板中有如下内容

{% for key in filebeat.values() %}
{% for x in key.servers %}
{% if x in {{ ansible_hostname }} %}
text-goes-here
{% endif %}
{% endfor %}
{% endfor %}

执行ansible playbook时,显示以下错误:

AnsibleError:模板化字符串时出现模板错误:应为标记“:”,已为“}

似乎对于Jinja,我无法在if语句中使用{{ansible\u hostname}

是否有某种方法可以在if语句中获取ansible_hostname的值来解决这个问题?我尝试过使用查找和其他组合,但到目前为止运气不佳

提前谢谢


Tags: keyin模板内容forif错误语句
1条回答
网友
1楼 · 发布于 2024-05-29 03:33:56

您从不嵌套Jinja{{...}}模板标记。如果您已经在模板上下文中,您可以通过名称引用变量

{% if x in ansible_hostname %}
text-goes-here
{% endif %}

您已经在{% for ... %}循环中使用了完全正确的语法。你写道:

{% for key in filebeat.values() %}

而不是:

{% for key in {{ filebeat.values() }} %}

{% if ... %}语句也一样

相关问题 更多 >

    热门问题