Пытается скопировать файл локально, который не существует во время компиляции. Например:копирование локального файла после компиляции с файловым ресурсом в CHEF
remote_file "/httpfile" do
source "http://wiki.opscode.com/display/chef/Home"
mode "0666"
end
file "/httpfile.bak" do
content IO.read("/httpfile")
only_if {File.exists?("/httpfile")}
end
этот код даст ERROR: No such file or directory -
eventough что only_if
используется. Это связано с тем, что IO.read
происходит во время компиляции до того, как файл перейдет в систему. (4-летняя электронная почта - http://lists.opscode.com/sympa/arc/chef/2011-08/msg00182.html)
Есть ли способ заставить контент IO.read("/httpfile")
выполнять во время выполнения? или лучший способ сделать это сейчас?
Благодаря
Ответ хороший, я предпочел бы, используя уведомление от 'remote_file' вместо' only_if' настороже, чтобы избежать переписывания файла при каждом запуске. Я не вижу пример использования с этим примером (кажется, что резервный шеф-повар делает при замене файла) – Tensibai