按照什么顺序将数组映射到像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.