首页 > 解决方案 > Saltstack 从反应堆中排除特定的奴才

问题描述

我应该从运行中排除一些 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'] }}

有用。但是如何排除某些主机,例如按名称?

我尝试在子 sls 文件中使用化合物。但不幸的是,在 sls 文件中排除是行不通的。

标签: salt-stack

解决方案


我会为此使用 [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

推荐阅读