Puppet vs Powershell DSC… really ?

Puppet and Powershell DSC : better together !

Puppet or Chef provide a complete solution stack : they are a management console, they are a domain-specific language, and they are a platform-level implementation : when adopting Puppet, you adopt it from top to bottom.

Powershell DSC only provides the platform-level implementation. It doesn’t come with the management tools and centralized reporting tools like Puppet Dashboard needing in a large, or even in many medium-sized environments. At the end of the day, Puppet/Chef/etc and Powershell DSC are meant to accomplish every similar things, but Powershell DSC is only a piece of the picture, which provides advanced and lighweight windows products deployment capabilities.

Powershell DSC deployment configuration example

The Puppetlabs/DSC module manages Windows PowerShell DSC (Desired State Configuration) resources embeded in Puppet. This module generates Puppet types based on DSC Resources MOF (Managed Object Format) schema files downloaded from the Microsoft Powershell DSC Github repository. Use Powershell DSC combined with Puppet through the puppetlabs/dsc official Puppet module to manage windows servers and get the best of both tools to deploy complex windows applications like Sharepoint or Exchange :

  • Puppet allows for the central management of configurations, roles, and permissions.
  • Powershell DSC is the tool used to create and deploy windows-specific configurations for windows server platform or applications : registry, scheduled tasks, hyper-v, exchange or sharepoint specific configuration, …

Microsoft Powershell Chief Architect point of view

We view DSC as a platform technology to manage Windows, and this technology can be extended with the creation of new resources as well as the reuse of PowerShell DSC functionality in different solutions. As Microsoft partners make their components configurable via DSC, their customers will be able to choose from a wide range of configuration management tools that support DSC.

Puppetlabs/DSC v1.7.0 available for download

Puppetlabs/DSC v1.7.0 changelog

Puppetlabs/DSC puppet module has been released on Puppet forge on October 10th 2018. This is the first version of the module supporting Puppet 6.

New features :

  • Added Beaker Testmode Switcher
  • Added support for Puppet 6

Fixed issues :

  • Fix broken type files

**Changed :
**

  • Converted module to PDK format (MODULES-7399)

Install puppetlabs/dsc v1.7.0

Use the following command to manually install puppetlabs/dsc with puppet module tool.

puppet module install puppetlabs-dsc --version 1.7.0

Powershell DSC resources included in puppetlabs/dsc

The following Microsoft Powershell DSC resources are embeded in puppetlabs/dsc 1.7.0

AuditPolicyDsc: 1.1.0.0-PSGallery
OfficeOnlineServerDsc: 1.2.0.0-PSGallery
SecurityPolicyDsc: 2.2.0.0-PSGallery
SharePointDsc: 2.2.0.0-PSGallery
SqlServerDsc: 11.1.0.0-PSGallery
StorageDsc: 4.0.0.0-PSGallery
SystemLocaleDsc: 1.2.0.0-PSGallery
xActiveDirectory: 2.18.0.0-PSGallery
xAdcsDeployment: 1.4.0.0-PSGallery
xAzure: 0.2.0.0-PSGallery
xAzurePack: 1.4.0.0-PSGallery
xBitlocker: 1.1.0.0-PSGallery
xCertificate: 3.2.0.0-PSGallery
xComputerManagement: 4.1.0.0-PSGallery
xCredSSP: 1.3.0.0-PSGallery
xDatabase: 1.7.0.0-PSGallery
xDefender: 0.2.0.0-PSGallery
xDFS: 3.2.0.0-PSGallery
xDhcpServer: 1.6.0.0-PSGallery
xDismFeature: 1.2.0.0-PSGallery
xDnsServer: 1.9.0.0-PSGallery
xExchange: 1.19.0.0-PSGallery
xFailOverCluster: 1.10.0.0-PSGallery
xHyper-V: 3.11.0.0-PSGallery
xInternetExplorerHomePage: 1.0.0-PSGallery
xJea: 0.3.0.0-PSGallery
xMySql: 2.1.0.0-PSGallery
xNetworking: 5.6.0.0-PSGallery
xPendingReboot: 0.3.0.0-PSGallery
xPhp: 1.2.0.0-PSGallery
xPowerShellExecutionPolicy: 1.1.0.0-PSGallery
xPSDesiredStateConfiguration: 8.1.0.0-PSGallery
xRemoteDesktopAdmin: 1.1.0.0-PSGallery
xRemoteDesktopSessionHost: 1.5.0.0-PSGallery
xRobocopy: 2.0.0.0-PSGallery
xSCDPM: 1.2.0.0-PSGallery
xSCOM: 1.3.3.0-PSGallery
xSCSMA: 1.5.0.0-PSGallery
xSCSPF: 1.3.1.0-PSGallery
xSCSR: 1.3.0.0-PSGallery
xSCVMM: 1.2.4.0-PSGallery
xSharePoint: 2.1.0.0-PSGallery
xSmbShare: 2.0.0.0-PSGallery
xSqlPs: 1.4.0.0-PSGallery
xSQLServer: 7.0.0.0-PSGallery
xStorage: 3.2.0.0-PSGallery
xTimeZone: 1.7.0.0-PSGallery
xWebAdministration: 1.19.0.0-PSGallery
xWebDeploy: 1.2.0.0-PSGallery
xWindowsEventForwarding: 1.0.0.0-PSGallery
xWindowsRestore: 1.0.0-PSGallery
xWindowsUpdate: 2.7.0.0-PSGallery
xWinEventLog: 1.1.0.0-PSGallery
xWordPress: 1.1.0.0-PSGallery