puppetlab java模块安装问题

时间:2012-12-14 05:25:31

标签: python puppet

我想使用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

我认为问题是查看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'],
      }

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

我不明白我必须传递什么参数以及如何在节点中使用?

1 个答案:

答案 0 :(得分:0)

参数是类定义中()之间列出的参数。例如,该类采用参数$distribution$version

你会在你的site.pp中提供这些:

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

你会在那个例子中看到,他们已经有了合理的默认值。更不用说错误不会是找不到类,而是没有提供必需的参数。

继续讨论你的实际问题... Puppet无法在其路径中找到该类。您知道找到了activemqstdlib类吗?你可以注释掉include java并查看其他类是否正确加载了吗?如果是,请确保java类安装在与此相同的目录中。如果没有,您需要了解如何在puppetmaster上定义modulepath