如何在厨师中找到所有本地用户帐户

pab*_*blo 3 user-profile chef user-accounts chef-solo

使用操作码厨师,有没有办法查找或循环所有用户帐户?

我需要在每个用户的主目录中创建一个配置文件。我不想为此循环任何目录结构。

jti*_*man 7

当 Chef 运行时,ohai 会自动检测系统上的所有用户,并在node['etc']属性空间中可用。用户是node['etc']['passwd']. 您可以像散列一样迭代它。您可以通过比较用户的数字 ID 是否超过系统 /etc/login.defs UID_MIN 中定义的任何内容来排除“系统”或“由包预先创建”。

配方中的示例用法,用于创建您存储在说明书中的配置文件,每个用户都有一个不同的文件。

node['etc']['passwd'].each do |user, data|
  if data['uid'].to_i > 1000

    cookbook_file "#{data['dir']}/custom_config" do
      source "#{user}_custom_config"
      owner user
      group data['gid']
      mode 0644
    end

  end
end
Run Code Online (Sandbox Code Playgroud)

将“custom_config”替换为您的配置文件的名称。