Convert private DSC Resources to a Puppet module

If you have private DSC resources, you can convert them to a Puppet module.

Some PowerShell modules contain internal business logic and are not published to the PowerShell gallery. Follow this guide to convert your private DSC Resources to a Puppet module, using the Puppet.dsc PowerShell module.
Before you begin: If you do not already have a PSRepository set up, you can set up a NuGet server to host a feed, or you can register a local folder to use as the source.
  1. Run the following command to install the Puppet.dsc PowerShell module:
    PS C:\Users\Administrator> Install-Module -Name Puppet.Dsc

    This command provides the New-PuppetDscModule function that builds Puppet modules out of PowerShell resources.

    The Puppet.Dsc module retrieves the source PowerShell module from a PSRepository feed. In most cases, this is the standard PowerShell Gallery, but it can use any feed you specify.

    The following example points a PSRespository to a development environment where maintained PowerShell modules are stored. PowerShell can use either a local or shared folder as the source.

    # Make sure you specify the correct parameters
    PS> Register-PSRepository -Name YourRepository -SourceLocation 'C:\Users\YourName\Projects\PowershellModules' -ScriptSourceLocation 'C:\Users\YourName\Projects\PowershellModules' -InstallationPolicy Trusted
  2. Run the following command to build a Puppet module using your private PSRepository feed:
    # Make sure to specify the correct parameters 
    PS> New-PuppetDscModule -PowerShellModuleName YourPowerShellModule 
    -PowerShellModuleVersion 2.2.3 -Repository YourRepository

    The Puppet.Dsc module generates to the import folder. Use Puppet Development Kit (PDK) to build a module tarball and distribute it — in the same way that you distribute other private Puppet modules. For more information, see the PDK documentation.