有人可以帮我处理傀儡节点排序吗,我知道如何使用控制类内部的序列,require, before, subscribe etc
但我需要 100% 确定我的 node2 仅在 node1 之后执行,因为我的 node2 没有 node1 就无法工作。
答案1
在 Puppet 中无法执行此操作。如果您需要按特定顺序跨服务器执行 Puppet 运行,则需要使用其他工具来协调运行。
答案2
假设您使用的是 Linux 主机,但您也可以使用 bash 的替代方法对 Windows 主机执行相同操作。一种比较通用的方法可能是以下方法...
在节点 1 的 puppet 运行结束时,在节点 2 上创建一个特定文件。使用 ssh 将其作为 puppet 资源中的命令来完成。Ssh 可用于在远程主机上执行命令来创建文件 - 非常容易完成。您可以将它放在节点 1 上的 puppet 运行结束时附近的 exec 资源中。
在节点 2 上创建一个 bash 脚本,该脚本基本上等待文件出现,然后在文件出现时返回成功。可以在节点 2 上运行 puppet 的早期使用文件资源创建此脚本。简单的 bash 脚本。
在节点 2 的 puppet 运行即将开始时,创建 bash 脚本后,在 puppet exec 资源中运行相同的 bash 脚本。它将等待文件创建 - 基本上等待节点 1 上的 puppet 运行完成后再继续。
上述步骤应提供这样的效果:在节点 2 上运行的 puppet 停止,并在过程的早期等待节点 1 上运行的 puppet 完成。根据需要进行调整以适应所涉及的特定主机系统。