我正在尝试在init.sls中使用自定义粒度,但if-Statements永远不会成立。这是我的自定义谷物:
salt '*' grains.item cluster
proxy2.example.com:
cluster:
passive
proxy1.example.com:
cluster:
active
我的init.sls调用:
{% if grains['cluster'] == 'active' %}
nginx.signal:
module:
- run
- order: 15
{% endif %}
但是永远不会调用nginx.signal。为什么呢?
另外,如何向运行命令提供参数'reload'?
答案 0 :(得分:0)
我相信您可以使用以下内容提供reload
参数:
nginx.signal:
module:
- run
- signal: reload
答案 1 :(得分:0)
似乎测试没有返回true,因为群集粒度返回的值是列表,而不是字符串。例如,要在列表中搜索字符串" passive",请使用语法" foo"在酒吧[" baz"],而不是酒吧[" baz"] ==" foo"。
>>> grains = {}
>>> grains["cluster"] = ["passive"]
>>> grains["cluster"]
['passive']
>>> grains["cluster"] == "passive"
False
>>> "passive" in grains["cluster"]
True
>>>
如果你的谷物正在返回一个列表,这应该修复你的模板:
{% if "active" in grains.get("cluster","") %}
它应该返回true。