Chef:仅为某些角色创建用户?

时间:2013-11-30 21:23:26

标签: chef databags

我想设置一个用户(称为“deployer”),但只针对某些角色。

我正在使用Opscode users cookbook。我是从“基地”(包括所有其他食谱)wrapper cookbook来称呼它。因此,我的data_bags/users目录中的用户将在我的所有Chef节点上创建。

考虑到这一点,我的'部署者'用户似乎不属于data_bags/users/deployer.json。 (这将为所有节点创建它。)

我正在思考并探索找到一种或多种干净的方法来做到这一点。我的用例可能并不罕见,所以我希望找到一个与主厨“轻松”的路径来做我需要的事情。我的想法和想法目前包括:

  1. 我还没有找到从我的'用户'数据包中读取的显式代码。找到这样的代码之后,也许我可以根据属性调整它以进行过滤,这样除非某个特定角色“正在运行”,否则某些用户会被排除?

  2. 我可能会创建一个单独的数据包,也许是“foo-users”,其中'foo'是角色。然后我可以使用Opscode users cookbook在需要时准确使用该特定数据包。

2 个答案:

答案 0 :(得分:1)

查看deployer食谱。这本食谱是对users食谱的补充,因为它可以利用相同的“用户”数据包。

答案 1 :(得分:0)

我目前倾向于将此代码用于需要它的角色:

user "deployer" do
  comment "deployer account"
  supports manage_home: true
  shell "/bin/false"
end

由于我不需要用户拥有登录shell,因此将凭据隐藏在数据包中并不是特别重要。

如果我有许多属于各种机器组合的用户帐户,这将不是一个干净的解决方案。但就我而言,它很简单,应该可以正常工作。