Еще одно разочарование в работе по тестированию не в prod.в шеф-поваре: неопределенный атрибут узла или метод `<< 'на` node'
Код вопроса добавляет строку к атрибуту узла.
if node['tom-ssh']['allow_groups']
if !node['tom-ssh']['allow_groups'].include?("bots")
node.normal['tom-ssh']['allow_groups'] << "bots"
end
else
node.normal['tom-ssh']['allow_groups'] = ["bots"]
end
Это, как уже упоминалось выше, работает в тестовом кухне, в шеф-оболочки в производстве, но работает рецепт в прод бросает следующие:
NoMethodError
-------------
Undefined node attribute or method `<<' on `node'. To set an attribute, use `<<=value' instead.
Cookbook Trace:
---------------
/var/chef/cache/cookbooks/tom-users/recipes/reboot_bot.rb:22:in `from_file'
/var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:347:in `load_recipe'
/var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:303:in `block in include_recipe'
/var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:302:in `each'
/var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:302:in `include_recipe'
/var/chef/cache/cookbooks/tom-security-patches/recipes/default.rb:8:in `from_file'
/var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:347:in `load_recipe'
Relevant File Content:
----------------------
/var/chef/cache/cookbooks/tom-users/recipes/reboot_bot.rb:
15: '/sbin/reboot'
16: ]
17: end
18:
19: # allow 'bots' to ssh log in
20: if node['tom-ssh']['allow_groups']
21: if !node['tom-ssh']['allow_groups'].include?("bots")
22>> node.normal['tom-ssh']['allow_groups'] << "bots"
23: end
24: else
25: node.normal['tom-ssh']['allow_groups'] = ["bots"]
26: end
27:
Рассмотрены вопросы, которые я нашел по этой теме (для пример Chef: Undefined node attribute or method `<<' on `node' when trying to add) ссылаются на не использование приоритета на объекте node
, но я делаю это совсем другое, как показано в ссылке.
Возможно, мне здесь не хватает чего-то глупого, но оно работало до этого, и все еще работает на кухне, поэтому я выбежал из мест, чтобы посмотреть. Может ли это быть какой-то странной проблемой компиляции, которая не реплицируется в chef-zero
?
Какую версию шеф-повара вы используете? – coderanger
последние (12.17.44). но я попытался перейти на другие версии, и результат такой же –