编译后使用 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

此代码将给出正在使用only_ifERROR: No such file or directory -均匀性。这是因为IO.read发生在文件进入系统之前的编译时。(4 年前的电子邮件 - http://lists.opscode.com/sympa/arc/chef/2011-08/msg00182.html)

有没有办法强制内容IO.read("/httpfile")在执行时执行?或者现在有更好的方法?

谢谢

你应该能够使用惰性求值来处理这个问题。 我相信语法是这样的:

remote_file "/httpfile" do
   source "https://docs.chef.io/"
   mode "0666"
end
file "/httpfile.bak" do
   lazy { content IO.read("/httpfile") }
   only_if {File.exists?("/httpfile")}
end

相关内容

最新更新