Saltstack 从反应器中排除来自 运行 的特定小兵
Saltstack exclude specific minions from run from reactor
我应该从 运行
中排除一些 sls
我用reactor在minions启动时应用highstate,像这样:
/etc/salt/master.d/reactor/start.sls:
reactor: # Master config section "reactor"
- 'salt/minion/*/start': # Match tag "salt/minion/*/start"
- /srv/salt/reactor/start.sls # Things to do when a minion starts
/srv/salt/reactor/start.sls:
highstate_run:
local.state.apply:
- tgt: {{ data['id'] }}
有效。但是如何排除某些主机,例如按名称排除主机?
我尝试在 sub sls 文件中使用化合物。但不幸的是,在 sls 文件中排除不起作用。
我会为此使用 [jinja][1]。
举一个简单的例子,如果你想排除以'region1'开头的minion名称,你可以这样做
{% if not data['id'].startswith('region1') %}
highstate_run:
local.state.apply:
- tgt: {{ data['id'] }}
{% endif %}```
[1]: https://docs.saltstack.com/en/latest/topics/jinja/index.html
我应该从 运行
中排除一些 sls我用reactor在minions启动时应用highstate,像这样:
/etc/salt/master.d/reactor/start.sls:
reactor: # Master config section "reactor"
- 'salt/minion/*/start': # Match tag "salt/minion/*/start"
- /srv/salt/reactor/start.sls # Things to do when a minion starts
/srv/salt/reactor/start.sls:
highstate_run:
local.state.apply:
- tgt: {{ data['id'] }}
有效。但是如何排除某些主机,例如按名称排除主机?
我尝试在 sub sls 文件中使用化合物。但不幸的是,在 sls 文件中排除不起作用。
我会为此使用 [jinja][1]。 举一个简单的例子,如果你想排除以'region1'开头的minion名称,你可以这样做
{% if not data['id'].startswith('region1') %}
highstate_run:
local.state.apply:
- tgt: {{ data['id'] }}
{% endif %}```
[1]: https://docs.saltstack.com/en/latest/topics/jinja/index.html