prodではないテストでの別の不満足な問題。シェフ:定義されていないノード属性またはメソッド ``ノード上の `<< '
コードは質問でノード属性に文字列を追加します。以下のために(私が主題で見つけ
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:
質問:テストキッチンで働く上で述べたように
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
はこの、生産のシェフ・シェルが、PRODでレシピを実行するには、以下をスローします例Chef: Undefined node attribute or method `<<' on `node' when trying to add)は、node
オブジェクトで優先順位を使用していないことを示していますが、リンクに表示されているものとはまったく異なるものです。
私はここで何か迷っているかもしれませんが、以前は働きましたが、まだキッチンで働いています。それはchef-zero
で複製しない、何らかの種類の奇妙なコンパイルの問題かもしれませんか?私はあなたが欲しいロジックは、おそらく何をする必要があるかより、この
node.normal['tom-ssh']['allow_groups'] ||= []
node.normal['tom-ssh']['allow_groups'] |= %w{bots}
どのシェフのバージョンを使用していますか? – coderanger
最新(12.17.44)私は他のバージョンにダウングレードしようとしましたが、結果は同じです –