puppet 中的 include 和 require 有什么区别

tal*_*alg 8 puppet

如果我有以下代码,我有一个 puppet 课程:

class A {
  require B

....
} 
Run Code Online (Sandbox Code Playgroud)

我收到循环依赖错误。如果我有:

class A {
  include B

....
} 
Run Code Online (Sandbox Code Playgroud)

一切正常

Dan*_*ral 18

实际上,它们是非常不同的东西。要说require B手段B一定要来之前A(和,因此,可能会导致循环依赖某些东西在B转出require A)。如果B根本不包含,则会导致缺少依赖项错误。

另一方面,include Bjust say Bwill be apply 每当A应用时:它没有说明它们之间的顺序。


lar*_*sks 10

这只是在 puppet 邮件列表上被询问(并回答):

当需要应用目录时,差异就很明显了。使用包含,您在包含时评估了其内容 - 但在包含之后必须明确依赖任何资源。使用 require - 为您创建了依赖项 - 但您必须小心并确保这是您想要的结果

- Ken Barber 在Require vs Include 中?