ESX Deployment Appliance EDA

Few days ago I started a small project for upgrade 20 ESX servers from 3.5 U5 to ESX 4.0.3. As it was quite significant number of servers decision was only one – upgrade must me done automatically. “Uncle” google point me to EDA – ESX Deployment Appliance.

EDA based on Ubuntu distribution and has very intuitive interface. basically follows documentation from project page you can easily and quickly set up it.

How to start ?
  1. Download and import EDA to virtual infrastructure – it’s in ovf format
  2. Power it on, switch to second console (Alt+F2)  in VM console and log in (root:root)
  3. Check eth0 NIC interface (ifconfig) – for 99,9 wouldn’t present on the system,
    This is a common known error under Linux system when after clone on new VM network card is missing, it’s easy to fix edit /etc/udev/rules.d/70-persistent-net.rules and remove all non commented lines, reboot appliance and eth0 will appear 🙂
  4. Configure IP address, hostname, etc

    [box type=”warning”] EDA network interface need this same LAN segment (IP range and subnet)where ESX(i) hosts are connected and has IP from that range[/box]
  5. Connect to appliance via web browser http://, further parameters ans settings are configurable via web interface
  6. Follow appliance documentation in configuration process.

    1. Configuration
      First go to ‘Configure Appliance’ and change root and user password if necessary, apply the settings and go to ‘Configure DHCP server’. Do this always! The option ‘domain-name’ is used for the ESX host dns domainname. If the DHCP server of the appliance will not be used it can be switched off here. If some other unix DHCP server is used, set the ‘next-server’ to the appliance IP address and the ‘filename’ to ‘pxelinux.0’. If a Windows DHCP server is used, change the scope settings 66 and 67 to those values.
    2. Adding hosts
      Now start adding ESX hosts. Use hostnames only! Whether or not the DHCP server of the appliance is used, the option ‘domain-name’ will be used to create a FQDN for the ESX hosts. After that, start setting the generic ESX values and if needed, change the partition table. Now it’s time to build a configuration script.
    3. Adding a script
      Configuring the ESX host is easy with the scriptbuilder from the appliance. Just hoover over the button and it will show what values to fill in before the button adds scriptparts to the script window.
    4. Adding files to the appliance
      When files are needed for the ESX deployment (like HP or Dell agents), point a windows explorer to \\[IP address]\DL$ (the R/W share). Fill in the root user and password and you can write files to the appliance. The scriptbuilder uses the ESX host’s smbclient to get the files to the host through \\[IP address]\DL (this is a readonly share, public readable or accessible with user ‘user’ by adding -U’user%[userpassword]’ to the scriptpart).
    5. Adding an ESX CDrom
      The appliance will put a red line ‘CD not mounted’ on the main page until an ESX CD has been fed to the appliance. It will automatically mount the CD once it’s connected (this can either be a physical CDrom connected through the host running the appliance or a ISO image (which is much faster)). A refresh on the main page will remove the red warning. Once the CD is connected, click ‘import PXE bootfiles’ to import the files from the CD. This will put the bootfiles on the correct place in the appliance but also remove the SAN drivers from these bootimages to safely install ESX servers that are connected to a SAN. Once the window pops up showing this has been succesful (can take some time) it’s time to boot the first ESX host.


  7. Configure ks.cfg script
    Appliance has two windows where ks script is configure. Left window is used for auto partitioning local disk and IP configuration for particular host before ESX deployment. Under the window administrator choose device for ESX installation either /dev/sda or /dev/cciss/c0d0. For most servers /dev/sda it the right choice however for HP servers prior G6 series /dev/cciss/c0d0 is correct choice.
    Right window is used for post installation tasks. Administrator can customize this part of a ks script adding custom or predefined scripts, commands etc.
  8. Installing an ESX host
    If network boot isn’t the first boot option on a server, hit F12 at bootime to start the PXE boot process (boot from network). Host obtains IP address from DHCP server (either EDA or other DHCP source) and on a boot screen appear ESX(i) host names which were configure in section Adding a host. Type host name, press enter and wait until server reboot after installation.
  9. Troubleshooting
  •  eth0 missing on EDA appliance – is a common known error under Linux systems, where after clone on new Virtual Machine,  eth0 network card is missing, it’s quite easy to fix:
    edit /etc/udev/rules.d/70-persistent-net.rules and remove all non commented lines
    reboot appliance and eth0 should appear back in system
  • The appliance will put a red line ‘CD not mounted’ – you can mount CD-ROM manually from appliance console by command: mount /dev/scd0 /var/www/esx refresh configuration page and red alert will disappear
  • error No COS NICs have been added by the user – very common error during ESX autodeployment – it’s caused by different type of  errors in KS script, This error is quite easy to diagnose it’s enough during installation process switch to primary console Alt+F1 and see error massage.
    For example

    • specified gateway is from different network than SC IP address
    • IP mismatch configuration (wrong subnet, GW )
    • misconfiguration in partition alignment  ( partitions needs more space than vmdk disk has it ) in example below cos partition has 14GB, virtual disk COS has 14GB but summarize partition space on a COS drive exceeds size of a COS disk (16.6GB)
      part /boot –fstype=ext3 –size=1100 –ondisk=/dev/sda
      part none –fstype=vmkcore –size=110 –ondisk=/dev/sda
      part cos –fstype=vmfs3 –size=14000 –ondisk=/dev/sda
      virtualdisk COS –size=14000 –onvmfs=SystemVMFS
      part /tmp –fstype=ext3 –size=2000 –maxsize=3000 –onvirtualdisk=COS
      part / –fstype=ext3 –size=10000 –maxsize=8000 –onvirtualdisk=COS
      part swap –fstype=swap –size=1600 –maxsize=2000 –onvirtualdisk=COS
      part /var/log –fstype=ext3 –size=3000 –maxsize=3000 –onvirtualdisk=COS

[learn_more caption=”Source:”][/learn_more]

Artur Krzywdzinski

Artur is Consulting Architect at Nutanix. He has been using, designing and deploying VMware based solutions since 2005 and Microsoft since 2012. He specialize in designing and implementing private and hybrid cloud solution based on VMware and Microsoft software stacks, datacenter migrations and transformation, disaster avoidance. Artur has been in IT industry since 1999 and consulting since 2008. Artur holds VMware Certified Design Expert certification (VCDX #077).

  • thanks for the article mate, i need to read it in depth and if possible test it.

    Next year i need to upgrade 6 hosts from 3.5 U5( and install 4 new) so i don’t want to do it manually.

    • Hi Daniel,

      For six host it’s worth to give a try with automatic deployment and I’m sure you will find it useful and handy.


  • And it worked like a charm 😉 I just uploaded new EDA version 1.05 and I didn’t have eth0. As usuall great work Artur.

    • artur_ka

      dzieki Wojtek