Need more DSC Resources? Announcing DSC Resource Kit Wave 2

Need more DSC Resources? Announcing DSC Resource Kit Wave 2

Rate This
  • Comments 4

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

 click here

xADDomainController

Create and manage an AD Domain Controller

xActiveDirectory

 click here

xADUser

Create and manage an AD User

xActiveDirectory

 click here

xWaitForADDomain

Pause configuration implementation until the AD Domain is available.  Used for cross machine synchronization.

xActiveDirectory

 click here

xSqlServerInstall

Create and manage a SQL Server Installation.

xSqlps

 click here

xSqlHAService

Create and manage a SQL High Availability Service.

xSqlps

 click here

xSqlHAEndpoint

Create and manage the endpoint used to access a SQL High Availability Group.

xSqlps

 click here

xSqlHAGroup

Create and manage a SQL High Availability Group.

xSqlps

 click here

xWaitForSqlHAGroup

Pause configuration implementation until a SQL HA Group is available.  Used for cross machine synchronization.

xSqlps

 click here

xCluster

Create and manage a cluster.

xFailOverCluster

 click here

xWaitForCluster

Pause configuration until a cluster is available.  Used for cross machine synchronization.

xFailOverCluster

 click here

xSmbShare

Create and manage a SMB Share.

xSmbShare

 click here

xFirewall

Create and manage Firewall rules

xNetworking

 click here

xVhdFile

Manage files to be copied into a Vhd.

xHyper-V

 click here

xWebsite

Added functionality to xWebsite to support configuration of https websites.

xWebAdministration

 click here

xVhd

Bug fixes

xHyper-V

 click here

 

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

Leave a Comment
  • Please add 7 and 6 and type the answer here:
  • Post
  • OK, this may be a daft question but what does 'may provide fixes on a “fix forward” basis' mean?

    I've never heard of the phrase "fix forward". I've checked with a couple of colleagues and none of them have heard of it before.

    Excited to give some of this a go. We're going to be trialling using DSC for all configuration management as we move to AWS.

  • Hey Alex,

    When we say that we 'may provide fixes on a "fix forward" basis,' we mean a couple of things:

    1. "Fix Forward" means that any fixes or updates to the resources will be put out in the next version of the resource.  It will be your responsibility to update to the latest version of the resource (fixes will not be rolled into previous versions of the resource).  This is in contrast to items that we ship in Windows, where fixes can be automatically rolled out to all previous versions through Windows Update.  Does that make sense?

    2. "May provide fixes" means that we do not guarantee that we will support these resources moving forward.  When we release items in Windows, there's a very clear support contact.  We want to be very clear that that contract doesn't exist with items released through DSC Resource Kit, and that they may not be maintained long term.  You are totally free to implement any fixes you need on your own, and you can contribute those fixes to community versions of the resources (e.g. github.com/.../DSC).

    Does that make sense?  Good luck!

    John Slack

    Program Manager

    PowerShell Team

  • Yes, that makes sense. Thanks for answering the question.

  • PowerShell DSC configurations do not 'compile' if Strict Mode is set to 1 or 2. Is this going to be looked at?

Page 1 of 1 (4 items)