如何通过chef将多个成员添加到组中

时间:2014-04-12 05:08:54

标签: chef

如何通过厨师向群组添加多个成员?

我试过这样,但它失败了。

group "git" do
  action :modify
  members "foo, bar"
  append true
end

我可以这样做,但members似乎接受了多个用户。我该如何使用它?

%w(foo bar).each do |m|
  group "git" do
    action :modify
    members m
    append true
  end
end

2 个答案:

答案 0 :(得分:5)

大多数接受Chef中多个输入的参数都使用标准的ruby数组语法。我刚才找不到一个例子,group docs没有提供多个用户的例子令人非常沮丧。事实上,他们只是说

  

members表示应将哪些用户设置或附加到组中。

仅提供单个用户的示例。也就是说,members ["foo", "bar"]应该是要走的路。

答案 1 :(得分:3)

这是一个包含多个成员的标准Group块:

group "rbenv" do
  action :manage
  members ['member1','member2','member3']
end

您还可以使用空白数组中的循环:

%w{ erin john nick jenna kris }.each do |memberlist|
  group "rbenv" do
    action :manage
    members memberlist
  end
end

使用这个空白数组选项,您现在可以设置为继续使用该类型的数组,或者从Chef数据包甚至MySQL数据库中获取数组。在我的例子中,Chef连接到MySQL以获取有关用户的信息,并相应地进行配置。