Home > VMWare > ‘Upgrading’ from ESX to ESXi – a multipart series – Part 2b – Installation – ESX Deployment Appliance (EDA)

‘Upgrading’ from ESX to ESXi – a multipart series – Part 2b – Installation – ESX Deployment Appliance (EDA)



Part 2 -Installation Options


Part2b – ESX Deployment Appliance

‘Upgrading’ from ESX to ESXi – a multipart series – Part 2a – Installation – V-PXEServer

ESX Deployment Appliance (0.90 in Marketplace, but 0.95 available at: http://virtuall.eu/downloads/ – this got updated from 0.94 while I was typing this page up)

Setting up of this is quite simple.

You can find a video of the process here:

  1. Download from either Appliance store, or above link
  2. Extract contents of Zip file locally
  3. If you want to run this on ESX / ESXi, you’ll need to convert the vmdk from workstation to ESX / ESXi.

3.1.    Copy contents of zip to a Datastore  (Use WinSCP, or Veeam FastSCP or similar)

3.2.    Using Putty, I connected to an ESX host that has access to the Datastore that the files are stored on and browsed to the Folder path /vmfs/volumes/<datastore>/EDA

3.3.    import  the vmdk from workstation to ESX format file using vmkfstools

3.3.1.   vmkfstools –I ./Eda-v0.94.vmdk ./Eda-v0.94_new.vmdk (Interestingly, this changed the size from 407MB to 1048MB ?

3.4.    Next, I renamed the original vmdk to Eda-v0.94.vmdk.old, and the new one to Eda-v0.94.vmdk

3.4.1.    mv ./Eda-v0.94.vmdk ./Eda-v0.94.vmdk.old

3.4.2.   mv ./Eda-v0.94_new.vmdk ./Eda-v0.94.vmdk

  1. For 0.94 To import the host to VC was now as simple as right clicking the .vmx file using the datastore browser / local browser and selecting ‘import’ then following the wizard. (I know I could have done this from the command line, I was lazy) (If you’d gotten a version that had an OVF file, you’d simply need ti use the ‘Import OVF’ wizard for this) – 0.94 has been configured as an OVF(appliance) , so you can import it the same way all appliances are imported.
  2. The 0.94  VM started with a NIC, but no CDRom (which we’ll need) – I therefore added a CD-ROM so I can attach ISO etc later. As the Vm was imported form Workstation on the ESX installation, we are unable to edit the NIC settings, so I also removed the existing NIC and added a new NIC. (no problems if running on workstation)
  3. Start the appliance
  4. Click on reconfigure to edit the network settings (this will be the IP for the appliance and the web URL you’ll use to do further configuration) – Fill in you information and click on OK to save the settings.
  5. Now you can logon to the EDA to configure the boot options
    Open Internet explorer on a host that has access to the VLAN that you configured the EDA on  and go to the site (The IP address that you configured above)
    Credentials are u: root – pw : root
  6. Once you have loaded the webpage, you’ll need to mount the ISO for the version of ESX(i) that you will be trying to deploy (Select the Appliance VM, edit the CDRom settings and select ‘local ISO’ and connect the ISO for the version of ESX(i) that you are going to install
  7. Once the CD is mounted to your appliance, at the top of the screen on the WebPage, select ‘Import PXE BootFiles” – watch the screen and make sure it deploys successfully. (at this point I had a few problems as my CD was not recognised) – I selected the ‘Patch’ option form a browser, then in the ‘Execute command’ box typed “ln -s /dev/sr0 /dev/scd0” – this mounted the CD. (You could also on the EDA appliance hit Alt-F2, then authenticate and do it from there after login – the ‘CD not Mounted’ message should change to ESXi CD mounted)
  8. A successful import looks like this :
  9. At this point I decided that I was going to use the EDA as a DHCP server, so configured a DHCP scope by clicking on the ‘configure DHCP server’  – clicking on this returns a relatively standard text based DHCP config file. What was pretty cool is that it allowed us to specify reservations ( you’d have to duplicate and uncomment the block that starts with #host fantasia {
  10. Once you have configured your DHCP options, select save, then Restart dhcpd – If you do not save, or you specify invalid config, the DHCP server will not start, e.g. I first time round specified a range that was not valid for any of the NICs presented to my server and it failed. (You need to save the config before restarting the DHCP to commit your changes)
  11. If you now boot a host to PXE, you will be prompted to do one of 3 things:

15.1.   Specify a hostname (this will be the hostname that you have prestaged – we’ll do this shortly)

15.2.   Boot Local (boot the current OS on the host)

15.3.   Run a manual installation.

  1. As the objective of this exercise is zero / limited touch installation, we are going configure / prestage settings for a host.

16.1.   Using the webrowser connected to the EDA appliance, click on the ‘New Host’ button

16.2.   This will create a new entry on your menu screen

If you were to PXE boot a host to your EDA now, you’ll see this host appear.

So if you type the hostname at the boot menu screen, EDA will go ahead and configure that host for you. – At this point we have a flat installation, with the VMKernel port configured and the host named as per our specified config – We have also been able to specify the IP for this host.  Host installation time is again about 4 minutes, but at present requires manual intervention. We know from previous experience that we can reduce the number of key presses required by modifying the install.tgz file in the ISO : http://www.get-virtual.info/2011/03/04/modifying-an-esxi-iso-to-reduce-the-number-of-keypresses-required-for-build/

While we are looking at this appliance. We can see that the beautifully (simple is beautiful as far as I am concerned when it comes to techie interfaces) has several additional options available, so let’s explore what we can get out of the enhancements.

  1. Firstly (from the above screen grab of the full web interface), we can see a ‘General ESX host settings’ tab. This pretty much speaks for itself – we can specify the Netmask / gateway / nameserver / licenseserver (older ESX hosts) ksdevice(in case we want to drop kickstart files), an latered root password (obfuscated of course) and a timezone – that’s a bunch of nagging keypresses.
  2. Even better, on the right, we have a block called ‘Post Installation Commands’ – what this basically does is allows us to build some scripts to execute at the end of our source build going down. For example, we may choose to configure our NTP servers or create a user. To do this, we simply select ‘Configure NTP’ from the dropdown and click the ‘ADD Button’ – the base code is generated and copied into the text box beneath – all that we need to do is edit the bits that are added below (Generally, it will be strings like XXXXX, or YYYYY that need to be modified)  –  A little vCli knowledge would be handy here as you can append any addition changes that you would like added, simply by modifying the text in the box. All you will need is in here: http://www.vmware.com/pdf/vsphere4/r41/vsp4_41_vcli_inst_script.pdf – though the generated script blocks on the appliance should be enough.
  3. If you have a large cluster you’d like to deploy, you can go ahead an configure most things here (vSwitches, Portgroups . . in fact with it being vCli, you could really do the full configuration for your host up front in the postbuild script here and just let rip whenever you are ready to go)
  4. I added several config settings on the rights and then dropped a PXE boot build on a new ESXi server and was surprised, even astonished at how smoothly the build went.
  5. One thing that bugged me was that if I was enabling a PXE server on my network, I would want it to wait at a PXe prompt for no more than seconds before booting to the default OS. Fixing this was pretty simple. All you need to do is on the EDA, hit ALT-F2 – you’ll need to authenticate (root:root) and then then you’ll be at the linux shell. Cd to ‘/var/lib/tftpboot/pxelinux.cfg’ you will be able to edit a file called ‘default’ –  nano is not available on this appliance, so use ‘vi default’ – a cheat sheet for vi is available at http://www.lagmonster.org/docs/vi.html
  6. Simply edit the timeout value to what you need (it appears that the values are 10ths of a second – so timeout 100 = 10 seconds)  – again, you can make all manner of changes to this if you like (most of the PXE config is in /var/lib/tftpboot) – as it is just one of the basic linux boot disks, just have a look here: http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project Ideas include adding your own logo, adding additional boot option, possibly some integration with other systems etc – maybe even (if you really felt like it) some Mac Address detection that allows for a stateless installation for each host at boot time – meaning that you could simply change the Mac Address on the appliance for a new ESX host and lay that image on a new host, if an old one failed? Or even a forced install on any host that has no drives configured?


On the whole this is another superb piece of work by the VMware community

Ease of setup : Extremely quick and easy to setup (it did take me longer than the V-PXESERVER to get going first time round, due to the CDROM not mounting properly, but the support (based on a simple thread on the VMware communities is excellent) and the tool is in constant development (bug fixed version 0.95 was released while I was working on this)

Watch out as you will be dropping a PXE server on a VLAN and hosts will boot to this PXE server if they are set to boot from network first – though it does come with a 30 seconds timeout configured (which you can amend if you like)

Ease of ESXi deployment :  As with V-PXESERVER, some key strokes are required on ESXi host to specify install location etc, but this can be avoided by using the instruction I have posted before)

Deployment time : 4 minutes per ESXi host (without modifying ISO) – provided you are there for the key presses

Modified ISO :  About 3 minutes per ESXi host, but you’ll need to replace upgrade the install.tgz file each time you upgrade your ISO.

Likes :

  • I like the fact that postbuild options can be handled as part of the scripts that get imported, but unfortunately it seems that the appliance is still using ESX syntax, assumptions so post build functions are going to need some manual tweaking
  • Mounting an ISO and keeping it mounted for builds is nice and simple
  • ESXi gets deployed in about 4 minutes (network depending) once the tool is configured and can have a fair amount of customisation pre-done
  • Excellent support on the VMware communities


  • Being able to create custom postbuild scripts is awesome – but not all my ESX hosts are in the same location / cluster etc – it would be nice to be able to store a customisation with each ‘new host’ that is unique to that host – modifying postinstallation tasks seems to edit all ks files for all hosts that I have created (or it could just be me being stupid) – I will persist and possibly post a comment on the VMware community thread.

Other than the fact that it is Linux based (so difficult to PowerCli from), this is a superb tool! Great work

Categories: VMWare Tags:
You must be logged in to post a comment.