It is possible to run VMWare ESXi 5.5 within VMWare Fusion (a "bare metal" virtualisation product within a desktop virtualisation product) -- virtualisation within virtualisation. It is definitely not the most efficient combination, especially for memory and disk usage, but it is very handy for trying things out -- such as you might need to do if, I don't know, VMWare decided to expire VCP5-DCV certifications, and then make the least painful recertification approach be a delta exam on vSphere 5.1 to 5.5 differences.

To be useful for test practice purposes, you need at least VMWare ESXi 5.5 and some version of VMWare vCenter as well. Fortunately both are available with 60-day evaluations, which is ideal (and I expect designed) for just this purpose.

The main catch is that normally vSphere requires Microsoft Windows, at least to run the vSphere client -- a thick client written in C# -- if not vCenter itself. And I do not have Microsoft Windows -- at all (from memory I have not had any Windows installs, or licenses, since back when "19" was the implied prefix in the Windows version number!). Because I am a Linux and Mac OS X developer/admin and network admin, there is literally no other need for Microsoft Windows in my world. So I wanted to find a solution that did not require Microsoft Windows.

Fortunately:

  1. There is a Linux-based version of vCenter available as a virtual appliance, ready to be deployed from an OVA file -- avoiding the need for Windows for vCenter itself. (It is based on SLES 11 Linux.)

  2. Modern VMWare vCenter is increasingly focusing on the "web" interface rather than the (now legacy) vSphere Client (thick client), so a lot can be managed through a "web" interface -- once it vCenter is installed. As an added bonus, vSphere 5.5 Web Client adds Mac OS X support -- to get at the VM consoles.

So the trick is to get ESXi and vCenter installed, and then just use the the "web" client. But there is a bit of a trick to it, because the default instructions for deploying vCenter require using the vSphere Client on Windows... But there is a solution that takes advantage of the fact that the Linux-based vCenter appliance is available as an OVA file, and ovftool can deploy OVA files directly into ESXi from the Mac OS X command line.

This guide to deploying vSphere remotely from the command line was particularly helpful, as was this older guide to kludging the Linux ovftool into ESXi's shell -- but I did not go quite that far. ovftool is available for Mac OS X, which was easier to work with for me.

The overall approach is:

  1. Register for vSphere 5.5 evaluation through VMWare site, so that you
    are able to download recent versions (there is a free stand alone ESXi, but I believe it is an older version).

  2. Download ESXi 5.5 Update 2 ISO installer (eg, VMware-VMvisor-Installer-5.5.0.update02-2068190.x86_64.iso)

  3. Download Linux vCenter OVA file (eg, VMware-vCenter-Server-Appliance-5.5.0.20200-2183109_OVF10.ova)

  4. Install ESXi in VMWare Fusion; you may want to reduce the disk size a bit if you are tight on space, but beware that vCenter wants lots of RAM -- which means lots of swap space if your ESXi VM does not get lots of RAM -- so if you make it even as small as 20GB you will run out of disk space and your vCenter VM will not even start. I chose 30GB (on my second attempt!) which was just enough.

  5. Once ESXi is installed, log in on console and enable the SSH shell:

    F2: Trouble Shooting Options / Enable SSH
    

    Then verify that you can ssh in with:

    ssh root@172.16.187.139
    

    (or whatever IP your ESXi VM got; you may want to change it to a fixed IP rather than a DHCP one while you are logged into the ESXi console).

  6. Download the ovftool for Mac OS X and install that onto your Mac. It installs into "/Applications/VMWare OVF Tool" complete with beautiful embedded spaces. Sigh. To make it more useful from a shell do:

    sudo ln -s "/Applications/VMware OVF Tool/ovftool" /usr/local/bin
    

    (or some other directory on your PATH if you have not already made yourself a /usr/local/bin/).

    Check that you can run ovftool directly:

    ovftool --help
    
  7. Now you can use ovftool to deploy the vCenter OVA into your new ESXi install:

    ovftool -dm=thin -ds=datastore1 --memorySize:6144 \
            /vm/install/VMware-vCenter-Server-Appliance-5.5.0.20200-2183109_OVF10.ova \
            "vi://root@172.16.187.139"
    

    (whereever you saved your vCenter OVA file on your Mac, and whatever IP your ESXi install got; that could all be one long line, or you could use the backslash continuation commands as above.)

    Note that the default RAM required by the Linux vCenter OVA is 8GB (which is part of what led to running out of disk space to power on the VM with only a 20GB disk for ESXi), so I am reducing it a little; in theory for just a VM or two for testing 4-6GB should be okay.

    You will need to enter the root password for the ESXi host when prompted during the ovftool run. (Or you can put it in the vi:// URL, following the normal vi://USER:PASSWORD@HOST syntax -- but I prefer not to put passwords on the command line, especially posted to the Internet :-) )

The last few steps are needed to power on vCenter, and the blog post on deploying vSphere remotely from the command line was invaluable for figuring out what was required.

To do this, ssh into ESXi (as above):

ssh root@172.16.187.139

and check that the vCenter VM was installed:

vim-cmd vmsvc/getallvms

You should see a VMware-vCenter-Server-Appliance-5.5.0.20200-2183109_OVF10 name with a Vmid listed -- most likely "1" since this is probably your first VM.

While there, check that you do still have more than 10GB of disk left for ESXi to use:

df -m | grep /vmfs/volumes/datastore1

And then you can power on the VM, using the Vmid you found above:

vim-cmd vmsvc/power.on 1

It should report "Powering on VM:" and then return to the prompt; if it complains (eg "Power on failed") you'll need to look in the VM's log file (/vmfs/volumes/datastore1/VMware-vCenter-Server-Appliance-5.5.0.20200-2183109_OVF10/vmware.log) for hints as to why it failed -- that was how I found out that a 20GB disk for ESXi was too small.

You can check it powered on with:

vim-cmd vmsvc/get.summary 1 | grep power

and it should say powerState = "poweredOn",.

Assuming it did power on, the last piece of information you need is the IP address that it was assigned, which can you find out with:

vim-cmd vmsvc/get.summary 1|grep ipAddress

and that should be something like ipAddress = "172.16.187.140",.

Given that IP address, you can then reach the vCenter web management interface at:

https://172.16.187.140:5480/

(or whatever your IP is). Note that it is a HTTPS (TLS) URL, despite the port number, and will not work with HTTP ("connection reset"). It also has a VMWare "localhost.localdom" bundled TLS certificate, so you will need to manually accept the certificate to proceed.

The default username is 'root' and the default password is 'vmware'. Once you log in on the web interface, it will step you through the vCenter appliance setup; I just went with the defaults, including the default username/password since this is an isolated test instance.

Once vCenter is up and running -- it will take a while, especially if you only gave the ESXi VM in VMware Fusion its default 4GB -- you should then be able to use the vSphere Web Client at:

https://172.16.187.140:9443/vsphere-client/

(also a HTTPS -- TLS -- service, but on a port number that reminds you that it is HTTPS; you'll need to accept the VMWare "localhost.localdom" bundled TLS certificate again if you have not already replaced it).

Sadly the vSphere "Web" Client requires Adobe Flash, only the second time I've been prompted for Adobe Flash in the last 6 months; the other one was VMWare's "What's New in vSphere 5.5" training video, which I watched on an old machine that had Adobe Flash installed. This limitation still seems to apply in vSphere 5.5 -- VMWare dropped Linux support for the web client because Adobe stopped supporting Flash on Linux, so there is not a new enough version (11.5+) available :-(

Requiring Adobe Flash is marginally less inconvenient Microsoft Windows -- it is at least possible to install on OS X at no extra cost -- but still far from ideal. For now, I reverted to using my old laptop (which has Flash installed), to access the console via a ssh port forward:

ssh -R 9443:172.16.187.140:9443 OLDLAPTOP

Then going to:

https://localhost:9443/

on the old laptop that has Adobe Flash installed. (I figure if I only need Flash every 6 months, and it has a history of needing security updates, and disabling due to annoying auto-playing things, it is best just not to install it on my new laptop.)

Also, for reference, it looks like if you want to use the OS X console plugin, another change is required, documented in the VMWare Knowledebase. Plus Flash may require optimisation to work well with the Web Client.

The other useful solution, if you have VMWare Fusion 7 -- which I do not yet have -- is to use VMWare Fusion 7 to remote control vSphere. But for VCP5-DCV recertification practice purposes, I really do need to see the vSphere "web" client -- hence using the vSphere "Web" Client -- Adobe Flash -- from an old laptop.

To complete the setup, log into the vSphere Web Client, create a datacenter, and add your ESXi host running in VMWare Fusion into the datacenter. You'll need the IP of the ESXi host, the username/password ("root" and the password you set on your ESXi host), and to accept the certificate on the ESXi host. It should show that it has a vCenter VM running on it... you're soaking in it. You will be prompted for a license but you can run in evaluation mode for a couple of months. I choose not to enable lockdown mode -- so that it was possible to get back into the ESXi host SSH shell in case something went wrong in the process later.

Finally to avoid needing to manually start the vCenter VM again (from the SSH shell) I used the vSphere Web Client to configure the vCenter VM to start automatically on the ESXi host:

  1. Go to Hosts and Clusters -> ESXi host -> Manage -> VM Startup/Shutdown

  2. Click on "Edit..."

  3. Check "Automatically start and stop the virtual machines with the system" to activate the panel

  4. Highlight the vCenter VM and click on the "up arrow" enough times to move it from the "Manual Startup" section to the "Automatic Startup" section.

  5. Click "OK" to save that change

(In this minimised install you will most likely have Host memory usage alarms and Host datastore usage alarms -- but that is good practice in finding and acknowledging them. Checking the datatstore1 usage, there is about 3GB left with this combination running, out of a 30GB disk partition allocated to the ESXi host in VMWare Fusion. And about 280MB of RAM left -- plus a fair amount of swap used.)

ETA, 2014-11-13: I made my first attempt at the VCP5-DCV Delta exam today -- and almost, but not quite, passed. So I am glad there is still time to try again before the Delta Exam turns into a pumpkin at the end of November.

For anyone else finding this while studying for the Delta exam (there seems to be relatively little about it online), I would suggest paying serious attention to the fact the Exam Blueprint covers the same topics as the full VCP550 exam, and much less attention to the Delta exam being "only on new material". Yes, it seemed like there was a bit of a focus on newer features (vSAN, vCOPs, VDP, etc), so do not ignore those completely, but I am pretty sure most of the points I missed were due to not having spent that much time reviewing the "older material". So my plan is definitely to review my older notes/study guides before trying to take the test again. If you do not spend all day, every day, amongst a wide range of VMWare products and storage/networking scenarious, you too might benefit from at least some time reviewing older study notes, and guides before taking the Delta exam. (Yes it is open book in practice, but there are sufficiently many questions in a short period you are going to have to know where to find the answer pretty quickly!)

ETA, 2014-11-17: See also managing VMs with vim-cmd (which is for an old version of VMWare ESXi, but has some useful hints). In particular I found I still had to change the RAM size, by manually editing the .vmx file, to avoid running out of space on a 30GB disk, even after trying to change the RAM size when installing the OVA -- there was room for a 6GB swap file, but not an 8GB one. (See also reloading the vmx file using vim-cmd.)