临时禁用资源
有时候,你希望在不会干扰其他工作的情况下临时禁用一个资源。例如, 你可能想要调整服务器上的一个配置文件,经过 Puppet 的不断测试,直到获得你想要的确切设置。 在此期间你不想让 Puppet 覆盖旧版本的配置,为此你可以在资源上设置如下的 noop 元参数:
noop => true,
操作步骤
添加如下代码到你的配置清单:
file { "/tmp/test.cfg": content => "Hello, world!\n", noop => true, }
运行 Puppet:
# puppet agent --test info: Retrieving plugin info: Caching catalog for cookbook.bitfieldconsulting.com info: Applying configuration version '1306159566' notice: /Stage[main]//Node[cookbook]/File[/tmp/test.cfg]/ensure: is absent, should be file (noop) notice: Finished catalog run in 0.53 seconds
测试之后,移除 noop 参数:
file { "/tmp/test.cfg": content => "Hello, world!\n", }
再次运行 Puppet:
# puppet agent --test info: Retrieving plugin info: Caching catalog for cookbook.bitfieldconsulting.com info: Applying configuration version '1306159705' notice: /Stage[main]//Node[cookbook]/File[/tmp/test.cfg]/ensure: defined content as '{md5}746308829575e17c3331bbcb00c0898b' notice: Finished catalog run in 0.52 seconds
工作原理
首次运行 Puppet 时,由于 noop 元参数被设置为 true, 因此对于这一特定资源, 与你使用 --noop 标志运行 Puppet 的效果是一样的。 Puppet 会指出此资源将被应用, 除此之外什么也没做。
再次运行 Puppet 时,由于 noop 元参数被移除,所以此资源会被正常地应用到节点。