如何覆盖子节点中的puppet类参数?

我正在尝试完成如下所示的内容:

node 'basenode' { class { 'puppet' : disable => false, } } node 'child' inherits 'basenode' { class { 'puppet' : disable => true, } } 

这给了我:

 err: Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate definition: Class[Puppet] is already defined 

我怎样才能覆盖这个单一节点的设置,仍然有一个参数化的类?

原来这是一个已知的问题: https : //projects.puppetlabs.com/issues/5517

像这样做节点inheritance通常不是很好的devise。 在/etc/puppet/manifests/roles.pp的不同文件中创build抽象的“angular色”图层。 然后将parameter passing给这些类。

site.pp

 import "roles.pp" import "nodes.pp" 

nodes.pp

 node 'webserver1' { class{"role::webserver":} } node 'webserver2' { class{"role::webserver": do_stuff => false, } } node 'db' { class{"role::db":} } 

roles.pp

 class role($do_stuff) { class{'foo': do_stuff => $do_stuff,} } class role::webserver($do_stuff=true) { class{'role': do_stuff => $do_stuff, } class{'apache': other_stuff => 'foo', } } class role::webserver($do_stuff=true) { class{'role': do_stuff => $do_stuff,} class{'apache': other_stuff => 'foo',} } class role::db($do_stuff=true) { class{'role': do_stuff => $do_stuff,} class{'postgres': other_stuff => 'foo',} }