Test Lab Build Series – 1 – Planning

The first part of any environment build, be it a test lab, a development platform, or even a production environment, is planning.  Arguably the 2nd most important task in any project is this step, because it is going to guide you along the way.

Step 1, determine what your high level goals are, and make a list of them.  For example:

  • A test lab that I can wipe and rebuild in a very short time frame
  • Cross platform compatibility
  • Services to include:
    • Active Directory
    • DNS
    • DHCP
    • Client Workstations of all supported OS
    • Test Servers of all supported OS
  • Automated and scripted as much as possible so that test work can begin immediately upon completion

Step 2, with our list of goals listed out, we can then proceed with going into finer detail to figure out how to accomplish them.  For example:

  • A test lab that I can wipe and rebuild in a very short time frame
    • This indicates we should probably use virtualization. Physical hardware deployment and configuration is time consuming and inefficient when compared to a virtual environment.
  • Cross platform compatibility
    • Some people prefer VMware, some people prefer Hyper-V. So let’s go ahead and account for both environments since we typically utilize both.
  • Services to include:
    • Active Directory
      • 2 Domain Controllers (helpful for testing/ensuring replication, site specific tests for AD site aware applications, etc.)
    • DNS
      • Internal DNS for handling name resolution and testing DNS processes
    • DHCP
      • Internal DHCP for address handling and ease of server management
    • Client Workstations of all supported OS
      • Windows 7, Windows 8, Windows 10
      • All configured to join the domain (though certainly not required for all test scenarios)
    • Test Servers of all supported OS
      • Windows Server 2012R2
      • All configured to join the domain (though certainly not required for all test scenarios)
    • Automated and scripted as much as possible so that test work can begin immediately upon completion
      • When it comes to processes, as automation usage increases, time efficiency increases while errors decrease.

Step 3, get down to the specifics needed to accomplish everything listed in Step 2.  For example:

  • A test lab that I can wipe and rebuild in a very short time frame
    • This indicates we should probably use virtualization. Physical hardware deployment and configuration is time consuming and inefficient when compared to a virtual environment.
      • Requirements
        • Use a dedicated host or a local workstation depending on the virtualization platform of choice.
  • Cross platform compatibility
    • Some people prefer VMware, some people prefer Hyper-V. So let’s go ahead and account for both environments since we utilize both.
      • Requirements
        • Hyper-V Host: Local Windows 10 Client running Hyper-V Service
        • VMware Host: Dedicated VMware ESXi 6.0 Host
  • Services to include:
    • Active Directory
      • 2 Domain Controllers (helpful for testing/ensuring replication, site specific tests for AD site aware applications, etc.)
        • Requirements
          • Server Names: AD1, AD2
      • DNS
        • Internal DNS for handling name resolution and testing DNS processes
          • Requirements
            • Hosted on AD1, AD2
      • DHCP
        • Internal DHCP for address handling and ease of server management
          • Requirements
            • Hosted on AD1, AD2
      • Client Workstations of all supported OS
        • Windows 7, Windows 8, Windows 10
          • Requirements
            • Client Names: Win7, Win8, Win10
          • All configured to join the domain (though certainly not required for all test scenarios)
      • Test Servers of all supported OS
        • Windows Server 2012R2
          • Requirements
            • Server Names: Srv1, Srv2, Srv3
          • All configured to join the domain (though certainly not required for all test scenarios)
    • Automated and scripted as much as possible so that test work can begin immediately upon completion
      • When it comes to processes, as automation usage increases, time efficiency increases while errors decrease.
        • Requirements
          • Utilize Windows System Image Manager to:
            • Create Autounattend.xml file for automatic installation when booting from the Windows ISOs for each Operation System
              • Windows 2012 R2
              • Windows 10
              • Windows 8
              • Windows 7
          • Utilize Deployment and Imaging Tools Environment to:
            • Install necessary driver packages for the image deployments
              • VMXNET3
            • Create the ISO installation media
          • Utilize PowerShell scripts to:
            • Deploy VMs to host
            • Configure VMs to required specifications
            • Create the domain and DNS and join all domain controllers
            • Create the DHCP service and configure it
            • Join VMs to the Domain

Step 4, summarize the list of requirements into a punchlist:

  1. Use a dedicated host or a local workstation depending on the virtualization platform of choice.
  2. Hyper-V Host: Local Windows 10 Client running Hyper-V Service
  3. VMware Host: Dedicated VMware ESXi 6.0 Host
  4. Server Names: AD1, AD2
    1. AD, DNS, DHCP
  5. Client Names: Win7, Win8, Win10
  6. Server Names: Srv1, Srv2, Srv3
  7. Utilize Windows System Image Manager to:
    1. Create Autounattend.xml file for automatic installation when booting from the Windows ISOs for each Operation System
      1. Windows 2012 R2
      2. Windows 10
      3. Windows 8
      4. Windows 7
  8. Utilize Deployment and Imaging Tools Environment to:
    1. Install necessary driver packages for the image deployments
      1. VMXNET3
    2. Create the ISO installation media
  9. Utilize PowerShell scripts to:
    1. Deploy VMs to host
    2. Configure VMs to required specifications
    3. Create the domain and DNS and join all domain controllers
    4. Create the DHCP service and configure it
    5. Join VMs to the Domain

 

And there you have it, a build plan for our test environment in a simple, easy to read format.  Obviously the steps listed above don’t contain all of the specifics, but as we dig in, we’ll be able to sort out the details.

Advertisements
This entry was posted in Deployment, Installation, Management, Powershell, Scripting, Test Lab and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s