Puppet 使用定义的类型生成数组?

Puppet 使用定义的类型生成数组?,puppet,Puppet,我目前有一个类,看起来像这样: class mymodule ( $files = [], ) { file { '/my/file': ensure => file, content => template(mymodule/mytemplate.erb) } } 和一个模板: files: <% @files.each do |file| -%> - <%= file %> <% end -%> 使用定义的类

我目前有一个类,看起来像这样:

class mymodule (
  $files = [],
) {

file { '/my/file':
    ensure  => file,
    content => template(mymodule/mytemplate.erb)
  }
}
和一个模板:

files:
<% @files.each do |file| -%>
  - <%= file %>
<% end -%>

使用定义的类型构建
文件
数组的好方法是什么?

使用模板很难实现这样的结构。相反,有两种常见的方法

concat模块 使用该模块,您可以使您的文件由谨慎片段的串联组成

class mymodule {
    concat { '/my/file': ensure => present }
}

define mymodule::file($content) {
    concat::fragment {
        target  => '/my/file',
        content => $content,
        order   => '50',
    }
}
希拉 如果您可以使用
create\u resources
construct将资源移动到Hiera,您可以轻松地提取资源标题并在模板中使用它们

class mymodule {
    concat { '/my/file': ensure => present }
}

define mymodule::file($content) {
    concat::fragment {
        target  => '/my/file',
        content => $content,
        order   => '50',
    }
}