2

「learn-tomcat」という名前のモジュールを作成し、それには tomcat という名前のクラスがあります (init.pp 内)。このクラスをノード定義に含めようとすると、機能しません。次のすべての組み合わせでエラーがスローされます。組み合わせは次のとおりです。

include learn-tomcat::tomcat
include learn-tomcat
include tomcat
include ::tomcat

エラーは上記の組み合わせでも同じです:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class

モジュールディレクトリlearn-tomcatの名前をtomcatに変更すると、次の作業が開始されます!

include tomcat
include ::tomcat
include tomcat::tomcat

今、私はいくつかのことについて混乱しています:

  • Puppet は作成時にモジュールの名前を USERNAME-MODULENAME に強制しますが、作成後に名前を変更する必要がありますか?
  • 関連するドキュメントが見つかりませんでしたが、ここで何が起こっているのでしょうか?
4

1 に答える 1

3

ここでは、名前空間とスコープがpuppetでどのように機能するかを包括的に説明しています。

記事の例によると:

name:                   file path:
apache                  <modulepath>/apache/manifests/init.pp
apache::mod             <modulepath>/apache/manifests/mod.pp
apache::mod::passenger  <modulepath>/apache/manifests/mod/passenger.pp

したがって、あなたの状況では、次の提案のいずれかを行うこともできます。

  1. のモジュールlearn-tomcatで、クラスinit.ppの名前を に変更し、次の方法でインスタンス化します。tomcatlearn-tomcat

    include learn-tomcat

  2. ファイルの名前を変更し、init.pp次のtomcat.ppようにインスタンス化します。

    include learn-tomcat::tomcat

于 2015-05-17T11:44:09.603 に答える