Deployment–Using PDT for end-to-end deployment including Active Directory

At the public conferences this year – MMS 2013, TechEd 2013 North America, and TechEd 2013 Europe – I gave a “sneak peak” of the PDT VMCreator doing a full end-to-end deployment of an environment including Active Directory.  By far the most common question I got after each session was “when will that version be available?”… to which my response was “after event season is over and I get time to finish it!”.  Well, event season ended, I finished it, and it is part of PDT 2.5 which was released a few weeks ago.  In this post, I will explain how to use it, and how it works.

In the PDT 2.5 download, there are 2 sample variable files – Variable.xml and VariableAD.xml.  VariableAD.xml is the one that contains a sample for VMCreator with AD – just rename it to Variable.XML and PDT VMCreator will create AD for you.  The way this is configured is using an additional section in the <VMs> section of Variable.xml.  An example of this section is shown below:

<Domain>
<Name>contoso.com</Name>
<ServiceAccountOU>Services.HQ</ServiceAccountOU>
<GroupOU>Groups.HQ</GroupOU>
</Domain>

<Name> is the online required line in that section – when that entry exists, PDT VMCreator will set the first VM created to be a domain controller for a new domain.  The <ServiceAccountOU> and <GroupOU> lines are optional.

Here’s how this works.  When VMCreator creates the first VM, it adds a script to that VM that will install and configure a new Active Directory domain, and sets the VM to autologon and run that script.  It also copies all required media into that VM for the PDT Installer to run based on the deployment specified in Variable.xml.  Once the first VM is created, it is started.  VMCreator then continues to create all remaining VMs, but it does not start them – instead it waits for the domain controller creation to complete before starting them.  On the first VM, once Active Directory is installed, the script automatically creates all service accounts and groups needed for the deployment specified in Variable.xml – using the organizational units specified by <ServiceAccountOU> and <GroupOU> if those entries exist.  The script then waits until all other VMs needed for the deployment have joined the domain, at which point it automatically runs the PDT Installer.

This is a simple way to get complete isolated lab environments setup for testing various scenarios with System Center without using an existing lab environment.

There is further customization possible with version 2.5 of VMCreator – that will be the topic of my next post.