Puppet通知服务错误

Puppet通知服务错误,puppet,Puppet,我尝试编写一个puppet配置来安装lamp env 但我有一个通知选项的问题 我有一个apache配置: class apache inherits apache::params { package { 'apache': name => "${apache::params::package}", ensure => present } service { 'apache': ensure =>

我尝试编写一个puppet配置来安装lamp env

但我有一个通知选项的问题

我有一个apache配置:

class apache inherits apache::params {
    package { 'apache':
        name => "${apache::params::package}",
        ensure => present
    }

    service { 'apache':
        ensure    => running,
        name      => $apache::params::service,
        enable    => true,
        subscribe => Package['apache'],
    }
}
和php模块配置:

define php::module(
    $notify         = $php::params::notify,
    $package_prefix = $php::params::module_package_prefix
) {
    package { "php-module-${name}":
        ensure  => present,
        name    => "${package_prefix}${name}",
        notify  => Service['apache'],
        require => [Class['apache'], Package['php', 'php-dev']]
    }
}
但当我启动puppet时,我有一个错误:

Error: Parameter notify failed on Php::Module[mcrypt]: No title provided and "apache" is not a valid resource reference

我不明白为什么它说apache服务不是有效的资源?

我认为这里可能有两个问题:

1) Puppet不喜欢php::module中的这一行:

    $notify         = $php::params::notify,
您可以尝试删除它或检查$php::params::notify中的内容吗?(我没看到你在用它)

2) 你吃过类似的东西吗

include apache

在你的site.pp?在引用包含的资源之前,仍然需要声明该类。

Yeah puppet失败,因为我使用$notify作为变量名。在我的示例中,我没有使用$notify,但实际上我使用了:Service[“${notify}]”;但如果我改变$nofity_服务的$notify,它的工作$notify可能是一个保留变量名。在某些情况下,它可能只是
服务[“apache2”]