活跃的傀儡特工如何处理倒下的傀儡大师?

活跃的傀儡特工如何处理倒下的傀儡大师?

假设 Puppet 代理正在刷新,而我停止了 Puppet Master 服务。这是否可能会导致不完整或损坏的设置被推出,就像我下面描述的一样?

背景:

我正在对我的 puppet 配置文件使用持续集成和版本控制(Bamboo 和 Stash)。

我在重新部署过程中遇到了一些问题。当我为生产分支执行拉取请求时,这个问题最为明显,但它也会在其他地方发生。Puppet 代理可能试图访问在被推回之前已被删除的资源文件。虽然这种情况很少见,但已经造成了各种混乱,尤其是在使用文件语句推回整个目录的模块中。

我想到的最明智的做法是在部署期间停止 Puppet Master 服务,然后重新启动它,但我没有看到在 PuppetMaster 仍在使用时停止它会产生什么后果。

答案1

对于递归部署来说,假设上次运行期间没有任何文件发生变化,那么这难道不是一个问题吗,因此之前设置的文件与之后的文件相同?

没错。替换文件的决定是基于客户端和服务器的 md5 哈希值的比较。如果您在运行过程中停止主服务器,它应该只会在所有剩余的文件资源上出错 - 您不会最终得到文件的部分副本。

答案2

木偶戏有几个不同的部分。

  1. 节点从自身检索事实,并将其发送到 Puppet 主服务器
  2. Puppet Master 服务器从服务器接受这些事实,并编译一个目录,该目录应在报告其事实的节点上运行。这包括所管理文件的内容。
  3. 该目录被发送到节点并且节点在本地应用其目录。
  4. 节点报告其运行

因此,根据您在此过程中的位置,运行将直接失败,或者节点的运行将继续但在报告时失败。

不应该存在您所提到的文件损坏的问题。

相关内容