Chef:如何管理*删除*用户的代码

Chef: how to manage code that *removes* users

在 Chef 中,在添加用户时管理用户是直截了当的,但我不确定在删除用户时如何有效地管理代码库。假设我有一个 user 资源:

user 'jane' do
  action :create
end

这将创建 Jane 的用户,但如果 Jane 离开公司怎么办?如果我了解资源的工作原理,我不能只从配方中删除这些行 - 我必须将块更改为:

user 'jane' do
  action :remove
end

如果我必须管理大量用户,这是否可持续?似乎我必须记得进入并更改此块,然后进入并在所有相关节点上使用配方后删除此代码,因为一旦用户是代码没有做任何事情。

更重要的是,如果我有这样的循环:

node['users'].each do |name|
  user name do 
    action :create
  end
end

我必须将单个用户的名称从属性中拆分出来,并将他们自己的块添加到配方中以将其删除,然后记得在所有节点收敛后删除该块。

我对流程的理解是否正确,或者是否有更好的方法来管理用户资源?

不,这最终是不可持续的。任何大到担心用户流动的地方都应该已经切换到 LDAP 以集中管理用户。这很糟糕,但它基本上仍然是我们拥有的最好的。通常这也与 Active Directory 服务器一起用于其他事情,并用于 Unix 用户管理。