workstation-hero
Chef Workstation

The quickest way to get started with Chef’s suite

One click gets you everything you need

Chef Workstation gives you all the tools you need to get started and includes:

Run Ad-Hoc tasks from the CLI

Apply dynamic, repeatable configurations to your servers directly over SSH or WinRM via chef-run. This provides a quick way to apply config changes to the systems you manage whether or not they’re being actively managed by Chef Infra, without requiring any pre-installed software.

Robust testing & development tools

Chef Workstation comes to replace Chef DK. It includes features such as development tools for testing, dependency resolution, and cookbook generation, ensuring that whether you’re consuming existing chef policies, or creating your own, you have everything you need to get up and running quickly.

Learn more

Chef Workstation can be used to

Detect & Remediate Security Issues

  1. Scan a server to verify network time protocol (ntp) is installed and running
  2. Remediate scan failure by Installing and configuring ntp
  3. Re-scan server for compliance
$ inspec exec check_ntp.rb -t ssh://[email protected]

Profile: tests from /Users/tball/check_ntp.rb (tests from .Users.tball.check_ntp.rb)
Version: (not specified)
Target:  ssh://[email protected]:22

  ×  check ntp: Service ntp (2 failed)
    ×  Service ntp is expected to be installed
    expected that `Service ntp` is installed
    ×  Service ntp is expected to be running
    expected that `Service ntp` is running

Profile Summary: 0 successful controls, 1 control failure, 0 controls skipped
Test Summary: 0 successful, 2 failures, 0 skipped

$ chef-run ssh://[email protected] start_ntp.rb
[✔] Packaging cookbook... done!
[✔] Generating local policyfile... exporting... done!
[✔] Applying start_ntp from /Users/tball/start_ntp.rb to target.
└── [✔] [ubuntu1] Successfully converged start_ntp.

$ inspec exec check_ntp.rb -t ssh://[email protected]

Profile: tests from /Users/tball/check_ntp.rb (tests from .Users.tball.check_ntp.rb)
Version: (not specified)
Target:  ssh://[email protected]:22

  ✔  check ntp: Service ntp
    ✔  Service ntp is expected to be installed
    ✔  Service ntp is expected to be running

Profile Summary: 1 successful control, 0 control failures, 0 controls skipped
Test Summary: 2 successful, 0 failures, 0 skipped

Define Customized Automation

Visit Chef Supermarket to find a library of partner and community maintained configuration policy, or use Chef’s declarative resources to create custom automation for your organization.

$ chef generate cookbook my_custom_policy \
--copyright 'Jean Doe' --email [email protected]

Generating cookbook my_custom_policy
- Ensuring correct cookbook content
- Committing cookbook files to git

Your cookbook is ready. Type `cd my_custom_policy` to enter it.

Why not start by writing an InSpec test? Tests for the default recipe are stored at:

test/integration/default/default_test.rb

If you'd prefer to dive right in, the default recipe can be found at:

recipes/default.rb

Effortless Manage Infrastructure

Quickly configure servers directly over SSH or WinRM. Execute ad-hoc tasks on multiple hosts in parallel to quickly configure groups of servers.

chef-run `terraform output mynodes_public_ips` \
--user centos -i ~/.ssh/mykey \
package ntp
✔ Packaging cookbook... done!
✔ Generating local policyfile... exporting... done!
\ Applying package[ntp] from resource to targets.
  \ 34.222.192.248 Applying package[ntp]...
  \ 34.222.175.132 Applying package[ntp]...
  \ 34.223.63.28 Applying package[ntp]...

Test Automation Locally Before You Publish

Chef Workstation includes Cookstyle and Test Kitchen to provide automated testing of your configuration policy. Combine these tools with Chef Automate to provide an auditable history of all change being applied to your environments.

$ kitchen test \

-----> Starting Test Kitchen (v2.5.3)
-----> Cleaning up any prior instances of 
-----> Destroying ...
       Finished destroying  (0m0.00s).
-----> Testing 
-----> Creating ...
       Bringing machine 'default' up with 'virtualbox' provider...
       ==> default: Checking if box 'bento/centos-7' version '202002.04.0' is up to date...
       ==> default: Machine not provisioned because `--no-provision` is specified.

InSpec highlights from our Blog

blog-infrastructure

Goodbye ChefDK, Hello Chef Workstation

Read more
blog-workstation

Product Announcement: Chef Workstation Released as Generally Available!

Read more
security

Automatically Updating Cookbooks with Cookstyle

Read more
View all posts

Free in-depth training and hands-on experiences built by the Chef experts.

Learn Chef