我需要从获取软件安装的Salt状态中排除标记了这些自定义添加颗粒中的任何一个的某些附属物:
exclude:
- applications
- application_xyz下面的语法是有效的,并防止任何带有“应用程序”粒度的附属物安装任何东西:
{% if not "applications" in grains.get('exclude', []) %}但现在我需要更具体,这就是我认为使用“或”逻辑有意义的地方。到目前为止,我已经尝试了以下两种方法,但都不起作用:
{% 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)作为参考,所以我觉得我可能是在正确的轨道上。
任何帮助或建议都是非常感谢的!
发布于 2020-12-03 03:01:08
对于遇到同样情况的任何人,我发现下面的方法非常有效。
{% if not ['applications','application_xyz'] | intersect(grains.get('exclude', [])) %}在这里,任何带有应用程序或application_xyz的助手都将被忽略。
https://stackoverflow.com/questions/65094917
复制相似问题