2012-10-02 28 views
1

我正在嘗試修改針對Centrify Express的puppet模塊,該模塊與Active Directory集成。將數據附加到本地範圍變量的模式

我要追加用戶的允許列表上的每個節點的基礎上,EG:

$centrifydc_groups_allow = ['admins', 'users'] 

然後在我的模板,請沿着線的東西:

<% scope.lookupvar('centrifydc::groups_allow').each do |val| -%> 
<%= val %> 
<% end -%> 

我期待以一種乾淨而一致的方式定義訪問配置文件,然後執行單獨的節點調整,添加更多應具有訪問權限的條目。

如何做到這一點?

回答

1

你有追加到puppet數組的+ =操作符。

$centrifydc_groups_allow = ['admins', 'users'] 
$centrifydc_groups_allow += ['webusers'] 

此外,如果您使用stdlib module,它實現了許多有用的函數來處理數組。

例如,如果有一個風險,你可以重複自己從型動物PP陣列中,您可以追加前測試:

$centrifydc_groups_allow = ['admins', 'users'] 
if member($centrifydc_groups_allow,'webusers') == false { 
    $centrifydc_groups_allow += ['webusers'] 
} 

而且你有一個合併功能合併陣列,它通過scope_function_merge你可以使用它在模板內部而不是附加到數組,併爲每個節點/類型/等重寫一個默認數組和一個自定義數組。

+3

至於木偶3.3這不工作了! – S0me0ne