我想在Chef运行结束时删除文件
我使用以下file resource
来实现
file "#{home_dir['data']}/file1.txt" do
action :delete
retries 3
retry_delay 50
only_if { ::File.exist? "#{home_dir['data']}/file1.txt" }
end
如果有更好的方法可以告诉我。
答案 0 :(得分:0)
这是正确的,但您不需要only_if
,文件资源已经在内部是幂等的。你也可能不需要retries
,除非你真的希望unlink()
失败(比如这是一个奇怪的网络文件系统),但它不会伤害任何东西。
编辑:如果您的食谱中有两次相同的资源类型+名称,如何避免资源克隆。
file "delete #{home_dir['data']}/file1.txt (or some other unique name)" do
path "#{home_dir['data']}/file1.txt"
action :delete
end
path
属性默认使用名称(如果未指定),但可以单独更改它们以避免冲突。