I kinda fell into chef and now I have a few nodes running and would like to clean up how I manage my cookbooks and dependencies.
Historically, I would often search the chef supermarket to find a cookbook that suited my needs and use knife to install that cookbook. knife cookbook site install foo
. Which put the cookbook into my cookbooks directory chef-repo/cookbooks/foo
.
When I couldn't find exactly what I was looking for, I'd create my own namespaced cookbook in that same directory chef-repo/cookbooks/mycompany-bar
Now that I have a nice little collection of community cookbooks and custom cookbooks I find it difficult to manage the dependencies and want to migrate to berkshelf.
My question is:
A lot of my roles simply use the community cookbooks that I installed w/out any sort of wrapper cookbook that "includes" them.
ie:
run_list "recipe[hostname]", "recipe[user::data_bag]", "recipe[chef-client::delete_validation]", "recipe[chef-client]", etc....
I'm not sure how to install and use any community cookbook with berkshelf w/out first creating my own cookbook and then having a dependency to a community cookbook. Is that the correct way I should be doing things?
Do I need to write a bunch of wrappers for these existing cookbooks? ie: Have my own mycompany-hostname
cookbook that depends on the community hostname
cookbook?