如何设置一些节点暂停/暂停/ noop?

有没有一个选项来设置节点保持(设置为noop),在傀儡主方? 我正在寻找像下面的例子中的设置。 每个有一个名为noop的variables在其定义中设置为true的节点将不会被更新。

所以example1.node.com在多个puppet客户端运行后将不会有test1文件,但是example2.node.com将拥有该文件。

有这样的select吗? 另一种方法是否存在? (当然,我可以简单地添加一个“_”到节点名称,它会停止匹配。我正在寻找官方的方式。

node "example1.node.com" { $noop = true file { "/root/test1": content => "test", ensure => present, } } node "example2.node.com" { file { "/root/test1": content => "test", ensure => present, } } 

常用的方法是使用外部节点分类器,使用自己的业务逻辑将类和/或属性附加到节点。 它logging在http://docs.puppetlabs.com/guides/external_nodes.html上

如果你想避免在你的文件上应用任何东西,你可以在site.pp添加这样的东西:

 if $noop == true { fail('noop, I don't do anything!') } 

更高级一点。 如果您希望puppet避免应用您的清单,如果/ etc / noop存在于系统上,您可以创build一个自定义的事实 :

 Facter.add('noop') { setcode { File.exists? '/etc/noop' } } 

然后在site.pp使用:

 if $::noop == true { fail('noop, I don't do anything!') 

我还没有find在节点定义中设置noop的方法,这样我就可以看到客户机上的更改(如客户机代理使用–noop运行),但是更快地禁用节点的方法是:

在节点名前添加一个下划线,如_example1.node.com

 node "_example1.node.com" { file { "/root/test1": content => "test", ensure => present, } }