2011-07-20 42 views
2

我有以下表現:傀儡 - 收集來自自定義類型的數據最好的辦法在模板中使用

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 + " " -%> 
<% } -%> 

這裏我的目的是收集所有$ var變量用作參數類型foo。並提供他們在myfile.erb模板。在我的示例中,使用了$商店變量。

此示例不起作用。我有什麼錯?

是否有更好的方法來實現相同的事情?我基本上需要收集某些類型中使用的參數,然後在一些模板中提供它們。

回答

2

無法訪問木偶設置變量直接表現(僅facter事實) - 你需要的是scope.lookupvar

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

或只是

scope.lookupvar('barclass::store') 

,如果它不是一個模塊

SO

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