Answers:
如果您使用的是Puppet 2.6.6+,则无需执行程序即可执行“本机”操作:
file { '/path/to/myfile':
ensure => 'present',
audit => 'all',
}
(此功能自Puppet 2.6.0起存在,但是在审核方面存在许多问题,只有在2.6.6版本中才真正解决。)
如果您使用的是较旧的版本,则还可以告诉资源以noop
模式运行,当Puppet运行且文件不存在时,它将仅显示一条消息:
file { '/path/to/myfile':
ensure => 'present',
noop => 'true',
}
您应该创建自己的函数或将exec与onlyif命令一起使用。就像是 :
exec { "mycommand":
path => "/usr/bin:/usr/sbin:/bin",
onlyif => "test -f /etc/blalba" //yours command
}
creates => '/etc/blabla'
比“ onlyif
” 更好?
creates
将具有相同的结果,并且更加简单(并且速度更快)。是的,通常onlyif
确实提供了更大的灵活性。