Different use cases
The best way to learn Chef is to see real-world examples. We will not install and create nodes in the current chapter, but we will explain the dependencies of different environments. More detailed information about installation of these environments will be explained in Chapter 2, Setting Up an Environment for Chef-Solo.
PHP WordPress
This section assumes that you are already familiar with WordPress. To set up a WordPress site, we need the following packages installed on any machine:
- Apache Web server
- MySQL Database server
- PHP
Chef-Solo will be responsible for downloading WordPress and configuring Apache and PHP along with its dependencies. Chef Software, Inc. already has a WordPress recipe. We can use the same recipe to install a new blog.
Python/Django application
In this example, we will configure a node for Python application, assuming our Python application is built in Python using a Django framework with a MySQL database.
To run the web server, we will use Nginx. The complete requirements will look like the following:
- Python
- Django framework
- Nginx
As you can see, quite a long list needs to be installed on a system to work properly. After defining the recipes, all the instructions are written in code files and after execution of these recipes, the server will be up and running.
Chef provides us with the facility to automate to achieve efficiency, scalability, reusability, and documentation.