ContributorsIn Learn the Chef basics, you saw how to use Chef to bring up a web server and serve a basic home page. You configured the server by running the commands directly on it. Now, let's simulate a production environment more closely by using Chef to configure another web server that you manage remotely, from your workstation.
Typically, Chef is comprised of three parts – your workstation, a Chef server, and nodes.

- Your workstation is the computer from which you author your cookbooks and administer your network. It's typically the machine you use everyday. Although you'll be configuring Ubuntu, your workstation can be any OS you choose – be it Linux, macOS, or Windows.
- Your Chef server acts as a central repository for your cookbooks as well as for information about every node it manages. For example, the Chef server knows a node's fully qualified domain name (FQDN) and its platform.
- A node is any computer that is managed by a Chef server. Every node has the Chef client installed on it. The Chef client talks to the Chef server. A node can be any physical or virtual machine in your network.
In the parts that follow, you'll use each of them.
After completing this module, you should be able to:
- bring up a Chef server and a node to manage.
- write Chef code to define a policy from your workstation.
- apply that policy to a node.
- update your policy and apply it to a node.
- understand how to diagnose and resolve a failed
chef-client run. - set up
chef-client to run periodically. - use search to run
chef-client on multiple nodes. - use roles to define your node's behavior and attributes based on its function.
Note To successfully complete this module, you'll need two systems in addition to Chef server:
- A system running Linux, macOS, or Windows to act as your workstation. You can use a virtual machine or cloud instance if you don't want to use your primary computer.
- A system running Ubuntu 14.04 to act as your node. This system can use spare hardware or run as a virtual machine or cloud instance.
You don't have to bring up any systems yet. The pages that follow explain everything you'll need to get set up. You'll begin by setting up your workstation for Chef development.
- Test configuration
This module was last tested on 03 May 2018 using this configuration:
- Chef server 12.17.33 on Amazon Web Services
- Region: us-east-1
- AMI ID: ami-9c56efe3
- Instance type: t2.large
- A node running Ubuntu 14.04 on Amazon Web Services
- Region: us-east-1
- AMI ID: ami-67b60218
- Instance type: t2.micro
- Software: Chef client 13.8.5
- A workstation running Ubuntu 16.04 on Amazon Web Services
- Region: us-east-1
- AMI ID: ami-9c56efe3
- Instance type: t2.medium
- Software: Chef Development Kit 2.5.3 (ChefDK is a precursor to Chef Workstation)
Your environment likely won't match this one. But we provide this information to give you a sense of when and how we tested this module.
Although we recommend the latest software versions, the results you see may vary depending on your environment and the software versions you use.