我有一个模块core
和一个类core::logrotate
定义在core/manifests/logrotate.pp
.
class core::logrotate {
#...some stuff here
#
define confd ($ensure = "present" , $log_name = "dummy" ) {
if ( $ensure == present )
{
file {
"/etc/logrotate.d/$log_name":
ensure => present,
source => filelookup("core/${log_name}.logrotate"),
}
} else {
file {
"/etc/logrotate.d/$log_name":
ensure => absent,
}
}
}
}
在 templates.pp 中调用此函数为
core::logrotate::confd { "mkill": log_name => mkill }
这失败并出现错误
Error 400 on SERVER: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type core::logrotate::confd
如果 puppet master 版本是 2.6.x,那么这将失败,为了让它在那里工作,在模块的 init.pp 中曾经有一个导入“*”。现在将其删除为移动到 puppet 2.7.20。
此处粘贴的代码在 2.7 中有效,但在 2.6 中失败。知道为什么吗?我怎样才能让它同时适用于 2.6 和 2.7?