A workstation is a computer running the Chef Development Kit (ChefDK) that is used to author cookbooks, interact with the Chef server, and interact with nodes.
The workstation is the location from which most users do most of their work, including:
- Developing and testing cookbooks and recipes
- Testing Chef code
- Keeping the chef-repo synchronized with version source control
- Configuring organizational policy, including defining roles and environments, and ensuring that critical data is stored in data bags
- Interacting with nodes, as (or when) required, such as performing a bootstrap operation
Some important components of workstations include:
knife is a command-line tool that provides an interface between a local chef-repo and the Chef server. knife helps users to manage:
The chef-repo is the repository structure in which cookbooks are authored, tested, and maintained:
The directory structure within the chef-repo varies. Some organizations prefer to keep all of their cookbooks in a single chef-repo, while other organizations prefer to use a chef-repo for every cookbook.
|knife.rb||A knife.rb file is used to specify configuration details for knife.|
Chef is a systems and cloud infrastructure automation framework that makes it easy to deploy servers and applications to any physical, virtual, or cloud location, no matter the size of the infrastructure. Each organization is comprised of one (or more) workstations, a single server, and every node that will be configured and maintained by the chef-client. Cookbooks (and recipes) are used to tell the chef-client how each node in your organization should be configured. The chef-client (which is installed on every node) does the actual configuration.
The Chef Development Kit is a package that contains everything that is needed to start using Chef:
- chef-client and ohai
- chef command line tool
- Testing tools such as Test Kitchen, ChefSpec, Cookstyle, and Foodcritic
- Chef provisioning
- Everything else needed to author cookbooks and upload them to the Chef server
After installing the ChefDK, learn more about the tools that are packaged with the Chef development kit: