如果菜谱中不存在,则删除厨师 cookbook_file
remove chef cookbook_file if not exist in 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 文件中删除了几个文件,我如何让它反映在目标目录中?我希望在目标目录 (/etc/app/file) 和食谱文件 (blah-cookbook/files/default/file01.xml) 上有相同的文件。不多也不少
您必须明确删除它们(至少在一个厨师客户 运行 期间):
file "/etc/foo" do
action :delete
end
remote_file
资源还提供了一个 :delete
操作,您可以根据需要使用。
您可能希望为此使用 remote_directory
资源,但更有可能您应该使用其他类型的文件 packaging/distribution 系统,因为 Chef 的内部工具非常少。共享 git 存储库(具有 git
资源)或 deb/RPM 包(具有 package
资源)都是流行的选择。
我在 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 文件中删除了几个文件,我如何让它反映在目标目录中?我希望在目标目录 (/etc/app/file) 和食谱文件 (blah-cookbook/files/default/file01.xml) 上有相同的文件。不多也不少
您必须明确删除它们(至少在一个厨师客户 运行 期间):
file "/etc/foo" do
action :delete
end
remote_file
资源还提供了一个 :delete
操作,您可以根据需要使用。
您可能希望为此使用 remote_directory
资源,但更有可能您应该使用其他类型的文件 packaging/distribution 系统,因为 Chef 的内部工具非常少。共享 git 存储库(具有 git
资源)或 deb/RPM 包(具有 package
资源)都是流行的选择。