Anatomy of a vSphere Installation Bundle (VIB)

I just finished updating my home lab ESXi host to ESXi 6.0U1b. I was just poking around after doing the update and thought it might be useful to dig into the vSphere Installation Bundle or VIB.

A VIB is an installation package which containing software, updates, patches, and drivers which can be installed on ESXi hosts. The VIB file is an archive which includes a XML descriptor file, a signature file, and the payload. Multiple VIBs can be packaged in a bundle or depot. VIBs and bundles can be installed on ESXi hosts using vSphere Update Manager (VUM), using esxcli, or can be incorporated into an ESXi image using the Image Builder PowerCLI tools.

Let’s look at a VIB. I have downloaded the ESXi Embedded Host Client VIB and placed it on a datastore accessible by the ESXi host. Running the following esxcli command will provide information about the VIB:
esxcli software sources vib get -v /vmfs/volumes/NFS_Datastore1/VIBs/esxui-signed-3623722.vib


The information displayed in the screenshot above is from the VIB’s descriptor file. Name, Version, Vendor, Summary, Description, ReferenceURLs, and Creation Date are pretty straight forward.

The Acceptance Level indicates the level of testing and validation which has been preformed on the VIB (and by who). The Acceptance Level for the VIB is set to of the following:

  • VMwareCertified – Tested, certified, and supported by VMware
  • VMwareAccepted – Some verification testing by VMware, partner tests functionality, VMware verifies results.
  • PartnerSupported – Tested by a VMware partner. VMware does not verify results.
  • CommunitySupported – Created by individuals or partners outside of VMware partner programs.

The Acceptance Level of a host can be determined by using the following esxcli command:
esxcli software acceptance get
By default the acceptance level of an ESXi host is set to PartnerSupported. This allows PartnerSupported, VMwareAccepted, and VMwareCertified VIBs to be installed on the host. To install a CommunitySupported VIB the host acceptance level is changed using:
esxcli software acceptance set --level=CommunitySupported

The descriptor file also includes information about dependencies and compatibility.

  • Depends: List packages, files, libraries, and/or ESXi versions which the VIB is dependent on.
  • Conflicts: Packages which may cause issues or conflicts with a package contained in the VIB. If conflicting packages exist on the host the VIB will not be installed.
  • Replaces: Packages which will be replaced by packages in the VIB.
  • Provides: Functionality provided by the VIB which satisfies dependencies for other VIBs.

The following define the state the host must be in to install the VIB and if a reboot is required after installation or removal:

  • Maintenance Mode Required: (True or False) – Does the host need to be in maintenance mode to install the packages? If set to True the VIB cannot be installed unless the host is placed in maintenance mode.
  • Live Install Allowed: (True or False) – Is a host reboot required after installation?
  • Live Remove Allowed: (True or False) – Is a host reboot required after removal?

Other information included as part of the descriptor file includes:

  • Hardware Platforms Required: Specific hardware required for the VIB.
  • Stateless Ready: (True or False) – Is the VIB suitable to be used with an Autodeploy image?
  • Overlay: (True or False) – Is the VIB an overlay VIB.
  • Payloads: The payloads contain the files which will be installed or removed.
  • Tags: List of tags which identify the VIB, for example: driver, module, severity:important, severity:critical, category:bugfix, etc.

To view details of VIBs contained in a bundle or depot you can use the following esxcli command:
esxcli software sources vib get -d /vmfs/volumes/NFS_Datastore1/Updates/
The above bundle is the ESXi offline bundle for 6.0U1b which I just installed. Running the above command displays details for all the VIBs included in the bundle.

All VIBs currently installed on an ESXi host can be displayed with the following esxcli command:
esxcli software vib list
This displays the Name, Version, Vendor, Acceptance Level, and Install Date of all VIBs installed on the host as shown below:
To display the VIB details for installed VIBs use:
esxcli software vib get
To see the details of a single installed VIB add “-n VIB Name” to the above command. For example:
esxcli software vib get -n esx-nfsplugin

Just a little insight into the vSphere Installation Bundle or VIB.

Thoughts and comments are always welcome.


Hersey Cartwright is an IT professional with extensive experience designing, implementing, managing, and supporting technologies that improve business processes. Hersey is Solutions Architect for HPE SimpliVity covering Virginia, Washington DC, and Maryland. He holds the VMware Certified Design Expert (VCDX-DV #128) certification. Hersey actively participates in the VMware community and was awarded the VMware vExpert title in 2016, 2015, 2014, 2013, and 2012. He enjoys working with, teaching, and writing about virtualization and other data center technologies. Follow Hersey on Twitter @herseyc

Leave a Reply

Your email address will not be published. Required fields are marked *