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
不太好,但有效。
欢迎更好(更简单、更明显)的答案。
这也很丑陋,但您可以将整个 include 块包装在一个 if 条件中,以检查 CONDITION-A
或 CONDITION-B
是否为真:
{% if CONDITION-A or CONDITION-B %}
include:
{% if CONDITION-A %}
- foo.bar
{% endif %}
{% if CONDITION-B %}
- blu.bla
{% endif %}
{% endif %}
这样,如果两个条件都为假,jinja 将删除 include 块
我有一个条件包含,如下所示:
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
不太好,但有效。
欢迎更好(更简单、更明显)的答案。
这也很丑陋,但您可以将整个 include 块包装在一个 if 条件中,以检查 CONDITION-A
或 CONDITION-B
是否为真:
{% if CONDITION-A or CONDITION-B %}
include:
{% if CONDITION-A %}
- foo.bar
{% endif %}
{% if CONDITION-B %}
- blu.bla
{% endif %}
{% endif %}
这样,如果两个条件都为假,jinja 将删除 include 块