puppet 资源执行顺序,用于映射到元参数的项目数组

puppet 资源执行顺序,用于映射到元参数的项目数组

以什么顺序将资源映射到数组中,以便执行诸如 require、subscribe、before 和 notify 之类的属性?此外,执行时,它会一次获取所有资源并并行运行还是同步运行?

例如,

exec { 'A': }
exec { 'B': }
exec { 'C': }
exec { 'D': require=>[ Exec['A'], Exec['B'], Exec['C'] ]}

Exec['D']取决于Exec[A], Exec[B]Exec[C]。当Exec[D]有机会执行时,流程会如何?

A、B 和 C 以任何顺序并行运行?

或者

首先是 A,然后是 B,最后是 C。按顺序运行,但没有任何资源等待前一个资源完成?

或者

首先是 A,然后是 B,但要等待 A 完成后才能开始,最后是 C,但要等待 B 完成后

答案1

首先:Puppet 不会并行运行任何内容。
它完全是顺序运行的。
始终只有一个资源被应用,下一个资源将始终等待前一个资源完成。

第二:顺序取决于一些因素。Puppet
3 和 4 之间的行为有所变化。
您应该查看适用于您版本的此文档页面:
https://docs.puppet.com/puppet/4.7/reference/lang_relationships.html

更具体地说,在这个选项中:
https://docs.puppet.com/puppet/latest/reference/configuration.html#ordering

在过去(Puppet 3.x)中,此项设置为title-hash
这意味着 A、B 和 C 以随机(连续)顺序运行,然后 D 运行。

manifest从 Puppet 4.x 开始,现在默认设置为此。
在您的例子中,将首先运行 A,然后运行 ​​B,然后运行 ​​C,然后运行 ​​D。

相关内容