Over the past few weeks, we’ve been working on incorporating Desired State Configuration into our continuous deployment pipeline. We’ll be using this technology internally, eating the dog food, but we also want to be able to help our clients leverage this technology.
To get started, we decided to take advantage of the excellent work and experience of Steven Murawski. During his time at Stack Exchange, Steven was one of the first and most visible adopters of DSC in a production environment. Over time, he developed a set of PowerShell modules related to DSC, which have been published as open source over at https://github.com/PowerShellOrg/DSC.
We’ve been working on some updates to this code and are now pleased to announce that it’s publicly available via GitHub at https://github.com/devopsguys/DSC/tree/development
A list of the changes that Dave Wyatt has been working on within DevOpsGuys over the past couple of months can be found at https://github.com/PowerShellOrg/DSC/pull/80
The most extensive changes, and many of the design decisions were made in collaboration with Steve Murawski. There’s still more work to be done before this branch is ready to be merged into master; we just wanted to get this code out into the public repo asap. The motivation behind these changes was to get the tooling modules to a point where we can train clients to use them in a continuous delivery pipeline.
The biggest priorities were creating examples of the folder structures required by DscConfiguration and DscBuild, and simplifying the Resolve-DscConfigurationProperty API and code.
We’ve also tried to improve the overall user experience by making minor changes in other places; making Invoke-DscBuild run faster, making failed Pester tests or failed calls to Test-cDscResource abort the build, making Test-cDscResource stop reporting failures for resource modules that are actually valid, etc.
We’d love your feedback on the changes we are making, so please get in touch with your comments.