如果菜谱中不存在,则删除chef cookbook_file

时间:2016-03-12 07:08:47

标签: chef cookbook

我在cookbook下的文件很少(blah-cookbook / files / default / file01 * .xml)

当我运行chef-client时,它会填充目标目录(/etc/app/file01*.xml) - 到目前为止很好。

cookbook_file "/tmp/file01.xml" do
  source "file01"
  owner "root"
  group "root"
  mode 00600
  action :create
end

假设我从cookbook文件中删除了一些文件,如何将其反映在目标目录中?我想在目标direcotry(/ etc / app / file)和cookbook文件(blah-cookbook / files / default / file01.xml)上有相同的文件。不多也不少。

2 个答案:

答案 0 :(得分:1)

您可能希望使用remote_directory资源,但更有可能您应该使用其他类型的文件打包/分发系统,因为Chef的内部工具非常小。共享git存储库(带有git资源)或deb / RPM包(带有package资源)都是很受欢迎的选项。

答案 1 :(得分:0)

您必须明确删除它们(至少在一次厨师 - 客户端运行期间):

file "/etc/foo" do
  action :delete
end

如果您愿意,remote_file资源还会提供您可以使用的:delete操作。