Here's what a chef cookbook looks like:
. ├── attributes │ ├── default.rb │ └── bla.rb ├── files │ ├── default │ │ └── some_file.txt │ └── windows │ └── some_file.txt ├── libraries │ ├── mylib.rb │ └── default.rb ├── providers │ ├── default.rb │ └── foo.rb ├── recipes │ ├── bar.rb │ └── default.rb ├── resources │ ├── default.rb │ └── foo.rb └── templates ├── default │ └── some_template.erb └── windows └── some_template.erb
I went through the docs, but I'm still confused about how and when each part of a chef cookbook is loaded/executed, and whether it's automatic (and if so in what order?) or on-demand. Could you please provide a summary or point to one?
I'm specifically confused about the logic for loading files under the
resources directories. They all contain a
default.rb file, but it seems that in some cases it's automatically loaded (for attributes, for example), and in some cases it is not (for recipes, for example). There's a page in the doc about the order in which attribute files are loaded, but it's not clear in what order within the
attributes directory. It's not clear to me why you would want to have attribute files other than
default.rb (it seems that most cookbooks only use
default.rb). What would the use-case be?
Perhaps I should ask separate questions, but I thought it might be useful for other chef-newbies to have a summary here.
Thanks a lot.