Overriding attributes
You can set attribute values in attribute files. Usually, cookbooks come with reasonable default values for attributes. However, the default values might not suit your needs. If they don't fit, you can override attribute values.
In this section, we'll look at how to override attributes from within recipes and roles.
Getting ready
Make sure you have a cookbook called my_cookbook
, and that the run_list
of your node includes my_cookbook
, as described in the Creating and using cookbooks recipe in Chapter 1, Chef Infrastructure.
How to do it…
Let's see how we can override attribute values:
Edit the default attributes file to add an attribute:
mma@laptop:~/chef-repo $ subl cookbooks/my_cookbook/attributes/default.rb default['my_cookbook']['version'] = '1.2.3'
Edit your
default
recipe. You'll override the value of theversion
attribute and print it to the console:mma@laptop:~/chef-repo $ subl cookbooks/my_cookbook/recipes/default.rb node.override['my_cookbook']['version'] ...