Chapter 15. Environments

Environments are a feature of Chef Server used to model the server configurations required during each phase of your software development lifecycle, as shown in Figure 15-1.

Environments overview
Figure 15-1. Environments overview

Environments reflect your patterns and workflow, and can be used to model the life stages of your application, such as:

  • Development
  • Testing
  • Staging
  • Production

Every Chef Server starts out with a single environment, the _default environment.

Environments might include attributes necessary for configuring your infrastructure, such as:

  • The URL of a payment service API
  • The location of a package repository
  • The version of Chef configuration files that should be used

Environments allow for isolating resources on a Chef Server because environments can contain version constraints, unlike with roles. Environments still have a use even when you have Test Kitchen at your disposal, because you’ll probably want to do some testing against servers in your production environment.

Create a Dev Environment

Environments can be created and managed in the same fashion as data bags and roles, organized in a directory under chef-playground. The directory name is environments by default.

Use the chef-playground directory you created in Chapter 11. Use the same dual command prompt setup you used there. Start the chef-zero server on an open port in one window. We will be ...

Get Learning Chef now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.