盐主人可以为不可用的奴才提供一个州吗?

时间:2018-01-21 07:36:44

标签: salt-stack

背景:我有几台运行我开发的服务的服务器。所有这些都应该具有相同的服务副本。

为了确保部署和最新,我使用Ansible,使用功能强大的playbook来部署服务。由于服务器位于不可靠的网络上,我必须定期(在cron作业中)运行playbook以访问之前可能无法使用的服务器。

问题:我认为SaltStack的理念是不同的:我虽然可以"设置状态,编译它并提供给一组小兵。然后,这些仆从在他们自己的闲暇时间来到主人那里,得到他们需要做的任何事情"

情况似乎并非如此:跳过部署时无法使用的仆从。

问题:是否存在允许进行异步部署的机制,即在主一次上设置的状态随后将被拉出并应用一旦他们准备好/可以到达主人,由奴才(他们自己)?

具体而言,无需为所有小兵不断重新提供相同的状态,希望过去不可用的小兵现在能够获得更新。

2 个答案:

答案 0 :(得分:3)

每当一个小兵连接到主人时,事件总线上就会有一个你可以做出反应的事件。

Reactor

这是Ansible和Saltstack之间的主要区别。

为了做你想做的事,我会对每个小兵的重新连接做出反应,并尝试应用一个幂等的状态。

Idempotent

您还可以在Saltstack中设置一个计划任务,每隔X分钟运行一次状态并应用所需的配置。

Scheduled task

答案 1 :(得分:0)

来自answerDaniel Wallace(盐开发者):

  

这是不可能的。

     

minions连接到发布端口/总线,master设置为new   那辆公共汽车的工作。然后仆从拿起并运行工作,如果   当作业发布时,minion没有连接,那么它就不会   看到工作。