Installing ESXi Kernel Modules Made Easy!
Kernel modules are often part of a 3rd party solution that tightly integrates with ESXi, for example the NVIDIA vGPU solution. When installing solutions like these, it's required to install the kernel, or vib, module on ESXi hosts. That can be a time consuming task, and it's difficult to manage consistency over multiple ESXi hosts. The process of installing and managing kernel modules has changed since the vSphere 7 release as we can now leverage the vSphere Lifecycle Manager (vLCM) desired state image.
Components
The vLCM desired state consists of the ESXi base image and optionally vendor addons, firmware integrations, and stand-a-lone components.
Components can be a driver, async VMtools versions, you name it. In the vLCM Image Depot, there's the option to manually upload updates that can be used for custom components.
Upload Custom Components
Let's stick with the NVIDIA vGPU example. Clicking on 'Actions' in the Image Depot view under Lifecycle Manager, there's the Import Updates option. This lets you select a custom component. Typically, these are ZIP bundles containing all the necessary component files.
Once selected, the wizard starts uploading the file(s) and adds the manual updates to the repository.
Making it Part of the Desired State
Now that we included our custom component, the NVIDIA vGPU driver, we can make it part of the desired state image. Like with the ESXi base image and optional addons, the power of the vLCM desired state image is the consistency and standardization across all the hosts in the cluster it enforces. Once the hosts are compliant to the desired state , they'll all run the same versions for everything that is defined in the desired state image configuration.
After updating the desired state image the hosts in the cluster need remediation to install the new bits on the hosts. Check out the video below to see the end-to-end walk-through of editing the desired state image with the custom component, remediating the hosts back to compliance and verifying if the kernel (vib) module is correctly installed on the hosts!
Useful Resources