7

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

eloaf
  • 101
  • 1
  • 2
  • 6

4 Answers4

17
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

mcoolive
  • 3,805
  • 1
  • 27
  • 32
1

For Chef prior version 12 command is chef-solo -z -o <cookbook_name>

0

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.

StephenKing
  • 36,187
  • 11
  • 83
  • 112
0

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
Chewpers
  • 2,430
  • 5
  • 23
  • 30