で定義されたモジュール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 マスターのバージョンが 2.6.x の場合、これは失敗します。これを機能させるために、モジュールの init.pp にインポート "*" がありました。puppet 2.7.20 に移行するため、これを削除しました。
ここに貼り付けたコードは 2.7 では機能しますが、2.6 では失敗します。理由はありますか?2.6 と 2.7 の両方で機能させるにはどうすればよいですか?