首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使盐状态下的IF OR Jinja逻辑工作

无法使盐状态下的IF OR Jinja逻辑工作
EN

Stack Overflow用户
提问于 2020-12-02 00:54:16
回答 1查看 86关注 0票数 0

我需要从获取软件安装的Salt状态中排除标记了这些自定义添加颗粒中的任何一个的某些附属物:

代码语言:javascript
复制
exclude:
  - applications
  - application_xyz

下面的语法是有效的,并防止任何带有“应用程序”粒度的附属物安装任何东西:

代码语言:javascript
复制
{% if not "applications" in grains.get('exclude', []) %}

但现在我需要更具体,这就是我认为使用“或”逻辑有意义的地方。到目前为止,我已经尝试了以下两种方法,但都不起作用:

代码语言:javascript
复制
{% if not "applications" or "application_xyz" in grains.get('exclude', []) %}

{% if not "applications" in grains.get('exclude', []) or not "application_xyz" in grains.get('exclude', [])  %}

我使用了How to use logic operators in jinja template on salt-stack (AND, OR)作为参考,所以我觉得我可能是在正确的轨道上。

任何帮助或建议都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2020-12-03 03:01:08

对于遇到同样情况的任何人,我发现下面的方法非常有效。

代码语言:javascript
复制
{% if not ['applications','application_xyz'] | intersect(grains.get('exclude', [])) %}

在这里,任何带有应用程序或application_xyz的助手都将被忽略。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65094917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档