Do as I say, don't do as I do..
Anyone who has worked in IT for some time, is aware of the fact that there are various ways to automate tedious tasks. Unattended installations, scripts, templates, etc., all ease our lives just that little bit more.
There is, however, a practical danger to this automation. In this article, I want to take a quick glimpse at VMWare and, in particular, VM templates.
VMWare templates
So what are VMware templates ? For those of you not familiair with VMWare in itself, have a look at http://www.vmware.com and then come back to read this. For those who do know the product, keep on reading..
VM templates are literally templates of virtual machines. They are stripped version, using a customization wizard or config file to add those extra little tidbits we like to tweak so much, such as hostnames, etc.
Now, you are all undoubtedly aware of the risk often associated with templates and images; security identifiers. Thankfully, the smart people at VMWare are also aware of them and offer you an option that regenerates SIDs! (similar to Sysinternal's NewSid). So, naturally, after using a VM template to create a new machine (we're talking ESX server here, which is a lovely product. I'll be writing a more indepth article on that in a week or so).
Using VMWare templates is quick and clean. Very little hassle, a customization wizard and re-SIDding! Great!
Pitfalls
At my present customer, we decided to use a NLB (Network Load Balancing) solution to provide a more stable Web-solution. Though it had been a while since I had implemented NLB, it wasn't that difficult. Using the second virtual NIC (included with the template), we swiftly set up the NLB cluster. Added the first host. Entered the second host's IP-address.. only to be confronted with the message 'No network adapter available to set up a new cluster.'. Perplexity ruled. We weren't interested in setting up a new cluster! Slightly misguiding message, really. What the message really meant was: 'I can not find a NIC with a GUID that is not already in use, therefore, I have no adapter to add to this cluster'. And there, we hit the sneaky pitfall of VMware templates; the customization wizard does NOT regenerate GUIDs for the NICs! And, in case you're scoffing and say 'Well, that's easily solved!', neither does NewSid.
Solution
There are various ways to work around this problem, thankfully. The first solution is easy enough: Remove the virtual NICs and add two new ones. The removal and addition generates new GUIDs and the problem is solved (I'm sure you're happy to know the cluster is presently up and running and quite happy).
The other solution is a bit more clean; ensure that your VMware templates are sysprepped. Microsoft's SysPrep also takes care of SID-generation and GUID-generation and therefore solves this problem nicely.
Conclusion
VMWare ESX Server and related products are wonderful bits of software, and I will be happy to post more exhaustive articles on them soon. However, make sure you are aware how various processes in the product work (such as this one); I have, on quite a few occassions, noticed various basic OS operations fail or give most interesting results because of the underlying VMWare layer. It's great, but it's not foolproof. Very little is.