Good news everyone! Starting today, you can use Windows PowerShell Desired State Configuration (DSC) to configure Active Directory and SQL Server (including High Availability Groups). We are pleased to release the next wave of the DSC Resource Kit – one that enables you to start using DSC to solve your real world problems and scenarios.
When we shipped DSC in Windows Server 2012 R2, we shipped a platform with great infrastructure for configuration. The next step for any platform like DSC is the creation of resources to make it immediately usable in significant real world scenarios. With the resources we shipped in box, configuring SQL Server was out of reach for most of our customers. That's changing today. Now is the time to create a vibrant ecosystem and expansive community.
Over the past few months, we've worked hard to kick start this community. Last month, we released the first wave of the DSC Resource Kit. That release contained six experimental DSC resources, enabling you to configure IIS websites and Hyper-V. Those were a limited subset of resources – a first pass at the process. Now, we’re ready to turn it up a notch.
This wave of the DSC Resource Kit includes fourteen new resources. These resources are all focused on enabling you to configure Active Directory and SQL Server (including High Availability Groups). These are real world scenarios where DSC can make an impact. Soon, we will be blogging an involved example that uses these resources to set up a SQL High Availability Group using DSC. In addition, we’ve updated many of the resources from the initial release, adding features and fixing bugs.
Click here to see the latest DSC Resource Kit modules.
We hope these resources will be a starting point for the DSC community – something to facilitate DSC resource creation. Feel free to take and modify these resources to meet your needs (while following the Renaming Guidelines). We were thrilled to see that several community members created modified versions of last wave’s resources in PowerShell.Org’s GitHub repository. Also, don’t forget that you can create your own resources – for help, check out this blog post and the DSC Resource Designer.
On a more serious note, we must reiterate that these resources come without any guarantees. The “x” prefix stands for experimental – which means these resources are provided AS IS and are not supported through any Microsoft support program or service. We will monitor the TechNet pages, take feedback, and may provide fixes on a “fix forward” basis.
Finally – before diving into the details – we want to invite everyone to give feedback on the DSC Resource Kit. Are you hungry for even more resources? Do you need DSC to enable any important scenarios? Let us know through the comments or TechNet Q&A -- there's definitely more to come.
Description of Resources
After installing the modules, you can discover all of the resources available through the Get-DSCResource cmdlet:
Here is a brief description of each resource (for more details on a resource, check out the TechNet pages).
Resource | Description | Module Name | Link |
xADDomain | Create and manage an Active Directory Domain | xActiveDirectory | |
xADDomainController | Create and manage an AD Domain Controller | xActiveDirectory | |
xADUser | Create and manage an AD User | xActiveDirectory | |
xWaitForADDomain | Pause configuration implementation until the AD Domain is available. Used for cross machine synchronization. | xActiveDirectory | |
xSqlServerInstall | Create and manage a SQL Server Installation. | xSqlps | |
xSqlHAService | Create and manage a SQL High Availability Service. | xSqlps | |
xSqlHAEndpoint | Create and manage the endpoint used to access a SQL High Availability Group. | xSqlps | |
xSqlHAGroup | Create and manage a SQL High Availability Group. | xSqlps | |
xWaitForSqlHAGroup | Pause configuration implementation until a SQL HA Group is available. Used for cross machine synchronization. | xSqlps | |
xCluster | Create and manage a cluster. | xFailOverCluster | |
xWaitForCluster | Pause configuration until a cluster is available. Used for cross machine synchronization. | xFailOverCluster | |
xSmbShare | Create and manage a SMB Share. | xSmbShare | |
xFirewall | Create and manage Firewall rules | xNetworking | |
xVhdFile | Manage files to be copied into a Vhd. | xHyper-V | |
xWebsite | Added functionality to xWebsite to support configuration of https websites. | xWebAdministration | |
xVhd | Bug fixes | xHyper-V |
Renaming Guidelines
When making changes to these resources, we urge the following practice:
1. Update the following names by replacing MSFT with your company/community name and replacing the “x” with "c" (short for "Community") or another prefix of your choice:
a. Module name (ex: xWebAdministration becomes cWebAdministration)
a. Folder name (ex: MSFT_xWebsite becomes Contoso_cWebsite)
b. Resource Name (ex: MSFT_xWebsite becomes Contoso_cWebsite)
c. Resource Friendly Name (ex: xWebsite becomes cWebsite)
d. MOF class name (ex: MSFT_xWebsite becomes Contoso_cWebsite)
e. Filename for the <resource>.schema.mof (ex: MSFT_xWebsite.schema.mof becomes Contoso_cWebsite.schema.mof)
2. Update module and metadata information in the module manifest
3. Update any configuration that use these resources
We reserve resource and module names without prefixes ("x" or "c") for future use (e.g. "MSFT_WebAdministration" or "Website"). If the next version of Windows Server ships with a "Website" resource, we don't want to break any configurations that use any community modifications. Please keep a prefix such as "c" on all community modifications.
As specified in the license, you may copy or modify this resource as long as they are used on the Windows Platform.
Requirements
The DSC Resource Kit requires Windows 8.1 or Windows Server 2012 R2 with update KB2883200 (aka the GA Update Rollup). You can check whether it is installed by running the following command:
PS C:\WINDOWS\system32> Get-HotFix -Id KB2883200
Source Description HotFixID InstalledBy InstalledOn
------ ----------- -------- ----------- -----------
NANA-TOUCH Update KB2883200 NANA-TOUCH\Admini... 9/30/2013 12:00:00 AM
On supported down level operating systems, they require WMF 4.0. Refer to these previous blog posts for more information on WMF 4.0 and issues with partial installation.
Using Resources
For simple examples of configurations that use these resources, check out the respective TechNet pages. Soon, we will be blogging an involved example that details the configuration of a SQL High Availability Group using DSC. If you need help deploying the resources, see this blog post.
Thanks,
John Slack
Program Manager
PowerShell Team