1

我正在使用 Puppet 并且我有一堆模块。这些模块都使用自定义类型。每个模块都使用几乎所有自定义类型,因此将这些类型放入某个模块是没有意义的。这有点像 Java 中带有静态方法的 util 类。

我将相关类型组织成类,每个类都写入一个 .pp 文件并将它们放入 $manifestdir。在 $manifestdir/site.pp 中,每个 .pp 文件都有一个导入语句。

方案(名称是什么?):

$manifestdir/site.pp
 imports $manifestdir/class1.pp
  contains class class1
   contains type definitions for custom_type1, custom_type2, custom_type3
 imports $manifestdir/class2.pp
  contains class class2
   contains type definitions for custom_type4, custom_type5, custom_type6
 imports $manifestdir/class3.pp
  contains class class3
   contains type definitions for custom_type7, custom_type8, custom_type9

从每个模块内部,我可以通过寻址 class1::custom_type2 或 class3::custom_type7 来使用这种自定义类型...

现在我读到最好避免使用 import 关键字(参见http://docs.puppetlabs.com/puppet/2.7/reference/lang_import.html)。所以我想知道组织不是特定于模块并且几乎每个模块都需要的自定义类型的最佳方法是什么。

谢谢你的帮助!

4

1 回答 1

2

只需创建一个具有所有共享类型的“common”或“utils”模块。就像 pupptelab 的stdlib

于 2013-03-02T07:37:54.650 回答