Environment in a Box
I have been using Virtualization since VMWare first came out. It has been the best thing since sliced bread for testing and evaluating products without tearing down your entire environment each time something new was released. I am not going to get into a detailed discussion between VMWare and Microsoft Virtual Server but each has its strengths and weaknesses.
My main issue is with performance. I want to get the most efficient utilization of resources that I can without having to carry around more than one laptop.
The typical configuration for hosting VMs, is to run the machine on a host operating system like Windows XP or Linux. This is ok for one, two, even three VMs, provided you have enough RAM, disks, and spare CPU cycles. But for some reason I found this to be too slow.
I have finally figured out a configuration that works for me, is portable and performs really well. Right now I am using my Lenovo T60 for the prototype of this environment. I would use my Toshiba M400 but the tablet features are not available as part of Windows 2003 =(.
So here is the configuration in a nutshell.
Consolidate all the platform services to the host operating system
Run Windows 2003 R2 directly on the hardware
Run SQL Server 2005 on the host operating System
Run Exchange 2003 SP1 on the host operating System
Run all the application servers in VMs
Configuration Summary:
· I have install Windows 2003 R2 on the laptop's internal drive, in my case it was a 80 GB SATA drive.
· I configured it with an IP Address of 192.168.1.2 (My DSL router is on 192.168.1.1)
· You can then promote or add the server to your domain (This server is my second domain controller)
If this is the first domain controller in your domain the DNS server is already installed. If this is the second machine, you will need to install DNS and add your DNS domain as a secondary zone. This is necessary for when you are disconnected.
· Run Active Directory Sites and Service and make your new domain controller a catalog server. This is necessary otherwise some Active Directory operations will fail.
· Install Exchange 2003 SP2 and add it to your Exchange infrastructure (This is my second exchange server)
· Configure SQL Server 2005
o Create an account in Active Directory so you can use Kerberos Delegation ( i.e. mydomain\sqlsvc)
o Run setspn -a MSSQLSvc/your.server.fqdn:1433
o Run setspn -a MSSQLSvc/yourserverrdn:1433
o Run setspn -a MSSQLSvc/yourservername
o Go back to Active Directory and enable your account for delegation
o Install SQL Server 2005 SP1 on the server
o After installing you may need check the port that the SQL Server is using for TCPIP. It took me awhile to figure out that SQL Server 2005 can have a few instances of SQL Server running, so you will need to register an SPN for each instance, or in my case force SQL Server to use port 1433. You need to user the SQL configuration mmc.
· Install VMWare Server and create a Virtual Machine on the second hard disk, in my case it was a 100GB SATA drive in the media SATA adapter.
o Install Windows 2003 R2 on the machine
o Configure the IP Address to an address that is in the same subnet as the host
192.168.1.3
o Set the DNS to your domain controller, 192.168.1.2
o Add the machine to your domain
o Configure the machine for Trusted for Delegation
o Install Microsoft Office SharePoint Server 2007
o I also created an account in Active Directory to run the server with (mydomain\spsvc)
· If you want to utilize Kerberos you will need to register an SPN
Setspn -a HTTP/myserver.fqdn mydomain\spsvc
· It also needs to be trusted for delegation
· Repeat above for each VM that you need
· For fun you can create DNS aliases for your URLs. I like using moss.mydomain.local for my installation of MOSS 2007
· Finally the last thing you need to do to get it all working correctly is to install the Microsoft Loopback adapter.
o The loopback adapter is configured for the same IP address as my main network card (this can also be you wifi card but you will have to use static IP addresses so everything works) You will need to disable the loopback when you are not using it and vice versa disable the other network card when you are disconnected.
· In VMWare you should configure the Loopback network card to VMNet2 in the "Host Virtual Network Mapping" tab. Also the machine should be in the same subnet as the host machine, i.e. 192.168.1.0
· Install all the rest of your software, i.e. Visual Studio 2005, Office 2007 client, etc...
If you have done everything correctly, you should be able to disconnect from your network and continue to use all your network services offline. So far these are the things I do when I am working offline.
ü Make sure that you have moved any email boxes to the server on the laptop when you need to use them offline
ü Make sure that you have configured outlook to use RPC-HTTP otherwise the Outlook client will fail to load. OWA does work fine disconnected.
ü Enable the Loopback adapter
ü Disable the network adapter
ü You will need to restart the VMWare NAT service
ü Change the VM's network card from bridged to VMNet2 (should be connected to the Loopback adapter)
The only thing that doesn't seem to work is using Exchange disconnected when not using HTTP. If I figure this one out I will definitely post it.
Happy remote development!!!