如果puppet文件中不存在目录,如何执行命令?
exec { "my_exec_task":
command => "tar zxf /home/user/tmp/test.tar.gz",
unless => "test -d /home/user/tmp/new_directory",
path => "/usr/local/bin/:/bin/",
}
我收到错误:“无法评估:无法找到命令'test'”。这也是检查目录是否不存在的最佳做法吗?
答案 0 :(得分:5)
test
在/usr/bin
为我工作,因此将其添加到路径可以解决错误。
unless => 'bash -c "test -d /home/user/tmp/new_directory"',
也应该工作。但我认为正确的方法是使用creates
:
exec { "my_exec_task":
command => "tar zxf /home/user/tmp/test.tar.gz",
creates => "/home/user/tmp/new_directory",
path => "/usr/local/bin/:/bin/",
}
答案 1 :(得分:1)
实际问题在路径中: path => [' / usr / local / bin',' / sbin',' / bin',' / usr / sbin',&#39 ;在/ usr /仓' ]