背景:我有几台运行我开发的服务的服务器。所有这些都应该具有相同的服务副本。
为了确保部署和最新,我使用Ansible,使用功能强大的playbook来部署服务。由于服务器位于不可靠的网络上,我必须定期(在cron作业中)运行playbook以访问之前可能无法使用的服务器。
问题:我认为SaltStack的理念是不同的:我虽然可以"设置状态,编译它并提供给一组小兵。然后,这些仆从在他们自己的闲暇时间来到主人那里,得到他们需要做的任何事情" 。
情况似乎并非如此:跳过部署时无法使用的仆从。
问题:是否存在允许进行异步部署的机制,即在主一次上设置的状态随后将被拉出并应用一旦他们准备好/可以到达主人,由奴才(他们自己)?
具体而言,无需为所有小兵不断重新提供相同的状态,希望过去不可用的小兵现在能够获得更新。
答案 0 :(得分:3)
每当一个小兵连接到主人时,事件总线上就会有一个你可以做出反应的事件。
这是Ansible和Saltstack之间的主要区别。
为了做你想做的事,我会对每个小兵的重新连接做出反应,并尝试应用一个幂等的状态。
您还可以在Saltstack中设置一个计划任务,每隔X分钟运行一次状态并应用所需的配置。
答案 1 :(得分:0)
来自answer的Daniel Wallace(盐开发者):
这是不可能的。
minions连接到发布端口/总线,master设置为new 那辆公共汽车的工作。然后仆从拿起并运行工作,如果 当作业发布时,minion没有连接,那么它就不会 看到工作。