Skip to content

PowerShell/PSDesiredStateConfiguration

Repository files navigation

PSDesiredStateConfiguration module

Note

The next generation of this platform is in development. Please submit your feedback on DSC v3.

PSDesiredStateConfiguration (DSC) is the PowerShell module that enables writing configuration as code.

The DSC platform was originally built on top of WMI for Windows. Starting in PowerShell 7.1 and working with internal partner teams Azure Guest Configuration and Automanage, we started making DSC cross-platform by enabling Invoke-DSCResource to directly use resources without going through the Local Configuration Manager (LCM).

Our initial cross-platform work to enable partner teams:

  • Separated out the DSC parts in the PowerShell engine and moved them as a subsystem into the PSDesiredStateConfiguration module
  • Remove PSDesiredStateConfiguration module from the PowerShell 7 package. This allows the PSDesiredStateConfiguration module to be developed independently of PowerShell and users can mix and match versions of PowerShell and PSDesiredStateConfiguration for their environment.
  • Removing the dependency on MOF: Initially, only support DSC Resources written as PowerShell classes. This includes tooling to convert existing script based DSC Resources to be wrapped as PowerShell classes.

Documentation and resources

The documentation for PSDesiredStateConfiguration 3.0.0-beta1 is a work-in-progress. We invite the community to review the documentation and assist us as we work on new documentation during the platform development.

For more information about DSC v3, see PowerShell Desired State Configuration Overview

To download the latest release from the PowerShell Gallery, see PSDesiredStateConfiguration 3.0.0-beta1

Community Feedback

As we continue this journey to make DSC a cross-platform technology, we invite the community to share your ideas and open issues. During the PowerShell 7.3 timeframe, we remain focused on enabling partner teams and will not be accepting public pull requests.

Build

Requirements

Build Process

  • Run build.ps1 -Build -Clean
  • Compiled module will be in ./out/PSDesiredStateConfiguration

CI - Continuous Integration

CI pipeline definition is in .vsts-ci\azure-pipelines-ci.yml and running Compliance and Pester tests in test\PSDesiredStateConfiguration.Tests.ps1 on Windows, Linux and Mac. CI builds are not signed.

Publishing Releases

The module is released on Powershell Gallery. For a release the code of this repo is mirrored into an internal repo and .vsts-ci\azure-pipelines-release.yml pipeline is run. Release builds are signed.

Code of Conduct

Please see our Code of Conduct before participating in this project.

Security Policy

For any security issues, please see our Security Policy.