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

标签 chef-infra

我是 Chef 的初学者。任何人都可以告诉我是否有一种方法可以将 Cookbook 的 files/default 目录中的目录复制到其他位置。

例如我在 files/ 目录中有一个包含文件 a.txtb.txt 的目录结构,如下 cookbook_name/files/default/文件夹名称/[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

cookbook_file '/home/user/work/somelocation/' do
  source ['folder-name/a.txt',''folder-name/b.txt'']
  mode "0644"
  action :create
end

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

最佳答案

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           

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

关于chef-infra - Chef Recipe - 将 Recipe 中的文件/默认位置的完整目录复制到新位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37266384/

相关文章:

chef-infra - vagrant up --no-color,它有什么作用?

ruby - Chef Recipe 的 Linux 服务状态

chef-infra - 撤消 Chef Recipe 所做的更改

chef-infra - 自动属性(Ohai 数据)何时更新?

chef-infra - 如何在 Chef 中定义和调用数组?

ruby - 如何将此 case 语句更改为 if 语句?

windows - Chef 12 中的默认 SSL 验证如何在 Windows 节点上工作?

node.js - Chef 设置 : trying to start node app with PM2

node.js - Chef 客户端在 node-gyp 重建时卡在 npm 安装上

hadoop - 通过 Chef 在ec2中设置ssh无密码