Announcing POSHChef


#1

Hello Everyone,

I have pleasure in announcing POSHChef, a native PowerShell chef client for
Windows.

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:

  1. Chef requires Ruby to be installed. Admittedly this is easier with the
    Omnibus installer, but it is still an extra overhead on Windows.
  2. 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.
  3. 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.

The code is hosted on GitHub and can be found at
https://github.com/POSHChef/POSHChef.
The Wiki is located at https://github.com/POSHChef/POSHChef.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
    Scheduler
  • 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
https://github.com/POSHChef.

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
you think.

Regards,

Russell Seymour
POSHChef


#2

This is completely, sweetly awesome. I love that you’ve taken the time to
do this, and found a niche that works for you. Looking forward to digging
in on how this works, and hearing more stories about what your experience
using it has been.

Are you coming to ChefConf? You really should be talking at ChefConf.

Love,
Adam

On Thu, Jan 8, 2015 at 6:57 AM, Russell Seymour <
russell.seymour@turtlesystems.co.uk> wrote:

Hello Everyone,

I have pleasure in announcing POSHChef, a native PowerShell chef client
for Windows.

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:

  1. Chef requires Ruby to be installed. Admittedly this is easier with
    the Omnibus installer, but it is still an extra overhead on Windows.
  2. 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.
  3. 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.

The code is hosted on GitHub and can be found at
https://github.com/POSHChef/POSHChef.
The Wiki is located at https://github.com/POSHChef/POSHChef.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
    Scheduler
  • 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
https://github.com/POSHChef.

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
you think.

Regards,

Russell Seymour
POSHChef


#3

stellar work dude. this will ease lot of things, windows developer machine
automation has always been pain, those low hanging fruits will be lot
easily done with this.
regards
ranjib

On Thu, Jan 8, 2015 at 6:57 AM, Russell Seymour <
russell.seymour@turtlesystems.co.uk> wrote:

Hello Everyone,

I have pleasure in announcing POSHChef, a native PowerShell chef client
for Windows.

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:

  1. Chef requires Ruby to be installed. Admittedly this is easier with
    the Omnibus installer, but it is still an extra overhead on Windows.
  2. 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.
  3. 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.

The code is hosted on GitHub and can be found at
https://github.com/POSHChef/POSHChef.
The Wiki is located at https://github.com/POSHChef/POSHChef.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
    Scheduler
  • 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
https://github.com/POSHChef.

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
you think.

Regards,

Russell Seymour
POSHChef


#4

On Thu, Jan 8, 2015 at 8:57 AM, Russell Seymour
russell.seymour@turtlesystems.co.uk wrote:

The Wiki is located at https://github.com/POSHChef/POSHChef.wiki

Very impressive! The corrected Wiki URL is:

Thanks,
Matt Ray
Director of Partner Integration :: Chef
matt@chef.io :: 512.731.2218
mattray :: GitHub :: IRC :: Twitter


#5

Awesomeness. I use Chef pretty heavily on Windows and came to the
conclusion Windows management ought to be done via a .Net language. Toyed
around with the idea of creating a .net Chef client but got myself pretty
convinced that F# would be the way to go(true cross platform) by abusing
fsinteractive.

Will definitely be keeping an eye on this.

-Greg

On Fri, Jan 9, 2015 at 4:24 PM, Matt Ray matt@getchef.com wrote:

On Thu, Jan 8, 2015 at 8:57 AM, Russell Seymour
russell.seymour@turtlesystems.co.uk wrote:

The Wiki is located at https://github.com/POSHChef/POSHChef.wiki

Very impressive! The corrected Wiki URL is:
https://github.com/POSHChef/POSHChef/wiki

Thanks,
Matt Ray
Director of Partner Integration :: Chef
matt@chef.io :: 512.731.2218
mattray :: GitHub :: IRC :: Twitter