Chef Solo will be local mode by default

in the next release of Chef - in about a month’s time - we’ll be changing chef-solo so that it uses the same code as chef-client’s local-mode (when you run chef-client -z).
We’ve been meaning to do this for some time - the RFC was accepted in November 2014 - so we’re really excited to get this out.
That said, we’d really appreciate as much testing as possible so that we can ensure it is working properly. I and others have done tests with chef-solo-search, and it all seems good, but that’s clearly not the whole story.
You should not have to change your recipes at all - Chef::Config[:solo] will still be set as before.

I’m aware of at least one bug - - if you’re using vagrant directly.

To test, install a current version of chef using
curl | sudo bash -s -- -c current -P chef
. { iwr -useb } | iex; install -channel current -project chef

and run as usual.

The old behaviour of chef-solo is still available by uttering chef-solo --legacy-mode.

FYI: I ran into a small issue where the chef-client in local-mode created a node file that stored the current node’s state into a nodes directory from where I ran chef-solo. The next time I ran chef-solo, I intended to replace a configuration Hash with a new one but apparently the saved node state got merged with the new Hash and I got the merged Hash in the resulting configuration rather than what I was expecting. I guess I can run with the legacy_mode flag to avoid this or delete the node file that got generated before I run again.

This may be in part to node.set entries as they will persist on the node