Comprehensive Guide to Installing VIB Files on ESXi

ESXi is usually provided with the default configuration that includes a set of standard drivers and software tools for a specific version. This set of tools and drivers differs from one ESXi version to another. When running ESXi hosts, you may need to install additional drivers for the installed hardware, install software, or update software components or drivers. In this case, installing VIB files on ESXi is what you need. This blog post covers VMware VIB files and explains how to install and manage them.

What Is a VIB?

A VIB, or vSphere Installation Bundle, file for ESXi is a software package format used by VMware to distribute software and updates for ESXi hosts. VIB files can contain drivers, management agents, third-party applications, or patches. They are the building blocks of ESXi software and are used to extend the functionality of ESXi hosts or to patch and update them. Just like .deb files, which are installation packages for Debian Linux, and .rpm files, which are installation packages for Red Hat Linux, .vib files are installation packages for ESXi.

The key components of a VIB package are:

  • Descriptor file defines the VIB metadata, such as its name, version, vendor and acceptance level. The descriptor is provided in XML format.
  • Signature file ensures the integrity and authenticity of the VIB.
  • Payload file(s) contains the actual software or driver files that will be installed on the ESXi host.

The contents of a zip archive with a VIB file

Types of VIBs

There are multiple types of VIB files in VMware environments:

  • Tools VIBs are used to install or update VMware Tools on virtual machines.
  • Driver VIBs provide hardware drivers for ESXi hosts, such as network or storage drivers.
  • Patches and updates VIBs are used to update the ESXi operating system with security patches, bug fixes, and new features.
  • Application VIBs allow you to install third-party applications or management agents on ESXi hosts.

Acceptance Levels

VMware classifies VIBs into four acceptance levels:

  • VMwareCertified: Tested and certified by VMware.
  • VMwareAccepted: Tested and accepted by VMware partners; some verification testing may be done by VMware.
  • PartnerSupported: Tested and supported by VMware partners; VMware doesn’t verify test results.
  • CommunitySupported: Created by individuals or community developers and not officially supported by VMware or partners.

You can check the acceptance level with the command:

esxcli software acceptance get

Changes in the VIB file format in ESXi 8

For ESXi versions older than version 8.0, the VIB format was mostly unchanged. In VMware vSphere 8.0, developers introduced changes that affect those who create their own VIB files for software installation and ESXi configuration. The new VIB specification requires the SHA-256 checksum to be included in the XML descriptor.

VIB-Related Objects

There are objects related to VIB files on ESXi that can be used to install and manage ESXi software components more effectively and smoothly. Software depots and image profiles are related to VIB files. Let’s explore what they are.

Software depot

A software depot is a repository that contains a collection of VIB files, metadata, and image profiles. There are two types of software depots:

  • Online depot is hosted on a remote server and accessed over the internet. VMware and hardware vendors often provide online depots containing drivers, patches and updates.
  • Offline depot is a bundle of VIB files and metadata packaged in a single ZIP file. This can be downloaded and used when an internet connection is not available or for convenience in controlled environments.

Software depots simplify the process of managing and deploying software updates and drivers on ESXi hosts. They serve as a central source for obtaining the necessary VIB files for installation and updates.

You can list available software depots:

esxcli software sources profile list --depot=https://hosted.depot.url/index.xml

Image profile

An image profile is a collection of VIB files that defines the software stack for an ESXi host. It specifies the base ESXi image and any additional drivers, patches, or updates. Image profiles are used to standardize the installation and configuration of ESXi hosts, ensuring consistency across a data center.

Each image profile has the following components/attributes:

  • Base image – the core ESXi software
  • Additional VIBs – drivers, patches, and third-party software
  • Acceptance level that specifies the level of trust for the included VIBs (for example, VMwareCertified, VMwareAccepted, PartnerSupported, CommunitySupported).

To list VIB files available in the image profile, you can use the command like this:

esxcli software profile get --profile-name=ProfileName

Relationship to VIB files

VIB files are the base components of both software depots and image profiles. It is important to understand their relationship to VIB files. This acknowledgment helps reduce the number of potential errors when installing VIB packages on ESXi.

The depot stores VIB files along with metadata that describes them. When you access a software depot, you are essentially accessing a collection of VIB files that can be used to install, patch, or update ESXi hosts.

An image profile is a curated collection of VIB files selected from one or more software depots. It defines the exact set of VIBs to be installed on an ESXi host, ensuring that the host has the required drivers, updates, and software to meet specific operational needs.

VIB Installation Requirements

To install VIB files on ESXi correctly, you should meet the following VIB requirements:

  • Ensure that the VIB is compatible with the version of ESXi installed on the host. Compatibility information can usually be found in the VIB documentation or on the vendor’s website.
  • For certain VIB installations, the ESXi host may need to be in maintenance mode to prevent disruptions to running VMs and to allow system changes.
  • Obtain the VIB from a trusted and verified source to avoid security risks. The VIB must match or exceed the host’s acceptance level (VMwareCertified, VMwareAccepted, PartnerSupported, CommunitySupported). The acceptance level can be adjusted if necessary.
  • Enable SSH on the ESXi host to allow remote command-line access. Enable SSH via the ESXi web interface or via the DCUI (Direct Console User Interface).
  • Ensure that any dependencies required by the VIB are already installed or available in the depot. Check for conflicts with existing VIBs on the host. Resolve any conflicts before proceeding with the installation.
  • Verify that there is enough disk space on the ESXi host to accommodate the new VIB.
  • Backup the ESXi host configuration to restore it if the installation causes issues. The basic command for this is vim-cmd hostsvc/firmware/backup_config

How to Install VIB Packages

Let’s install VIB files on ESXi and outline the steps. First, we cover the general steps to install VIBs and then go to specific installation examples.

  1. Enable SSH on ESXi.
    • To enable SSH access in the web interface of VMware Host Client, go to Host > Actions > Services > Enable Secure Shell (SSH).
    • To enable remote SSH access in DCUI, go to Troubleshooting options > Enable SSH.

    How to enable remote SSH access on ESXi

  2. Upload .vib files or .zip archives with .vib files to a datastore of an ESXi host. You can do this via an SFTP or SCP client via SSH or in the web interface of VMware Host Client and VMware vSphere Client.

    To upload .vib files in VMware Host Client, go to Datastores > Select your datastore > Datastore browser, go to the specific directory, and click Upload. We uploaded zipped VIB files to /vmfs/volumes/datastore50/vib in this example. You can upload .zip archives and .vib files to a shared datastore to make the installation of VIB packages on multiple ESXi hosts easier.

    Copying VIB files to an ESXi datastore

  3. Connect to the ESXi host in an SSH client. In Windows, you can use PuTTY. In Linux, use the command like:

    ssh esxi_ip_address

    In our case, the command is:

    ssh 192.168.101.31

  4. Check what VIB packages are installed on the ESXi host:

    esxcli software vib list

    Viewing an ESXi VIB list

You can download the needed VIB file from the website of a hardware vendor or the VMware website. VIB packages are often provided in ZIP archives, and you can install a VIB by using a ZIP archive.

Example 1: Installing the software

Let’s explore a practical example and install the iDRAC Service Module provided by DELL on a PowerEdge server running ESXi.

Though not all packages require this, entering the ESXi host into maintenance mode is recommended.

  1. If maintenance mode is required for a vib package, use the command:

    vim-cmd hostsvc/maintenance_mode_enter

    You can put an ESXi host into maintenance mode in the web interface of VMware vSphere Client or VMware Host Client.

    NOTE: The iDRAC Service Module package (that we use in this example) doesn’t require using maintenance mode and ESXi reboot.

  2. Go to the directory on the ESXi datastore where your VIB files are stored and check the files in this directory:

    cd /vmfs/volumes/datastore50/vib

    ls -al

    Going to a directory with a zip archive containing the VIB file

  3. To install a VIB package, run the command:

    esxcli software vib install -d <path_to_a_zip_or_vib_file>

    In our example, the exact command is:

    esxcli software vib install -d /vmfs/volumes/datastore50/vib/ISM-Dell-Web-5.0.1.0-2951.VIB-ESX8i-Live_A00.zip

    Running the esxcli software vib install command

    If the VIB package is located on a remote server, use the following command:

    esxcli software vib install -v http://url_to_vib/vib_file.vib

    The dry-run switch at the end of a command when installing a VIB on an ESXi host can be used to simulate the installation process without making any actual changes to the system. It allows you to see what would happen if the command were executed, including any potential conflicts or dependencies that would be affected.

    Using the dry-run switch is particularly useful in production environments to avoid unintended disruptions and minimize downtime. It allows you to verify the impact of installing new software components and ensures that your system remains stable and operational.

  4. Verify the installation of the VIB file:

    esxcli software vib list | grep vib_name

Example 2: Installing an update

In this example, we will install an ESXi update to update ESXi 8.0 Update 1 (8.0.1) to ESXi 8.0 Update 2 (8.0.2) by using a downloaded VIB package. This workflow is different compared to the workflow explained in Example 1.

  1. Enter the maintenance mode:

    vim-cmd hostsvc/maintenance_mode_enter

  2. To update or upgrade ESXi, use ESXi update profiles instead of the vib install command:

    esxcli software sources profile list --depot=file:///vmfs/volumes/datastore50/vib/VMware-ESXi-8.0U2-22380479-depot.zip

    Viewing ESXi image profiles in a local zip file depot

  3. Run the command to update ESXi:

    esxcli software profile update --depot=file:///vmfs/volumes/datastore50/vib/VMware-ESXi-8.0U2-22380479-depot.zip --profile=ESXi-8.0U2-22380479-standard

    Updating ESXi requires using a profile and a depot file

    ESXi server reboot is required, as we can see in the output.

  4. Run the command to reboot the ESXi host.

    reboot

  5. Check the ESXi version after installing an update provided in a VIB file:

    vmware -v

    The output is:

    VMware ESXi 8.0.2 build-22380479

  6. If you used the correct method, then the ESXi version must match the ESXi profile version, which you can check with the command:

    esxcli software profile get

    Checking the ESXi version and the profile version after the update

  7. Exit the maintenance mode:

    vim-cmd hostsvc/maintenance_mode_exit

Updating a VIB

The vib update action is used to update installed VIBs (vSphere Installation Bundles) on an ESXi host. This command replaces existing VIBs with newer versions if available, ensuring that the ESXi host is running the most recent and secure versions of the software components.

The vib update command checks the current VIB versions on the ESXi host and compares them with the versions available in the specified depot (which can be an online or offline repository). If newer versions are found, the command will replace the existing VIBs with the updated ones.

A VIB update is essential for:

  • Patching. Applying security patches to fix vulnerabilities in the software.
  • Feature enhancements. Updating software to include new features or improvements.
  • Bug fixes. Resolving known issues and bugs in the current software version.
  • Driver updates. Ensuring that hardware components (like network cards or storage controllers) have the latest drivers for optimal performance and compatibility.

The command for VIB update is the following:

esxcli software vib update [options]

The options are:

depot=<URL or path> specifies the location of the software depot (online URL or offline ZIP file) containing the VIB updates.

vibname=<vib_name> specifies the name of the VIB to update. This can be used to update a specific VIB rather than all VIBs available in the depot.

dry-run simulates the update process without making any actual changes. This is useful for verifying what will be updated before applying the changes.

profile=<profile_name> specifies the image profile to use for the update.

Examples of using the vib update command are listed below.

  • Update all VIBs from an offline depot:

    esxcli software vib update --depot=/path/to/offline-depot.zip

  • Update a specific VIB:

    esxcli software vib update --depot=/path/to/offline-depot.zip --vibname=example-vib

  • Update all VIBs from an online depot:

    esxcli software vib update --depot=http://hosted.depot.url/index.xml

  • Simulate the update process:

    esxcli software vib update --depot=/path/to/offline-depot.zip --dry-run

Uninstalling VIB

Uninstalling VIB packages that were installed on an ESXi host before can be done in a few steps.

  1. Connect to the ESXi host via SSH in an SSH client.
  2. List the installed VIB packages to identify the name of the package you want to uninstall:

    esxcli software vib list

  3. Uninstall the needed VIB package with the command:

    esxcli software vib remove --vibname=package_name.vib

Errors and Troubleshooting

Several errors can occur when installing VIB packages on an ESXi host. These errors are often related to dependencies, conflicts, or system compatibility.

Certificate error

Could not find a trusted signer: unable to get local issuer certificate.

Set the attribute that allows you to skip the certificate check with the no-sig-check key:

esxcli software vib install -v /tmp/filename.vib --no-sig-check

or enable the installation of packages by changing the acceptance level before running the vib install command:

esxcli software acceptance set --level=CommunitySupported

Dependency error

Could not find a trusted signer.

The VIB package requires other VIBs that are not present on the ESXi host. Ensure that all required dependencies are available in the specified depot or install the required dependencies first.

esxcli software vib install --depot=/path/to/dependency-depot.zip

Conflict error

VIB <vib_name> conflicts with <conflicting_vib>

The VIB package conflicts with an already installed VIB. Remove the conflicting VIB before installing the new one.

esxcli software vib remove --vibname=conflicting_vib

esxcli software vib install --depot=/path/to/new_vib_depot.zip

VIB Installation Best Practices

Follow the best practices to install and manage VIB packages on ESXi hosts to reduce the probability of errors:

  • Verify compatibility. Always check the compatibility of the VIB with your ESXi host version. Check whether the VIB installation requires entering an ESXi host into maintenance mode and ESXi reboot because it can impact running virtual machines.
  • Backup configuration. Before installing or updating VIBs, consider backing up your ESXi host configuration.
  • Test in a non-production environment. If possible, test VIB installations in a non-production environment to prevent disruptions. Test VIB installations, updates, and removals in a non-production or staging environment first. This helps identify any potential issues without affecting production systems.
  • Monitor system logs. Use ESXi system logs to monitor and troubleshoot installation issues.
  • Monitor system health. Continuously monitor your VMware ESXi hosts, including performance and health after installing or updating VIBs to quickly detect and address any issues. Set up log monitoring and alerts for any errors or warnings related to VIB operations.

Conclusion

VIB files are packages used to install drivers, software, and other ESXi components as well as updating them. Most operations to manage VIB packages are performed in the ESXi command line interface, which can be accessed via SSH.

Ensure that you’re using a dedicated backup solution to protect your ESXi hosts and virtual machines against downtime and data loss. NAKIVO Backup & Replication is a comprehensive data protection solution for VMware environments delivering backup, disaster recovery, real-time replication, and IT Monitoring for ESXi VMs.

Source:
https://www.nakivo.com/blog/instal-vib-files-on-esxi/