Chef NoMethodError, undefined method

When you try to bootstrap a node to a Chef server, you may get the error message

Compiling Cookbooks…
==============================================================
Recipe Compile Error in c:/chef/cache/cookbooks/…/attributes/default.rb
==============================================================
NoMethodError
————-
undefined method `…=’ for #<Chef::Node::VividMash:0x0000000004ca3268>

Relevant File Content:
>> default. …

In my case, the cookbook compiler could not interpret the dot notation in the recipes.

There are multiple ways to declare and use the Chef attributes:

default['ATT_NAME']

default["ATT_NAME"]

default[:ATT_NAME]

default.ATT_NAME

The last format, the dot notation is a legal form, but not accepted by the compiler that checks the cookbooks during bootstrapping. The same cookbook works perfectly in Test Kitchen, and in chef-client.

The solution is to change the dot notation to one of the other formats, preferably to the first in the list above.

 

Leave a Reply