我正在使用 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)。所以我想知道组织不是特定于模块并且几乎每个模块都需要的自定义类型的最佳方法是什么。
谢谢你的帮助!