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

按照什么顺序将数组映射到像require,subscription,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]有机会执行时,stream程将如何?

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

要么

先是A,然后是B,最后是C.依次运行,但没有一个资源等待前一个资源完成?

要么

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

第一:木偶不能并行运行。
这是纯粹的顺序。
总是只有一个资源被应用,下一个将一直等待前一个完成。

第二:顺序取决于几件事情。
木偶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运行。

从Puppet 4.x开始,现在默认设置为manifest
在你的情况下,将先运行A,然后B,然后C,然后D.