1

我正在尝试为 Centrify Express 修改一个 puppet 模块,该模块与 Active Directory 集成。

我想基于每个节点将用户附加到允许列表,例如:

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

然后在我的模板中,执行以下操作:

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

我正在寻找一种干净一致的方式来定义访问配置文件,然后进行单个节点调整,添加更多应该具有访问权限的条目。

这该怎么做?

4

1 回答 1

1

您可以将 += 运算符附加到 puppet 中的数组。

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

此外,如果您使用stdlib 模块,它会实现许多有用的函数来处理数组。

例如,如果存在可能在不同 pp 的数组中重复自己的风险,则可以在附加之前进行测试:

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

此外,您还有一个合并数组的合并函数,通过 scope_function_merge 您可以在模板中使用它来代替附加到数组,为每个节点/类型/等重写一个默认数组和一个自定义数组。

于 2012-10-03T15:00:39.333 回答