2016-08-26 4 views
0

Я использую следующую кулинарную книгу из GitHub https://github.com/FFIN/user_managementпользователь

К сожалению, я получаю эту ошибку, когда я запускаю рецепт

ERROR: undefined method each for nil:NilClass

ошибка, кажется, происходящий из второго из этого блока кода. Кажется, это не распознавание. Как метод. Любые идеи почему? Мой пакет данных совпадает с автором, поэтому я сомневаюсь, что это проблема.

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

EDIT

Я пошел вперед и определил ['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

Вероятная проблема заключается в том, что node['user_management']['users'] не устанавливается. Дважды проверьте, что ваша роль или что-то еще, что вы думаете, устанавливает этот атрибут, на самом деле что-то делает.

+0

Спасибо coderanger. Я отредактировал этот вопрос для вашего предложения. – jebjeb