# Chef-zero "deprecated" and chef solo to be used again?

**URL:** <https://discourse.chef.io/t/chef-zero-deprecated-and-chef-solo-to-be-used-again/10276>\
**Category:** Chef Infra (archive)\
**Created:** [January 24, 2017, 7:11am UTC](https://discourse.chef.io/t/chef-zero-deprecated-and-chef-solo-to-be-used-again/10276 "2017-01-24T07:11:04Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alexander\_Skwar](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/alexander_skwar/32/1205_2.png) [@Alexander\_Skwar](https://discourse.chef.io/u/Alexander_Skwar)\
**Post date:** [January 24, 2017, 7:11am UTC](https://discourse.chef.io/t/chef-zero-deprecated-and-chef-solo-to-be-used-again/10276/1 "2017-01-24T07:11:04Z")

</div>

Hello

On the [#chef IRC channel](https://botbot.me/freenode/chef), [coderanger said](https://botbot.me/freenode/chef/2017-01-23/?msg=79832480&page=3):

> Datamancer: What you want is to use chef-solo  
> Datamancer: Like I said, you want to use chef-solo  
> The only reason to still be using `chef-client -z` is for policy archives  
> The docs are out of date  
> The correct thing to use now is chef-solo again

**Does chef-solo (with version 12.3.0?) support all the things, that chef-zero supports/supported?** Are encrypted data bags built in? What about search?

And, maybe a bit more important: _ **Is this somewhere somehow "documented", that chef-solo is to be favoured instead of chef-zero?** _

Thanks a lot,  
Alexander

---

<div class="post-metadata">

**Author:** ![Tensibai](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/tensibai/32/29_2.png) [@Tensibai](https://discourse.chef.io/u/Tensibai)\
**Post date:** [January 24, 2017, 8:53am UTC](https://discourse.chef.io/t/chef-zero-deprecated-and-chef-solo-to-be-used-again/10276/2 "2017-01-24T08:53:23Z")

</div>

> [@Alexander\_Skwar](#):
>
> s this somewhere somehow "documented", that chef-solo is to be favoured instead of chef-zero?
> 
> Thanks a lot,

Not that I know, latest version of chef-client/chef-solo is 12.13. Chef-solo now use local-mode, keeping original behavior, with enhanced possibility of using search etc, if you give it a repo. So it is not that local mode is deprecated, only the command which chef-solo covers now.

Useful links to latest documentation:

> **[Chef Infra Client (executable)](https://docs.chef.io/ctl_chef_client/)**
>
> Chef Infra Client is an agent that runs locally on every node that is under management by Chef Infra Server.

> **[chef-solo](https://docs.chef.io/chef_solo/)**
>
> chef-solo is a command that executes Chef Infra Client in a way that does not require the Chef Infra Server to converge cookbooks.

---

<div class="post-metadata">

**Author:** ![coderanger](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/coderanger/32/5_2.png) [@coderanger](https://discourse.chef.io/u/coderanger)\
**Post date:** [January 24, 2017, 11:20pm UTC](https://discourse.chef.io/t/chef-zero-deprecated-and-chef-solo-to-be-used-again/10276/3 "2017-01-24T23:20:50Z")

</div>

We (the maintainers) haven’t done a great job on publicizing this. Starting in Chef 12.11, `chef-solo` was unified with `chef-client` to both use the same internal code paths. The original solo behavior has been left via a legacy mode flag, but this will be removed in Chef 13. We have been trying to go back to a simpler way to talk about things: Chef is Chef, there is only one Chef, if you use Chef with Chef Server you run `chef-client`, otherwise you run `chef-solo`. Two flavors, one “thing”. The hope is that long term this will be clearer but in the short term it definitely isn’t, for which I apologize. The main exception to this currently is that the output from `chef export` needs to be run with `chef-client -z` instead of `chef-solo`, but this is a bug that will be fixed in the future. Other than that one issue, everything that works in Chef should work in both `chef-client` and `chef-solo` as best as we can make it.

---

<div class="post-metadata">

**Author:** ![dormi](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/dormi/32/2198_2.png) [@dormi](https://discourse.chef.io/u/dormi)\
**Post date:** [February 15, 2018, 11:42am UTC](https://discourse.chef.io/t/chef-zero-deprecated-and-chef-solo-to-be-used-again/10276/4 "2018-02-15T11:42:16Z")

</div>

@coderanger from what you said looks like chef-solo is the way to go.

But in the docs seems like "chef-client -z" is the prefered way:

> The chef-client includes an option called local mode (--local-mode or -z), which runs the chef-client against the chef-repo on the local machine as if it were running against a Chef server. Local mode was added to the chef-client in the 11.8 release. If you are running that version of the chef-client (or later), you should consider using local mode instead of using chef-solo.

> **[chef-solo (executable)](https://docs.chef.io/ctl_chef_solo/)**
>
> chef-solo is a command that executes Chef Infra Client in a way that does not require the Chef Infra Server to converge cookbooks.

---

<div class="post-metadata">

**Author:** ![thommay](https://avatars.discourse-cdn.com/v4/letter/t/f08c70/32.png) [@thommay](https://discourse.chef.io/u/thommay)\
**Post date:** [February 15, 2018, 11:57am UTC](https://discourse.chef.io/t/chef-zero-deprecated-and-chef-solo-to-be-used-again/10276/5 "2018-02-15T11:57:48Z")

</div>

`chef-solo` and `chef-client -z` are functionally identical, besides the behaviour that @coderanger noted regarding the output of `chef export`. I’ll get the docs fixed, thanks.
