Understanding Chef-Solo
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:
- Node data storage: Node data storage is used to keep values consistent across each node in a large infrastructure.
- 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
Tip
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.
Similarly, you can search by instance type, node, environment, nested attributes, and multiple arguments.
- 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.
- Authentication: Chef-Solo has no authentication module; anyone can execute the recipes:
# chef-solo privileges test ALL=(ALL) NOPASSWD: /usr/bin/chef-solo #test is name of non-root user.
- Persistent attributes: There is no centralized cookbook system for Chef-Solo; it just executes the recipes from a local cookbook.
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.