假设您想要将某些状态应用于一组 minion,例如所有 ubuntu 客户端。当我们应用这些状态时,可能有些 minion 处于离线状态。
状态在消息总线中保留多长时间才能推送到 Minion 上?您建议采取哪些策略来解决这个问题,并在 Minion 重新上线时更改它们的状态?有没有比运行更好的方法来使 Minion 拉取状态salt-call state.highstate
?
答案1
盐伴随着所谓的反应堆系统,应该可以满足您的需求。
以下内容未经测试,取自链接的文档。
/etc/salt/master.d/reactor.conf
:
reactor:
- 'salt/minion/*/start': # Match the start event
- /srv/reactor/start.sls # Things to do when a minion starts
/srv/reactor/start.sls
:
highstate_run:
local.state.apply:
- tgt: {{ data['id'] }} # data included event data, id is the minion id.
这应确保每个minionstate.highstate
在打开与 salt master 的连接后生效。