Reputation: 111
I would like to test/debug cookbooks. However, using chef-client to restart a chef run, this requires me to modify cookbooks, upload them to the chef server & synchronize cookbooks. I would like to be able to modify the cookbooks that were synchronized and stored in the cache, instead of having to upload every single little change I make at each iteration. Is this possible?
Thanks
tl;dr in chef-client, how to use the cached cookbooks instead of synchronizing them every time
Upvotes: 8
Views: 13405
Reputation: 13
For Chef prior version 12 command is
chef-solo -z -o <cookbook_name>
Upvotes: 1
Reputation: 4205
chef-client --skip-cookbook-sync
Use cached cookbooks without overwriting local differences from the server. Use with caution. Useful for patching a set of cookbooks on a machine when iterating during development. New in Chef Client 12.8.1.
https://docs.chef.io/ctl_chef_client.html
Upvotes: 19
Reputation: 81
You can try a command something like this:
chef-client --local -o 'recipe[cookbookname::recipie]' --log_level info
or
chef-client -z -o 'recipe[cookbookname::recipie]' --log_level info
Upvotes: 0
Reputation: 37580
You can use chef-client in local mode (see here and here).
But beware that this uses everything from the local disk, also environments, roles and data bags.
For development, test-kitchen is the tool of choice, which might ease your pain.
Upvotes: 0