I’m currently testing the newly released Ultimate Deployment Appliance version 2.0 (beta) for provisioning a couple of ESX-hosts. As these hosts are too diverse to create kickststart scripts for, but don’t have a DVD -ROM drive to install ESX 4 from, I decided to use the UDA simply as a boot medium. In other words, I wanted the UDA to just serve the installation files through PXE and present the default installation GUI. No form of automation (via kickstart or otherwise) were needed to get the job done.
I soon realised that such an UDA was great for all the other ESX installations I do at all kinds of customers: no need to build customized scripts for every installation type or customer, but the ease of not having to fiddle around with physical media (have I mentioned before that most physical stuff like DVD’s gives me a rash?). Just attach the server and UDA (running on a laptop, in my case) with a crosscable or separated VLAN to prevent your regular network to go bonkers on the extra DHCP/TFTP server, boot the server, and off you go: a normal installation is presented on the console of the ESX-host.
So, how do you alther the UDA to enable this piece of fine magic? It’s actually quite simple.
Let’s begin with default configuration needed to get the UDA working:
- Download the UDA 2.0 beta (here)
- Unzip
- Add it to VMware Workstation / Server / Player / ESX(i)
- Add a second SCSI disk. 1GB should do fine, but I’ve chosen 8GB to be sure.
- Boot the VM
- Walk trough the setup wizard, configuring the hostname, IP-settings and Services (I’ve enabled DHCP, TFTP and HTTP)
- Log in to the webinterface
- Extend the ‘locallv’ volume group with the second hard disk
- Upload the ESX4 ISO
- Add ESX4 as an OS
- Create a new template based on ESX4
Now for the exciting part:
- Remove the “ks=http://[UDA_IPADDR]/kickstart/ColOGD/[SUBTEMPLATE].cfg” part from “Kernel option command-line”
initrd=initrd.[OS].[FLAVOR] mem=512M url=http://[UDA_IPADDR]/[OS]/[FLAVOR]
- Remove all text from the “Kickstart File” field (that’s right!)
Now you’re all set to PXE boot the server. Select the desired ESX template and off you go. In just a few seconds, you should be presented with a GUI installer screen, enabling you to install ESX as usual.
Conclusion
Even with all the really cool enhancements in using master- and subtemplates in version 2 of the UDA, it is so flexible that even this simple configuration is easy to setup and use. You can even use the same instance on an UDA to do both: one default GUI installation option, and other templates for the more complex installation options enabling you to use the full potential of kickstart scripts.
Please do check out RTFM Education, where Mike Laverick has posted a UDA 2.0 Quick Start Guide as well as a Sample “Master” Template and Sample SubTemplate to kickstart your kickstart experience!
Update
As Ronan mentiones in the comments: If you experience any problems editting the subtemplates, please make sure to use Mozilla Firefox instead of Microsoft Internet Explorer!
I have a problem with the use of the subtemplate.
Apparantly when you enter after entering all variables (to go to the next line) you will always get following error : Invalid fieldname found: “VARIABLE ”
Is there a special command to go to the next line?
uda 2 is cool , but have you tried eda0.89 esx deploynent appliance (esx3.5/4) also cool, could you compare them please? thanks
Anttony, I’ve tried getting used to working with the EDA, but I’ve never felt strongly about it. Both appliances however, do the same, and have a reasonably identical feature set and purpose. I’ve even heard rumors that the EDA and UDA will soon be merged into a single appliance!
Great article and I’ve found very useful, although am having an issue during the installation of ESX on the destination server… Its prompting to Insert ESX Media just after you click next on the summary settings page???
Any clues?
!! Update !!
Ok seem to have got to the source of the problem, but cannot get any further.
It appears that the vswif0 interface is picking up the IP that I’m dishing out and not the NICS. When using a kickstart script eventually it will come up with No COS NICS Added by user.
The hardware in question is a HP DL585 with 4 NICS in and I’ve tried IPAPPEND 2 and also ksdevice and cannot get past this… please help !!!
pcrisp, I advise you to go the the VMTN community thread to get any further help on this subject.
Hi,
I’m having the same problem as David. When doing manual edit on the subtemplate, it keeps throwing an error : invalid fieldname found : “XXXX”
Any ideas?
Same as previous post – getting errors when trying to use the “subtemplate manual edit” – I just get an error. “Message from webpage – Invalid fieldname found”
Anyone previously getting this managed a workaround? Or is it start from scratch and recreate the problem?
I found that if you dont use IE the sub-template option works just fine. Also you can edit the variables from under the covers it a flat file.
Hi,
I fixed my problem by putty into the uda and editing the validatesubtemplates.js file under /var/public/www/js folder, line 24. Original line:
if (/^[A-Za-z][A-Za-z0-9_]*$/.test(headerarray[j]))
I changed it to :
if (/^[A-Za-z][A-Za-z0-9_]*$/.test(headerarray[j-1]))
Hope this helps.
Lilys, what does editting validatesubtemplates.js do, exactly?
Sorry guys, I just realised that I posted the wrong solution…. :( The editing I mentioned above is basically ignore checking on the last header. This will fix the problem, but not properly. The correct solution is to change the line from :
if (/^[A-Za-z][A-Za-z0-9_]*$/.test(headerarray[j]))
to:
headertext = headerarray[j].replace(/[rn]+/g,””);
if (/^[A-Za-z][A-Za-z0-9_]*$/.test(headertext))
This will remove unwanted carriage returns (line breaks) characters. The if statement returns true if the header string begins with a letter and is followed by letters, digits, or underscores (no spaces/linebreaks allowed). So if there’s a header containing a carriage returns, it will fail the condition.
If we use the example subtemplate.cfg (http://www.rtfm-ed.co.uk/downloads/subtemplate.cfg) mentioned in this blog, the last header “HAHEARTBEAT” contains line breaks character. As a result, the if statement will return false as the last header does not match with the regular expression and you will see a pop up window with error message “Invalid fieldname found: “HAHEARTBEAT
”
Hope this makes sense…
Happy UDA-ing! :)
Hi
I have followed the instructions here and am having no luck.
I have latest version of UDA 2 buld 5. I am trying to install esx 3.5 update 5 (cant use 4 due to only having a 32 bit server).
Everything works fine util I try adding the os when I get an error about vmlinuz not being copied.
Could anyone please point me in the right direction for hep?
THanks
Having the same issue as “can’t get this to work”. tried other OS’s and it seems to complete the active script, but I don’t see anything actually copied…
Try the newest version of the UDA.