Knowing about Chef
Chef is a provisioning tool that we can use to set up a server for use for a project. The configuration, which determines how the server needs to be set up, can be stored within our Vagrant project and can be shared with teammates through version control, ensuring that everyone gets an up-to-date copy of the required development environment.
Information about how a server should be configured, that is, its software, files, users, and groups, is written into files known as Chef recipes. These recipes are written as Ruby files. Chef takes this information and matches it to providers that are used to execute the configuration on the machine in a compatible way.
For our purposes, we will use Chef-solo, which is its standalone mode (this is also how Vagrant uses it). Chef-solo means that everything runs from one machine. Chef also has client-server capabilities, where you can define the Chef cookbooks and roles for all the servers in your infrastructure on a central host, and...