Although there are tools out there that can automate the creation of a lab environment, they generally cost money. With tight budgets, it's not always possible to create an elegant solution so you sometimes have to MacGyver it and create your own process. At Westminster College recently, we had a need to create a lab environment to do some testing of our SharePoint 2007 environment that wouldn't affect our production servers. Our public web site runs SharePoint, so making sure it stays operational is pretty important. SharePoint 2007 and its associated SQL Server are two of the very few remaining physical servers we have in our environment. In this case, we needed a lab environment that as closely as possible mimicked the production systems, right down to the content.
In order to create a complete lab environment, we needed the following:
- The primary SharePoint 2007 server. This is a physical machine. We're going all virtual with SharePoint once we move to SharePoint 2010.
- The SharePoint database server. This is another physical server that will be decommissioned once we migrate to SharePoint 2010.
- A domain controller. All of our domain controllers are virtual.
Here's what we did. It's not elegant, but it got the job done.
- We used VMware Converter to clone the two physical servers to new virtual machines running in our VMware server cluster. This was easy.
- We created a copy of one of our domain controllers using vCenter.
- The new virtual machines were reconfigured to disconnect the network adapter. The reason: When the virtual machine was powered on, we wanted to avoid conflicts since the new VMs would be running on our production network.
- We booted each lab virtual machine and reconfigured their network interfaces to isolate them from the production network. They were still running in the same VLAN as our other servers, but used an IP range completely separate from the other machines.
- On the newly cloned lab domain controller's DNS server, we made the appropriate changes; we changed the entries for each of the cloned servers to match their new IP addresses.
- Next, we reconnected the network interfaces and rebooted each machine.
- We went on our merry way and we were able to accomplish our task.
Again, there are probably a ton of ways to accomplish this goal, but our solution worked for us and I wanted to share our experience. If you've done something similar using a different method, I'd love to hear about it!