我正在使用github https://github.com/FFIN/user_management
中的以下食谱不幸的是,当我运行食谱时,我不断收到此错误
ERROR: undefined method each for nil:NilClass
错误似乎源于此代码块的第二行。似乎它没有认识到.each是一种方法。有什么想法吗?我的数据包与作者相同,所以我怀疑这是问题所在。
sudoer_users = Array.new()
node['user_management']['users'].each do |user|
user_management user['username'] do
comment user['comment'] unless user['comment'].nil?
create_home user['create_home']
shell user['shell'] unless user['shell'].nil?
password user['password'] unless user['password'].nil?
uid user['uid'] unless user['uid'].nil?
gid user['gid'] unless user['gid'].nil?
ssh_keys user['ssh_keys'] unless user['ssh_keys'].nil?
delete_home_when_remove user['delete_home_when_remove'] unless user['delete_home_when_remove'].nil?
if user['action'] == 'remove' then
action :remove
else
action :create
end
end
修改
我继续在我的属性中定义['node']['user_management']['users']
以指向我的数据包default['user_management']['users'] = chefusers
。
我也改变了
node['user_management']['users'].each do |user|
到
node['user_management']['users'].each_line do |user|
但现在我得到了
You must supply a name when declaring a user_management resource
错误。
错误似乎发生在代码块的第三行。
答案 0 :(得分:0)
可能的问题是node['user_management']['users']
未设置。仔细检查您的角色或您认为设置该属性的其他任何内容是否实际正在做某事。