Answers:
解决方法:仅在exec“测试”上使用onlyif,并在您要执行的操作中要求它:
exec {"check_presence":
command => '/bin/true',
onlyif => '/usr/bin/test -e /path/must/be/available',
}
whatever {"foo...":
.....
require => Exec["check_presence"],
}
如果目录不存在,我也很难弄清楚如何保持模块运行。这就是我发现对我有用的东西。
exec { 'module_name':
command => "command to run with variables", # Double quotes for Variable interpolation
path => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:",
onlyif => 'test -d /mydirectory',
}
真正的诀窍是添加路径。由于某种原因,即使我将路径添加到测试命令中,例如/bin/test
它似乎也不正确。
希望这对可能遇到相同问题的其他人有所帮助。
您也可以为其使用内置函数find_file()...如果文件/路径不存在,则返回undef;如果存在,则返回字符串。