What are .vib Files?
If you are familiar with Linux, you can somewhat compare a .vib file to an installation package like .deb or .rpm. While nowhere near as advanced, it is a quick and easy way for VMWare or 3rd parties to provide installation packages for VMWare ESXi hosts. VIB is short for “vSphere Installation Bundle”.
You will frequently use these VIB files to install drivers. You may also use these to upgrade ESXi if you’re running the free version, or a vSphere cluster that’s too small to bother with dedicating resources to update manager.
Structure of .vib Files
A VIB file is basically like a .zip archive, inside it are other files VMWare will use to deploy the driver or software provided. Most VIB files will contain 3 types of content inside.
The XML descriptor file tells VMWare what the contents are and other required information for installing the package.
The PKCS7 file is the signature of the organization providing the VIB. The signature determines the acceptance level of the contents. There are currently 4 levels according to VMWare documentation, in order from most reliable to least: VMWareCertified, VMWareAccepted, PartnerSupported and CommunitySupported. Put simply this determines how closely to VMWare the provider of the VIB file is working, how much testing is being done, and generally how much trust you can put into this file.
The other files are the actual content being installed, the names can varry based on what it is. In the above screen shot it is the Dell ISM installer.
How to Install VIBs
You can use vCLI on your workstation to connect to a host and execute the commands to install a VIB, or you can connect directly to the host through SSH to do the same. In this example we will assume you are using SSH. You will need to enable ssh if it is not already.
Be sure to read any documentation provided for a VIB install. Some may require maintenance mode be active, or you may have to reboot the system. Others may ask you to restart certain services. Be sure to take the required steps to avoid or properly plan any downtime that may result from VIB installation.
Before installing a VIB the ESXi host needs access to the .vib file. This is typically done by putting the file on a local datastore or shared storage datastore. You can also upload it directly to the host via scp to a temporary directory like /var/log where the .vib will be deleted after a reboot.
To install a VIB that is packaged as a zip file, use the following command
esxcli software vib install -d "/vmfs/volumes/DatastoreName/FolderName/vib_file
Alternatively if you have an actual .vib file use the -v option instead of -d
esxcli software vib install -v "/vmfs/volumes/DatastoreName/FolderName/vib_file"
Sometimes you may get an error complaining about the file path (often containing [MetadataDownloadError] or “[Errno 4] IOError” while complaining about index.xml), in that case you can attempt a different method of specifying the path:
esxcli software vib install -v file:///vmfs/volumes/DatastoreName/FolderName/vib_file
To update an already existing VIB is the same concept, using -v OR -d option as appropriate:
esxcli software vib update -d "vmfs/volumes/DatastoreName/FolderName/vib_file"
After installing or updating you can verify if a VIB is installed.
To see a list of installed VIBs
After installing or updating you can verify if a VIB is installed. You may also want to check the information for existing VIBs to make sure they are up to date, or to uninstall one. The command to see the installed VIBs on an ESXi host is the following:
esxcli software vib list
This will output a list of all installed VIBs, their version number, vendor/distributor, acceptance level and installation date.
To uninstall a VIB
To uninstall a VIB, locate the name of the VIB you want to remove by checking the list as explained above. Then use the following command
esxcli software vib remove --vibname=NameOfVIB
Remember that you may need to be in maintenance mode, or may need to reboot the host, depending on the VIB. Also be aware that if you are uninstalling critical drivers such as storage controllers, HBAs or network cards, after a reboot you may lose access to datastores or even to the host itself if it no longer has network access.