Lab Automation Made Easy for Training and Testing with VMware Tools for Nested ESXi
For those who run ESXi on a virtual machine, it’s a great news that VMware has released VMware Tools for nested ESXi as a fling in VMware Labs. Why? With the VMware Tools, you can get guest OS (really the ESXi here) information, like the IP address directly. It may sounds trivial as you can see the IP address from the virtual machine console of a virtualized ESXi. But for automation, it’s pretty hacky to get it programatically. Some people may wonder, “why not run commands via SSH?” It’s true that it’s easy to get the IP by running esxcli command, but you have to get IP first before running the command. With the VMware Tools, you can easily get the IP from vSphere Java API as would with any other normal virtual machines. Even more, you can also run commands like vim-cmd/esxcli in the virtual ESXi via APIs.
As far as I can see, running virtual ESXi has two major important use cases: training and testing. There does not seem to be a justification for production systems. In both use cases, the economic motivation is to save the number of physical servers and therefore cut costs. In other words, it’s mostly about server consolidation.
Lost VMs or Containers? Too Many Consoles? Too Slow GUI? Time to learn how to "Google" and manage your VMware and clouds in a fast and secure HTML5 App.
In the training use case, if you have a vSphere training class with 10 students, each of whom needs 2 physical servers for ESXi. That would adds up to 20 physical servers. Running them as vESXi saves not only the servers but also the networking gears. If you have demanding virtual machines running on the virtual ESXi, it may need a storage upgrade for faster response time. But for trainings, it’s not necessary most cases. My training lab, for example, can fit 10 students into one physical server. The automation software I have created can get things ready with one click and students can access it anywhere from the Internet. Having VMware Tools for virtual ESXi makes the automation easier.
In the testing use case, similar impact can be resulted. Instead of having racks of servers for testing ESXi based products and solutions, you can now reduce the hardware investment to 1/10 or less. There is of course a limitation in that it probably does not work for performance and stress testing. If you want to test features/scalability, doing this is perfect. The automation system I built for my training lab can be ported to testing environment should there be a need.
Enough being said about the use cases and benefits. Time to give it a try. Thanks to William’s perfect blog, I got a virtualized ESXi ready in just a few minutes. Here are the commands I had run. Note that I don’t have proxy between my ESXi and the Internet. If you do, then you want to download it first. For a complete introduction, I would highly recommend you read William’s blog.
~ # esxcli network firewall ruleset set -e true -r httpClient # esxcli system maintenanceMode set -e true ~ # esxcli software vib install -v http://download3.vmware.com/software/vmw-tools/esxi_tools_for_guests/esx-tools-for-esxi-9.7.0-0.0.00000.i386.vib -f Installation Result Message: Host is not changed. Reboot Required: false VIBs Installed: VIBs Removed: VIBs Skipped: VMware_bootbank_esx-tools-for-esxi_9.7.0-0.0.00000 # reboot -f # esxcli system maintenanceMode set -e false