我想使用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'],
}
}
........
........
我不明白我必须传递什么参数以及如何在节点中使用?
答案 0 :(得分:0)
参数是类定义中()
之间列出的参数。例如,该类采用参数$distribution
和$version
。
你会在你的site.pp中提供这些:
class{"java":
distribution => YOUR DISTRIBUTION,
version => YOUR VERSION
}
你会在那个例子中看到,他们已经有了合理的默认值。更不用说错误不会是找不到类,而是没有提供必需的参数。
继续讨论你的实际问题... Puppet无法在其路径中找到该类。您知道找到了activemq
和stdlib
类吗?你可以注释掉include java
并查看其他类是否正确加载了吗?如果是,请确保java
类安装在与此相同的目录中。如果没有,您需要了解如何在puppetmaster上定义modulepath。