0

我想使用 puppermaster 和 puppet 代理将 puppetlab/java 模块安装到客户端-服务器架构中。在服务器端我下载 java 模块并在 site.pp 文件中创建节点我的节点内容

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

在最后一个 java include 在客户端执行以下命令时出错。

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

我认为问题是java类在查看init.pp文件后需要的一些参数。如下所示。

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
}

不过,您会在该示例中看到,它们已经具有合理的默认值。更不用说错误不是找不到类,而是没有提供必需的参数。

继续你的实际问题...... Puppet 在它的路径中找不到类。你知道找到activemqstdlib类吗?您可以注释掉include java并查看其他类是否正确加载吗?如果是这样,请确保java该类安装在与它们相同的目录中。如果没有,您需要研究如何在puppetmaster上定义模块路径。

于 2012-12-14T06:23:58.350 回答