Puppet 测试文件是否存在

baz*_*zic 8 puppet

我正在寻找一种方法来测试我的客户端中是否存在文件(只是测试而不是创建)。我在 Chef 中找到了方法 (File.exists),但这对 puppet 来说并不简单。

提前致谢。

Mea*_*roM 9

您应该创建自己的函数或将 exec 与 onlyif 命令一起使用。就像是 :

exec { "mycommand":
  path => "/usr/bin:/usr/sbin:/bin",
  onlyif => "test -f /etc/blalba" //yours command 
}
Run Code Online (Sandbox Code Playgroud)


jgo*_*afe 6

如果您使用的是 Puppet 2.6.6+,则无需执行人员即可执行此操作的“本机”方式:

file { '/path/to/myfile':
  ensure => 'present',
  audit  => 'all',
}
Run Code Online (Sandbox Code Playgroud)

(此功能自 Puppet 2.6.0 以来就存在,但审计存在许多问题,直到 2.6.6 版本才真正解决。)

如果您使用的是旧版本,您还可以告诉资源以noop模式运行,当 Puppet 运行并且文件不存在时,它只会显示一条消息:

file { '/path/to/myfile':
  ensure => 'present',
  noop   => 'true',
}
Run Code Online (Sandbox Code Playgroud)