Chef / ruby​​:将模板子目录中的所有模板导入节点上的单个目录

时间:2018-01-16 17:49:41

标签: ruby chef test-kitchen

使用简单的模板块,有没有办法将templates/default/SubDir/templates/default/SubDir/*)中的所有模板文件复制到一个位置(/tmp/)? 这是一个示例块:

template '/tmp/...' do
    source 'default/SubDir/...'
    owner node['attribute']['os_user']
    group node['attribute']['os_group']
    mode '0755'
end
编辑:这些都是xml文件,我认为我不会将.erb扩展名添加到模板文件中,因为这需要我提及每个模板文件名,以便我可以将它们还原为.xml(用于递归地将模板复制到服务器)。

注意:如果不支持,那么是否有任何建议的方法需要strait ruby​​代码?

编辑:我将尝试制作一个模板文件,如果我要将整个数组复制到节点,看看是否可行。

2 个答案:

答案 0 :(得分:0)

不,不支持。一些额外的角色,因为SO迫使我。

答案 1 :(得分:0)

我通过创建一个包含我需要复制到服务器的对象(模板)的数组来解决这个问题..它看起来像这样:

auth_schemas = ['file1.xml','file2.xml','file3.xml','file4.xml','file5.xml','file6.xml','file7.xml','file8.xml','file9.xml','file10.xml']
        auth_schemas.each do |schemaFile|
          template "/tmp/#{schemaFile}" do
            source "path/to/SubDir/#{schemaFile}"
            owner node['attribute']['os_user']
            group node['attribute']['os_group']
            mode '0755'
          end
        end

像魅力一样工作!