Chef cookbook - 将完整目录从cookbook中的文件/默认位置复制到新位置

Web*_*ist 7 chef-infra

我是厨师的初学者.任何人都可以建议是否有办法将cookbook files/default目录中的目录复制到其他位置.

例如,我有一个目录结构,文件a.txt和b.txt在files/目录如下cookbook_name/files/default/folder-name/[a.txt,b.txt].我希望他们两个文件都是一个位置/home/user/work/somelocation/folder-name/[a.txt,b.txt]

我尝试过cookbook_file资源如下:

cookbook_file '/home/user/work/somelocation/' do
  source ['folder-name']
  mode "0644"
  action :create
end
Run Code Online (Sandbox Code Playgroud)

和

cookbook_file '/home/user/work/somelocation/' do
  source ['folder-name/a.txt',''folder-name/b.txt'']
  mode "0644"
  action :create
end
Run Code Online (Sandbox Code Playgroud)

我知道通过循环遍历任意目录之间复制文件的其他方法,但我很想知道是否有更优雅的方法来处理目录,类似于cookbook_file如何处理cookbook files/default目录中标准文件夹中的文件.

小智 15

remote_directory允许您将整个目录复制到您选择的位置.例如:

remote_directory "/etc/some_target_directory" do
  source 'local_directory' # <-- this is your directory in files/default/local_directory
  files_owner 'root'                                                                 
  files_group 'root'
  files_mode '0750'
  action :create
  recursive true                                                                      
end           
Run Code Online (Sandbox Code Playgroud)

进一步阅读:https://docs.chef.io/resource_remote_directory.html