eloaf
eloaf

Reputation: 111

How to disable cookbook synchronization with chef-client?

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

Answers (4)

a.moiseyenko
a.moiseyenko

Reputation: 13

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

Upvotes: 1

mcoolive
mcoolive

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

Saurabh Singh
Saurabh Singh

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

StephenKing
StephenKing

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

Related Questions