Chef infra Chef-远程目录的多个源

Chef infra Chef-远程目录的多个源,chef-infra,Chef Infra,在puppet中,可以为一个目录的文件块传递源数组,以便从多个源复制到目标目录 在chef的remote_目录中,source属性似乎只接受一个源。是否有其他属性可以传递多个要聚合到目录的源 我想我可以一个接一个地拥有两个远程目录资源,并指定不同的源,但我不确定它是否会清除并用最新资源的内容重写目录 因为远程目录资源的目的是确保机器上的目录与定义它的烹饪书中的目录包含的内容相同 因此,在同一本食谱中,同一目录不能有两个源,在两本食谱中重新定义它,最后一本会覆盖第一本 是的,这是一个不同于木偶的范

在puppet中,可以为一个目录的文件块传递源数组,以便从多个源复制到目标目录

在chef的remote_目录中,source属性似乎只接受一个源。是否有其他属性可以传递多个要聚合到目录的源

我想我可以一个接一个地拥有两个远程目录资源,并指定不同的源,但我不确定它是否会清除并用最新资源的内容重写目录

因为远程目录资源的目的是确保机器上的目录与定义它的烹饪书中的目录包含的内容相同

因此,在同一本食谱中,同一目录不能有两个源,在两本食谱中重新定义它,最后一本会覆盖第一本

是的,这是一个不同于木偶的范例

在chef中,您可能希望查看一下cookbook,将zip/tar文件解压缩到特定的目标,这样您就可以从两个源创建目录

另一种方法是使用2个远程目录,然后使用一个执行块来合并它们。但你仍然有一个重叠内容的风险

最后,如果您有一些不同的文件,请在循环中使用remote_file来定义每个文件,如:

%W(file1.ext file2 file3.ext}.each do |f|
  remote_file f do
    source "<source path http/ftp>/#{f}"
    owner 'root'
    group 'root'
    mode "0644"
  end
end
您甚至可以在属性散列中为每个文件设置校验和,并对其进行迭代,但我不确定这是否是您的意图,如果需要,我将进行更新