Chef-Solo is an open source version of chef-client. It executes recipes from the local cookbooks. It is a limited version of chef-client and has much fewer features than it. It does not have the following features:
Search indexes: Search index is a full list of objects that are stored by the server, including roles, nodes, environments, and data bags. They are a fully text-based search and its queries can be made using wildcard, range, and fuzzy logic. While using Knife, a search can be made by using a subcommand from Knife.
The following command is an example. To search by a platform ID, use the following command:
knife search node 'rackspace:*' –i
The result for the preceding command would be as follows:
4 items found ip-1B45DE89.rackspace.internal ip-1B45DE89.rackspace.internal ip-1B45DE89.rackspace.internal ip-1B45DE89.rackspace.internal
Downloading the sample code
You can download the sample code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
Centralized distribution of cookbooks: As Chef-Solo works individually, it does not have the ability for distribution of cookbooks. Even if you have deployed Chef server, Chef-Solo will not be able to retrieve recipes from a centralized source.
Centralized API for integration with other infrastructure components: There is no centralized API for Chef-Solo to retrieve other configurations from a different machine. For instance, if your application needs database connectivity, you will not be able to get the IP of the database source. There are multiple solutions to address this problem, which we will discuss in the upcoming chapters.
# chef-solo privileges test ALL=(ALL) NOPASSWD: /usr/bin/chef-solo #test is name of non-root user.
Although Chef-Solo has fewer features, it provides the core use of developing cookbooks.
Moreover, Chef-Solo provides a simple way to start. You can build the system by using cookbooks and it's extremely useful for booting new machines.
Like chef-client, Chef-Solo can be used for servers, applications, or any physical machine.