Manual deployment of a secure and resilient production grade Citrix XenDesktop infrastructure using GUI interface is a pain !

The huge number of components to deploy associated to the complexity of a secure integration of Microsoft core components such as SCVMM, SQL Server or IIS make deployment of such a platform much more complicated than a proof of concept lab.

Lets use the best of Puppet and Powershell DSC to automate Citrix XenDesktop deployment !

Windows PowerShell Desired State Configuration (DSC) is a configuration management platform built into Windows. DSC centers around "configurations" which are easy-to-read documents that describes the desired final state an environment made up of computers ("nodes") with specific characteristics.

Powershell DSC is even better when combined with a configuration orchestration tool like Puppet.

While you can use DSC on its own, it's much better with Puppet. In this blog post we’ll look at several reasons Puppet and PowerShell DSC can work together to enable you to do more.

Puppet provides rich management capabilities that can layer on top of DSC, including node classification, status of nodes, global-based access control and more. Tracking and reporting change becomes easier with Puppet — and reporting is a must for any company that has to do any kind of compliance auditing.

The official puppetlabs/dsc module links both technologies to achieve deployments as simple as ensuring a specific Windows feature is enabled or as complex as deploying a production grade Citrix XenDesktop environment or a Sharepoint infrastructure.