如何用厨师重命名文件?
在厨师文档中,我只发现:
- 创造
- create_if_missing
- 删除
- 触碰
使用 ruby_block 并在内部使用 ::File.Rename(src,dst)。Chef 框架没有文件重命名(或者至少在 0.10.18 之前没有)。
只是一个例子:
ruby_block "Rename file" do
block do
::File.rename(new_resource.src,new_resource.dst)
end
end
如果您需要重命名多个文件,则另一种选择。检查资源之一以了解它是否已经运行。
ruby_block "Rename file" do
block do
::Dir.glob("*/*.src").each {|i| File.rename(i, i.gsub(/(.*).src/,'\\1.dst'))};
end
not_if {File.exists?("new_resource.dst")}
end