One click gets you everything you need
Chef Workstation gives you all the tools you need to get started and includes:
- Chef Workstation App
- Chef Infra Client
- Chef InSpec
- Chef Habitat
- Chef Command Line Tool
- Test Kitchen
- Cookstyle
- Various Test Kitchen and Knife plugins
- Upgrade Lab
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 moreChef Workstation can be used to
Detect & Remediate Security Issues
- Scan a server to verify network time protocol (
ntp
) is installed and running - Remediate scan failure by Installing and configuring
ntp
- Re-scan server for compliance
$ inspec exec check_ntp.rb -t ssh://centos@34.222.175.132
Profile: tests from /Users/tball/check_ntp.rb (tests from .Users.tball.check_ntp.rb)
Version: (not specified)
Target: ssh://centos@34.222.175.132: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://centos@34.222.175.132 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://centos@34.222.175.132
Profile: tests from /Users/tball/check_ntp.rb (tests from .Users.tball.check_ntp.rb)
Version: (not specified)
Target: ssh://centos@34.222.175.132: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.
Learn more
$ chef generate cookbook my_custom_policy \
--copyright 'Jean Doe' --email jdoe@company.tld
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.
Learn More
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.
Learn More
$ 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.