0

puppermaster と puppet エージェントを使用して、puppetlab/java モジュールをクライアント サーバー アーキテクチャにインストールしたいと考えています。サーバー側で私はJavaモジュールをダウンロードし、site.ppファイルにノードを作成します私のノードコンテンツ

node 'test_java'{
    include activemq
    include stdlib
    include java
}

最後の Java インクルードでは、次のコマンドを実行するクライアント側でエラーが発生します。

puppet agent --test --trace

エラーコード:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class java for test_java on node test_java

次のように、init.ppファイルを調べた後、Javaクラスが必要とするパラメータが問題だと思います。

class java(
  $distribution = 'jdk',
  $version      = 'present'
) {

  validate_re($distribution, '^jdk$|^jre$|^java.*$')
  validate_re($version, 'installed|^[._0-9a-zA-Z:-]+$')

  anchor { 'java::begin': }
  anchor { 'java::end': }

  case $::osfamily {

    'RedHat': {

      class { 'java::package_redhat':
        version      => $version,
        distribution => $distribution,
        require      => Anchor['java::begin'],
        before       => Anchor['java::end'],
      }

    }
    ........
    ........

どのパラメータを渡さなければならないのか、ノードでどのように渡すのかわかりませんか?

4

1 に答える 1

0

パラメーターは()、クラス定義の の間にリストされているものです。たとえば、そのクラスはパラメーター$distribution$version.

次のように、site.pp でそれらを提供します。

class{"java":
    distribution => YOUR DISTRIBUTION,
    version      => YOUR VERSION
}

ただし、その例でわかるように、それらにはすでに適切なデフォルトがあります。言うまでもなく、エラーはクラスが見つからないということではなく、必要なパラメーターが指定されていないということです。

実際の問題に移ります...パペットはそのパスでクラスを見つけることができません。activemqstdlibクラスが見つかったことを知っていますか? をコメントアウトしてinclude java、他のクラスが正しくロードされるかどうかを確認できますか? その場合は、javaクラスがそれらと同じディレクトリにインストールされていることを確認してください。そうでない場合は、 puppetmasterでモジュールパスを定義する方法を調べる必要があります。

于 2012-12-14T06:23:58.350 に答える