puppet 中的 include 和 require 有什么区别

puppet 中的 include 和 require 有什么区别

如果我有以下代码,那么我在 puppet 中有一个类:

class A {
  require B

....
} 

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

class A {
  include B

....
} 

一切正常

答案1

实际上,它们是完全不同的东西。说require B意味着B必须在之前(因此,如果某些内容变成) A,则会导致循环依赖关系)。而如果根本没有包括在内,则会导致缺少依赖关系错误。Brequire AB

另一方面,include B它只是说B只要被应用就会被应用A:它并没有说明它们之间的顺序。

答案2

这是刚刚在 Puppet 邮件列表中询问(并回答)的问题:

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

- Ken Barber需要还是包含?

相关内容