木偶:事后添加要求参数

我希望能够添加一些需求到我设置的文件:

define daemontools::service( $ensure = 'running', $source ){ case $ensure { 'running': { $real_ensure = $source } 'stopped': { $real_ensure = 'absent' } default: { fail("no such ensure for daemontools::service") } } file{"/etc/service/${name}": ensure => $real_ensure, require=> Package['daemontools'] } # This is the part that gets confusing if $require { File["/etc/service/${name}"]{ require +> $require } } } # in some other class somewhere daemontools::service{"tinydns": source=>'/var/tinydns', require => [Package['djbdns'],Exec['tinydns_setup']] } 

LanguageTutorial似乎认为这将工作,但它只会导致错误消息: Parameter 'require' is already set on File[/etc/service/tinydns] by daemontools::service

摆脱if $require – 这是完全没有必要的。 象require这样的元参数就像它们对本地types一样适用于定义的types,所以daemontools::service资源中的任何东西都不会运行,直到成功运行daemontools::service require。