在Chef中复制整个目录结构

Modified on: Tue, 06 Aug 2019 10:00:02 +0800

我有一个目录结构(示例数据),我想在Chef配方中复制。似乎唯一的方法是显式创建每个单独的目录和文件:

directory "/mnt/data/experiment1/dataset1" do
   recursive true
   only_if { node.chef_environment == "dev" }
end


directory "/mnt/data/experiment1/dataset2" do
   recursive true
   only_if { node.chef_environment == "dev" }
end

directory "/mnt/data/experiment2/dataset1" do
   recursive true
   only_if { node.chef_environment == "dev" }
end


directory "/mnt/data/experiment1/dataset2" do
   recursive true
   only_if { node.chef_environment == "dev" }
end


cookbook_file "/mnt/data/experiment1/dataset1/testfile1.txt" do
   owner "atom"
   group "atom"
   mode "0644"
   source "sampledata/experiment1/dataset1/testfile1.txt"
   only_if { node.chef_environment == "dev"}
end

...

有没有办法简单地从菜谱中递归复制整个目录结构?指定配方中每个文件的名称似乎是多余的并且容易出错(即,如果我们向树中添加文件但忘记在配方中引用它,则不会复制它。)

我想一个黑客的解决方法是找出所有主厨文件被复制到目标机器上的位置并执行cp -r但是有更清洁的东西吗?

或者我是以错误的方式解决这个问题?

最佳答案

为什么不使用remote_directory资源。
它的目的正是为了那个。

请参阅:https://docs.chef.io/resource_remote_directory.html


相关问答

添加新评论