I have pleasure in announcing POSHChef, a native PowerShell chef client for
POSHChef is a PowerShell module that uses the Chef Server API to peform
(most) of the functionality of chef-client using PowerShell. It uses DSC
(Desired State Configuration) under the covers to ensure that the
configuration is correct. There are three main reasons for writing it:
- Chef requires Ruby to be installed. Admittedly this is easier with the
Omnibus installer, but it is still an extra overhead on Windows.
- Users and developers from a Microsoft background would have to know
Ruby to allow PowerShell to be executed, making the learning curve for the
adoption of Chef harder.
- The way in which PowerShell is executed by Chef makes testing of the
PowerShell code more difficult.
POSHChef takes its direction from Chef. So much so that it is possible to
incorporate PowerShell recipes and DSC resources into existing Cookbooks,
making it feasible to have cross platform cookbooks using different clients
to execute them. There are some limitations to what it can do and these
are documented on the Wiki.
Currently there is no build process to create a package of any type for
POSHChef, but this is being worked and will be available in Q1 2015.
The module has a dependency on the Logging module, which has also been
released and can be found at https://github.com/POSHChef/Logging.
Additionally there are some supporting cookbooks that are designed to be
used with POSHChef:
- POSHChef - provides ability to schedule POSHChef as task in Task
- Pester - Provides ability to run tests at the end of a POSHChef run
- DevCook - Allows development of POSHChef compliant cookbooks to be
tested on a local machine
- Chocolatey - Provides DSC resource to allow applications to be
installed from the Chocolatey repository
These are all hosted in the main GitHub organisation which is
This has been developed as an enhancement of Chef. Its development by no
means is meant to belittle the great work of the Chef team. I have been
using Chef for the past 5 years and highly rate it and I will continue to
use it on my non-Windows machines.
Development has taken just over a year and we are now using it to help
provision Windows environments. As always there will be bugs and things
that do not work as well as they should, so please log issues on GitHub and
we will get to them. Please have a look and a play and let us know what