SaltStack:条件包括:如果为空则出错

SaltStack: conditional include: Error if empty

我有一个条件包含,如下所示:

include:
{% if CONDITION-A %}
  - foo.bar
{% endif %}
{% if CONDITION-B %}
  - blu.bla
{% endif %}

这在大多数情况下都有效。

但如果 CONDITION-A 和 CONDITION-B 为假则失败。

如何处理?

我现在用这个模式:

include:
  - dummy
{% if CONDITION-A %}
  - foo.bar
{% endif %}
{% if CONDITION-B %}
  - blu.bla
{% endif %}

dummy.sls:

dummy-no-op:
  test.nop

不太好,但有效。

欢迎更好(更简单、更明显)的答案。

Docs for test.nop

这也很丑陋,但您可以将整个 include 块包装在一个 if 条件中,以检查 CONDITION-ACONDITION-B 是否为真:

{% if CONDITION-A or CONDITION-B %}
include:
  {% if CONDITION-A %}
  - foo.bar
  {% endif %}
  {% if CONDITION-B %}
  - blu.bla
  {% endif %}
{% endif %}

这样,如果两个条件都为假,jinja 将删除 include 块