我有以下清单:
define foo($var) {
file { $var: }
$barclass::store += $var
}
class barclass {
$store = []
foo {
"test1": var => "test1",
"test2": var => "test2",
}
file { "myfile": content => template("puppet:///files/myfile.erb"); }
}
关注erb模板:
<% store.each { |i| -%>
<%= i + " " -%>
<% } -%>
我的目的是收集用作 foo 类型参数的所有 $ var 变量。并在 myfile.erb 模板中提供它们。在我的示例中,使用了 $ store 变量。
此示例不起作用。我错了什么?
有更好的方法来实现同样的目标吗?我基本上需要收集某些类型中使用的参数,然后在一些模板中提供它们。
答案 0 :(得分:3)
您无法直接访问木偶清单中设置的变量(仅限于事实) - 您需要的是scope.lookupvar
scope.lookupvar('yourmodulename::barclass::store')
或只是
scope.lookupvar('barclass::store')
如果它不是模块
SO
<% scope.lookupvar('barclass::store').each { |i| -%>
<%= i + " " -%>
<% } -%>