puppet - 从模板中使用的自定义类型中收集数据的最佳方法

时间:2011-07-20 16:56:48

标签: puppet

我有以下清单:

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 变量。

此示例不起作用。我错了什么?

有更好的方法来实现同样的目标吗?我基本上需要收集某些类型中使用的参数,然后在一些模板中提供它们。

1 个答案:

答案 0 :(得分:3)

您无法直接访问木偶清单中设置的变量(仅限于事实) - 您需要的是scope.lookupvar

scope.lookupvar('yourmodulename::barclass::store')

或只是

scope.lookupvar('barclass::store')

如果它不是模块

SO

<% scope.lookupvar('barclass::store').each { |i| -%> 
<%= i + " " -%> 
<% } -%>