Installing Home Assistant OS (HASSio) in ESXi
UPDATE: As of February 2021, Home Assistant now provides an official OVA file on their site, available from the alternative installation options page. This makes the installation process in ESXi trivial: Click the “Create / Register VM” button and select the “Deploy a virtual machine from an OVF or OVA file”. After selecting the downloaded file, the wizard will ask you where you want to store the VM files and allow you to configure the network. To avoid issues with mDNS, the use of the “E1001” or “E1001E” virtual network adapter is recommended. The downloaded OVA file will be uploaded to the ESXi host at the end of the wizard and, if you left it selected, the machine will auto-boot when complete.
Home Assistant offers a number of options when it comes to using their home automation software. You can either install it as a standalone package (Home Assistant Core) on an existing system, or if you have supported hardware, you are able to use a version of it called Home Assistant OS (previously known as HASSio). This combines a minimal operating system, the Home Assistant Core package, and the Home Assistant Supervisor to provide the maintenance tools to manage the system. This guide will walk through how to create a virtual machine within VMWare’s hypervisor, ESXi, and make the required changes to the Home Assistant OS disk image for full ESXi compatibility.
Obtaining The Home Assistant OS Disk Image
To begin with you’ll need to download the latest VMDK file from the Home Assistant website. To ensure you have the most up-to-date version of it, follow the link and scroll down the page a little and its available under the heading “As a virtual appliance (x86_64/UEFI)”, you’ll need to click the link that says “VMDK”. Once the file has download you’ll need to use an appropriate utility to decompress it.
The next step is to upload the uncompressed disk image to a location on your ESXi host. I have a single data store called “SSD” configured. Where this appears in the below screenshots, change it as appropriate for your own configuration.
Converting The Home Assistant OS Disk Image
The Home Assistant website provides a VMWare Workstation type virtual disk. To enable proper compatibility with ESXi, including allowing the ability to take snapshots, you need to convert it using the built in ESXi shell command vmkfstools
. ESXi normally has SSH disabled as a security precaution. To enable it click the “Host” option in the navigator on the left hand side of the screen. Select the “Actions” icon and navigate to “Services” and select “Enable Secure Shell (SSH)”.
Connect to your ESXi server using your SSH client of choice, in my case, PuTTY. Log in using the root account to ensure that you have the necessary permissions to run the following commands.
In the previous steps I created a directory called “Home Assistant Virtual Appliance”, change to the directory you created previously, remembering to surround the path in quotes if you have used spaces in the name.
cd "/vmfs/volumes/SSD/Home Assistant Virtual Appliance"
Next convert the disk image to the required format with the following command, adjusting the filename as appropriate to the version number downloaded.
vmkfstools -i hassos_ova-5.9.vmdk hassos_esxi.vmdk
Once this completes, you can follow the instructions above to disable SSH again; if left enabled, a security warning will constantly display in ESXi.
Configuring The Virtual Machine in ESXi
To configure the Virtual Machine follow the instructions in the below screenshots.
Select the option “Create a new virtual machine” and click “Next” Give your new virtual machine a name; Select “Linux” as the Guest OS Family, select “Other 4.x or later Linux (64-bit)” as the Guest OS Version and then click “Next” Select where you want to store the virtual machine’s files and click “Next” Allocate the required number of CPUs / Cores and Memory.
You can remove “Hard disk 1” and “CD/DVD Drive 1” by clicking the X icons to the right of each line.
If you have more than one virtual network setup in ESXi select the appropriate option against “Network Adapter 1”Select “Add hard disk” and then “Existing hard disk” Browse to the directory containing the converted the disk image. If you didn’t previously delete the original disk image, ensure you choose the correct one, then click on “Select” Select the “VM Options” tab and expand the “Boot Options” section. Ensure that “Firmware” is set to “EFI” and untick “Enable UEFI Secure Boot”. Click “Next” A summary of your selections will be displayed. Click “Finish” to create the virtual machine.
Booting the Virtual Machine
Once complete, you should be able to power on the virtual machine and, all being well, should see the machine begin to boot.
Be patient, the first boot can take a little while but you can then continue with the configuration instructions back on the main Home Assistant website.
The referred page for the .vmdk file has changed. You can now link it directly to https://www.home-assistant.io/installation/linux/
The .ova file can be got here https://www.home-assistant.io/installation/alternative
For some reason I don’t get the VM machine to boot from the disk. I have tried with version 5.9 and the latest available 5.12 following all herein indicated steps without success. I’m using ESXi 7.0 in evaluation mode (180-day license).
Now that they’ve made a proper .ova file available, all you need to do is click the “Create / Register VM” button and select the “Deploy a virtual machine from an OVF or OVA file”. The wizard will then ask you where you want to store the VM files and will allow you to configure the network. The downloaded OVA file will be uploaded at the end of the wizard and if you left it selected, the machine will auto-boot when complete. It has now made this guide somewhat irrelevant as you shouldn’t need to adjust anything, beyond configuring the number of CPU cores and allocated memory.