用户管理菜谱错误

时间:2016-08-26 03:23:03

标签: ruby chef chef-recipe cookbook

我正在使用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错误。

错误似乎发生在代码块的第三行。

1 个答案:

答案 0 :(得分:0)

可能的问题是node['user_management']['users']未设置。仔细检查您的角色或您认为设置该属性的其他任何内容是否实际正在做某事。