ESXi for ARM is now available! https://flings.vmware.com/esxi-arm-edition
ESXi now being available for ARM brings a whole new raft of options to the homelab, I’ve been excited to try out some parts of vCenter which I haven’t played with yet.
Here is what I purchased to try all this out, some items were probably cheaper elsewhere but I’m lazy so ordered from sites with good shipping.
|Raspberry Pi 4B 8GB x 2 (Okdo)||£132.48|
|Raspberry Pi 4 UK Power Supply x2 (Okdo)||£15.62|
|SanDisk Ultra Flair 128 GB USB 3.0 Flash Drive x2 (Amazon)||£24.98|
|SanDisk Extreme Pro 32 GB microSDHC Memory Card x2 (Amazon)||£19.38|
|iuniker Raspberry Pi 4 Case x2 (Amazon)||£21.98|
Setup was fairly simple, the process is pretty well documented already so I won’t go into detail here other than a few quirks I ran into. There is a great PDF available on the VMware Fling page.
To download the ISO for this fling you have to register an account with VMware, this is free and if you have ever used the free ESXi keys then you probably already have an account.
The ESXi installer for ARM will use the entire disk for the OS installation by default, this means you will have no space on the USB for a datastore. While running VMs from the USB stick will not be ideal, I plan to do this for these Pis as they are purely for testing and messing about. Anything I want to keep running in the lab will go on a different host with a proper storage solution.
During the boot of the ESXi installer from your USB stick you have to press Shift + O to access the settings for the installer then add this to the end of the line, autoPartitionOSDataSize=8192 (screenshot below), this will limit the ESXi partition to 8GB and leave the rest of the disk for datastore1 which gets created automatically.
ESXi System Time
This system time in ESXi after the install was wildly off and this caused issues when trying to add them to vSphere. Fixing this is simple and can be done through the web ui.
The ESXi for ARM install does not come with VMware Tools, if you try to install the VMware Tools through the UI you will run into this error:
This means that you will need to compile VMware Tools on the OS of your choosing. For this example I will show the steps for Ubuntu 20.04 LTS https://ubuntu.com/download/server/arm.
1 – Install build tools
sudo apt install -y git automake make gobjc++ libtool pkg-config libmspack-dev libglib2.0-dev libpam0g-dev libssl-dev libxml2-dev libxmlsec1-dev libx11-dev libxext-dev libxinerama-dev libxi-dev libxrender-dev libxrandr-dev libxtst-dev libgdk-pixbuf2.0-dev libgtk-3-dev libgtkmm-3.0-dev
2 – Clone the open-vm-tools repo
git clone https://github.com/vmware/open-vm-tools.git cd open-vm-tools/open-vm-tools/
3 – Build and install
autoreconf -i ./configure sudo make sudo make install sudo ldconfig
4 – systemd service creation
cat > /etc/systemd/system/vmtoolsd.service << EOF [Unit] Description= Description=Open VM Tools After= After=network-online.target [Service] ExecStart= ExecStart=/usr/local/bin/vmtoolsd Restart=always RestartSec=1sec [Install] WantedBy=multi-user.target EOF
5 – Enable and start the service
sudo systemctl enable vmtoolsd.service sudo systemctl start vmtoolsd.service
The “sudo ldconfig” command in step 3 was missing from the VMware docs so make sure to include it.
I’ve already tried out vMotion between the two Pis and that worked great. I’ve read about K8s and these could be cool little hosts to experiment on, more to come!