My home lab has been running on VMware ESXi 4.1 for a while. I don’t have a personal Windows machines, so I use the ESXi SSH service console to manage the host and guests. Most of the time this works fine, but it would be nice to use the vSphere Client for some things (most notably, the initial setup of the system).
ESXi 4 has been serving me just fine, so I hadn’t taken the time to upgrade to 5. However, I recently saw some notes indicating that vSphere was moving away from the Windows-based Client to a web-based management console. I didn’t have anything exciting deployed and decided to spend an afternoon checking out the latest version of ESXi.
It usually takes me a few minutes to navigate the labyrinth VMware calls a website, but I eventually located the ESXi 5.1 download page. Installation is straight-forward (see the official documentation for details). Once the system was up and running, I pointed my browser at it and found the familiar link to “Download vSphere Client”. There was also a link to “Browse datastores in this host’s inventory.” I was immediately disappointed. The inventory browser is virtually useless and I didn’t see anything suggesting a web-based management tool.
After a more thorough review of the documentation, I realized that the vSphere Web Client 5 has to be installed on a separate server – a Windows server – and only supports a few browsers. For me, this completely defeated the point.
I only have Mac OS X and Linux systems at home. To work around this particular challenge, I run vSphere Client on an Amazon EC2 instance. If you don’t have an AWS account, you can sign up for free and take advantage of the AWS Free Tier. (You need a credit card to sign up, but nothing gets charged to it unless you provision something outside the free tier, which Amazon provides clear documentation for.) There are also cloud-based Virtual Desktop providers, but I’ve never actually used one.
To run vSphere Client on AWS, launch a Microsoft Windows Server 2008 Base (64-bit) image, which is free tier eligible if you provision it as a t1.micro instance. (A t1.micro is ridiculously small for a Windows server, but it’s sufficient to run vSphere Client.) Once the instance is running, you can use the EC2 Management Console to get its Administrator password and public DNS name – you’ll need these to open a Remote Desktop connection to the instance. For detailed instructions, see the EC2 User Guide.
Now you have a Windows machine that is either free or only pennies per running hour. Now, you need to connect your Windows instance to your ESXi server. There is an obvious security risk here – you could end up exposing your system to the public. Proceed with caution.
The vSphere client uses TCP ports 443, 902, and 903 to communicate with the server. If you don’t have any control over your firewall/network, then you can try using SSH tunneling/port-forwarding to “map” your server ports to local ports on the Windows instance. In this scenario, you would access your server using localhost ports on your client, and you may need to install a SSH server on the Windows instance to make this work. I usually modify my firewall to map my server ports to a publicly accessible IP, but secure access to the IP of the Windows instance.
In short, vSphere Client and vSphere Web Client both require a Windows system to run, and you can use a cheap cloud-hosted Windows instance to bridge the gap.