如何在Puppet中跨各种模块组织自定义类型

时间:2013-03-01 19:02:18

标签: module manifest puppet custom-type

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

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

一样