Getting started (notions and tools)
Chef is a very complex system, with a lot of notions and vocabulary that can be very discouraging at first. In this chapter, we'll go through all the most important notions, so it can also serve as a quick cheat sheet or reminder.
Running Chef
Chef can be used in multiple ways, the most important are the following:
Client/server mode: An agent runs on every managed client, regularly getting updates from the server, and applying them. In this mode, all Chef code is distributed from the Chef server.
Chef-Solo: In this mode, the need for a Chef server is removed at the cost of less features, including important ones such as search, API, persistent storage of nodes information, and more. All Chef code needs to be sent over in some way to be applied manually.
Note
Other modes exist, such as Chef Zero, but they are beyond the scope of this book.
The multi-platform client is written in Ruby, while its server counterpart is written in Erlang. The Chef server is open...