# VMware for Homelab

I am currently comparing different virtualization solutions for my home. This is because I want to do all kinds of things like openhab, cronjobs, DNS-based adblocking, and gateways both in via SSH and out via different VPNs/Tor, and splitting those into different machines sounds not only reasonable but is also necessary in some cases when there are different operating systems involved. This blag post will document a few nuggets of knowledge I collected while trying out VMware as hypervisor. First a few names that really confused me in the beginning and their explanations: * "ESXi" is the hypervisor * "vCenter" is a virtual machine (VM) image that helps manage your VMs * "vSphere" is the web application running on vCenter So the plan is as bold as it is simple: slap together old consumer hardware, install ESXi, deploy vCenter on it, use vSphere to create other VMs. Especially the "consumer hardware" part of the plan posed a few challenges. As a dear college mentioned to me: VMware is not great with consumer hardware. But the internet1 came to the rescue in my case. The mainboard I'm using is H81M-G and according to the manufacturer homepage, the network interface card (NIC) on it is "Realtek RTL8111GR". To make it work on ESXi you can use a Windows box: download the correct driver2 and install a PowerShell module called PowerCLI, which is a set of VMware tools able to create new installers.
Import-Module PowerShellGet
Install-Module -Name VMware.PowerCLI -AllowClobber

# add software depots

# get the name of the imported profiles
Get-EsxImageProfile

# use the names from above to create a new profile that will contain the driver
New-EsxImageProfile -CloneProfile ESXi-6.7.0-8169922-standard -name YourProfile -Vendor YourACME
# except if you are a VMware partner I guess ... but why would you even read this blag post then
Set-EsxImageProfile -ImageProfile YourProfile -AcceptanceLevel CommunitySupported
# check if it worked
Get-EsxImageProfile

# get the name of the driver package and add it to your profile
Get-EsxSoftwarePackage | Where {\$_.Vendor -eq "Realtek"}

Then use rufus4 for example to copy the ISO to an USB drive. The rest was really just clicking through installers and waiting. At some point I couldn't log into a web interface as root, but changing the password and rebooting the hypervisor fixed the issue.