我在清单中使用postgresql puppetlabs模块。默认情况下,$service_manage
文件中有一个名为true
的参数设置为params.pp
,所以看起来像
class postgresql::params inherits postgresql::globals {
$service_manage = true
if $service_manage {
# do something
}
}
我想要的是我想将变量$service_manage
的值设置为false
,以便if
块不适用于我的清单。我正在使用它,
class mypostgres::config {
class { 'postgresql::params' : service_manage => 'false' }
}
但它没有出现这个错误,
SERVER:评估错误:评估资源声明时出错,重复声明:类已经声明了[Postgresql :: Params];无法重新声明/etc/puppet/modules/mypostgres/config.pp:4
我也试过这个
class postgresql::params { $service_manage = "false" }
但这也行不通。
答案 0 :(得分:2)
您应该使用参数直接声明/包含该类,而不是尝试间接操作params
类。该类在此模块中继承了默认值和逻辑。实际上,请注意:https://github.com/puppetlabs/puppetlabs-postgresql/blob/master/manifests/params.pp#L1
继承该参数的实际类是postgresql::server
。因此,当您声明该类时,您要覆盖这样的参数:
class { 'postgresql::server': service_manage => false }
它会对你有效。
值得注意的是,if
params.pp
内的$service_manage
代码块实际上并不存在,如果最佳实践使用该设计模式,则不应该存在。< / p>