在 Puppet 中连接任意数量的模板

在 Puppet 中连接任意数量的模板

我想用它template()来连接一些文件。我读过这个问题,如果您确切知道要连接多少个文件,那么这样做就没问题。如果我只有一个输入文件名数组怎么办?

$files = ['mymod/a.erb', 'mymod/b.erb', 'mymod/c.erb']

file { "/var/foo/final":
  content => template ($files)  # <-- error, can't convert Array to String
}

我想避免编写解析器函数。

答案1

目前还不可能。傀儡问题已提交并建议修复但似乎并不急于实施。

作为一种可能的解决方法,您可以让一个模板包含其他模板:

<% @template_array.each do |val| -%>
<% scope.function_template(val) %>
<% end -%>

事先警告,我还没有测试过这个,但我相信它应该有效。

相关内容