私は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を参照)。したがって、モジュール固有ではなく、ほとんどすべてのモジュールで必要とされるカスタムタイプを整理するための最良の方法は何でしょうか。
ご協力いただきありがとうございます!