尤其是在从头开始设置一个全新的服务器时,puppet 往往会在所有依赖项都得到满足后立即启动依赖服务。这有时会导致在其他包的设置(可能不依赖于服务)仍在运行时不必要地过早启动服务。
是否有任何单行定义或配方可以在整个目录运行结束时自动使所有服务启动/刷新?我试图弄清楚是否可以使用运行阶段,但据我了解,这将要求所有服务定义都明确定义为“最后”阶段。
更新 1:我的问题的一些背景。Puppet 在节点的初始设置期间工作相当密集,因此保留了相当小的虚拟机的资源(在我的例子中,开发机器上的 Vagrant)。当设置阶段达到一些服务(在我的例子中是后台工作人员)准备就绪时,Puppet 启动它们并且工作人员开始从队列中接收作业。这种工作负载会减慢仍在进行的 Puppet 节点设置过程,同时 Puppet 也会减慢工作人员的速度,直到整个设置完成并且盒子处于稳定状态。
这就是为什么我开始认为在节点上的所有服务启动之前让 Puppet 将初始设置工作到最后会很好的原因,以及为什么我想知道是否有任何简单的方法可以用 Puppet 做到这一点。
我建议不要全球重启。相反,使用 puppet 依赖项。
就像是:
你没有。
这完全不是 puppet 应该做的事情,虽然你可能会想出一种方法来做这件事,但这根本不是一个好主意。如果您想要实现的只是服务不应该减慢 puppet 的速度(我也觉得这很落后,我更喜欢反过来),为什么不教你的服务在 puppet 运行时放轻松呢?开始了?
实现此目的的一种方法是
您可以通过以下方式将其作为默认值分配给服务资源类型
如果您在 nodes.pp 中定义它,它将应用于所有节点,或者您可以为每个节点定义它。