2017-01-20 4 views
0

init.ppのないPuppetモジュールがいくつかあることがわかりました。どうしてこれなの? Puppetモジュールのinit.ppの機能は何ですか?Puppetモジュールにinit.ppがないのはなぜですか?

パープルはinit.ppマニフェストのないモジュールを見つけることはできますか?

+1

あなたはどこで調査しましたか、なぜそれが役に立たなかったのですか? –

+1

PuppetがRubyで実装されているからといって、Puppetに関する質問はRubyに関するものではありません。通常、この場合のように、そうではありません。タグが編集されました。 –

+0

私はそれを念頭に置いておきます。あなたの訂正と答えをありがとう。 – zero

答えて

2

init.ppがないPuppetモジュールがいくつか見つかりました。どうして? Puppetのinit.ppの機能は何ですか?

モジュールのmanifests/ディレクトリ内のマニフェストファイルのレイアウトは、オートローダがモジュールのクラスと定義済みのタイプ名をマニフェストファイルにマップできるようにします。 my_module::fooのクラスまたは定義された型の定義を含むマニフェストは、モジュールパス内のいくつかのディレクトリに対して、my_module/manifests/foo.ppであると予想されます。

多くの(ただしすべてではない)モジュールには、モジュールと同じ名前のクラスがあります。たとえば、モジュールmy_moduleは、my_moduleという名前のクラスを持つことができます。そのようなクラスはmy_module::my_moduleの場所であるため、my_module/manifests/my_module.ppに入ることはできません。代わりに、モジュールが同義語クラスを持つ場合、その定義はマニフェストディレクトリのinit.ppに入ります。一方、モジュールに同義語クラスまたは定義された型を提供しない場合、init.ppは何も含まれません。それを省略することができます。

Puppetドキュメントでは、autoloading and manifest layoutについて詳しく説明しています。

Puppetはinit.ppなしでモジュールを見つけることはできますか?

確かに。 Puppetはモジュールを認識するためにinit.ppファイルの存在に頼っていません。モジュールは、モジュールパス内のディレクトリのサブディレクトリによって定義されます。

+0

FYI私は彼の投稿を編集しました。あなたはそれを引用しているので、今はちょっと離れているかもしれません。 –

関連する問題