2014-02-09 28 views
4

如果在puppet文件中不存在目錄,如何執行命令?執行命令,除非在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/", 
} 

我得到錯誤:「無法評估:找不到命令'測試'」。這也是檢查目錄是否存在的最佳做法嗎?

回答

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

實際的問題是在路徑: 路徑=> [ '在/ usr/local/bin目錄', '/ sbin目錄', '/箱',「/ usr/sbin','/ usr/bin']