You can upgrade or update a host with image profiles stored in a software depot that is accessible through a URL or in an offline ZIP depot.

You can use the esxcli software profile update or esxcli software profile install command to upgrade or update an ESXi host. To understand the differences between upgrades and updates, see Differences Between vSphere Upgrades, Patches, Updates, and Migrations.

When you upgrade or update a host, the esxcli software profile update or esxcli software profile install command applies a higher version (major or minor) of a full image profile onto the host. After this operation and a reboot, the host can join to a vCenter Server environment of the same higher version.

The esxcli software profile update command brings the entire contents of the ESXi host image to the same level as the corresponding upgrade method using an ISO installer. However, the ISO installer performs a pre-upgrade check for potential problems, and the esxcli upgrade method does not. The ISO installer checks the host to make sure that it has sufficient memory for the upgrade, and does not have unsupported devices connected. For more about the ISO installer and other ESXi upgrade methods, see Overview of the ESXi Host Upgrade Process.

Important: If you are upgrading or updating ESXi from a zip bundle in a VMware-supplied depot, either online from the VMware Web site or downloaded locally, VMware supports only the update command esxcli software profile update --depot=depot_location --profile=profile_name.

When you specify a target server by using --server=server_name, the server prompts you for a user name and password. Other connection options, such as a configuration file or session file, are supported. For a list of connection options, see Getting Started with vSphere Command-Line Interfaces, or run esxcli --help at the vCLI command prompt.

Note:

Options to the update and install commands allow you to perform a dry run, to specify a specific VIB, to bypass acceptance level verification, and so on. Do not bypass verification on production systems. See the vSphere Command-Line Interface Reference.

Prerequisites

  • Install vCLI or deploy the vSphere Management Assistant (vMA) virtual machine. See Getting Started with vSphere Command-Line Interfaces. For troubleshooting, run esxcli commands in the ESXi Shell.

  • Determine whether the update requires the host to be in maintenance mode or to be rebooted. If necessary, place the host in maintenance mode.

    See Determine Whether an Update Requires the Host to Be in Maintenance Mode or to Be Rebooted. See Place a Host in Maintenance Mode.

  • If the update requires a reboot, and if the host belongs to a VMware HA cluster, remove the host from the cluster or disable HA on the cluster.

Procedure

  1. Determine which VIBs are installed on the host.
    esxcli --server=server_name software vib list
  2. Determine which image profiles are available in the depot.
    esxcli --server=server_name software sources profile list --depot=http://webserver/depot_name

    You can specify a proxy server by using the --proxy argument.

  3. Update the existing image profile to include the VIBs or install new VIBs.
    Important: The software profile update command updates existing VIBS with the corresponding VIBs from the specified profile, but does not affect other VIBs installed on the target server. The software profile install command installs the VIBs present in the depot image profile, and removes any other VIBS installed on the target server.
    Option Description
    Update the image profile from a VMware-supplied zip bundle, in a depot, accessible online from the VMware Web site or downloaded to a local depot. esxcli software profile update --depot=depot_location --profile=profile_name
    Important: This is the only update method that VMware supports for zip bundles supplied by VMware.

    VMware-supplied zip bundle names take the form: VMware-ESXi-6.5.0-build_number-depot.zip

    The profile name for VMware-supplied zip bundles takes one of the following forms.

    • ESXi-6.5.0-build_number-standard
    • ESXi-6.5.0-build_number-notools (does not include VMware Tools)
    Update the image profile from a depot accessible by URL esxcli --server=server_name software profile update --depot=http://webserver/depot_name --profile=profile_name
    Update the image profile from ZIP file stored locally on the target server esxcli --server=server_name software profile update --depot=file:///<path_to_profile_ZIP_file>/<profile_ZIP_file> --profile=profile_name
    Update the image profile from a ZIP file on the target server, copied into a datastore esxcli --server=server_name software profile update --depot=“[datastore_name]profile_ZIP_file" --profile=profile_name
    Update the image profile from a ZIP file copied locally and applied on the target server esxcli --server=server_name software profile update --depot=/root_dir/path_to_profile_ZIP_file/profile_ZIP_file --profile=profile_name
    Install all new VIBs in a specified profile accessible by URL esxcli --server=server_name software profile install --depot=http://webserver/depot_name --profile=profile_name
    Install all new VIBs in a specified profile from a ZIP file stored locally on the target esxcli --server=server_name software profile install --depot=file:///<path_to_profile_ZIP_file>/<profile_ZIP_file> --profile=profile_name
    Install all new VIBs from a ZIP file on the target server, copied into a datastore esxcli --server=server_name software profile install --depot=“[datastore_name]profile_ZIP_file" --profile=profile_name
    Install all new VIBs from a ZIP file copied locally and applied on the target server esxcli --server=server_name software profile install --depot=/root_dir/path_to_profile_ZIP_file/profile_ZIP_file --profile=profile_name
    Note:

    Options to the update and install commands allow you to perform a dry run, to specify a specific VIB, to bypass acceptance level verification, and so on. Do not bypass verification on production systems. See the vSphere Command-Line Interface Reference.

  4. Verify that the VIBs are installed on your ESXi host.
    esxcli --server=server_name software vib list