我正在使用Puppet而且我有一堆模块。这些模块都使用自定义类型。几乎所有自定义类型都由每个模块使用,因此将这些类型放入某个模块没有意义。它有点像Java中带有静态方法的util类。
我已经将相关类型组织成了每个写入.pp文件的类,并将它们放入$ manifestdir中。在$ manifestdir / site.pp中,每个.pp文件都有一个import语句。
Scheme(名称中有什么?):
$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)。所以我想知道组织自定义类型的最佳方法是什么,这些类型不是模块特定的,几乎每个模块都需要。
感谢您的帮助!