I’ve recently ran through a problem when trying to upgrade NSX-T from version 2.5.0 to 2.5.1. When using the Upgrade function within the UI I was getting the following error:

This page is only available on the NSX Manager where Upgrade Coordinator is running. To configure the service, run the command restart service install-upgrade on the NSX Manager.

Error: You have 1 Error(s). Fix: Run “restart service install-upgrade” on NSX Manager.

Investigating the Error

While checking the status of the service the service seemed to be running with no issues. I also checked the release notes for a couple of releases back and I found a similar issue in the release notes for the 2.3 release.

Due to my install being a home lab I could not contact support. If you are experiencing this issue I would strongly advise to contact support before continuing further. VMware support contact information can be found here.

Locating the .nub Upgrade Bundle

While reading the NSX-T 2.5.1 Upgrade guide from the VMware documentation at page 22 I stumbled on instructions to upgrade the CSM. The instructions reference a .nub file but with no instructions on how to retrieve it. Based on what’s available on the VMware download portal I was able to find a .mub file.

In order to bypass the error I was experiencing I downloaded the 2.5.1 version of the .mub file from the VMware download portal.

After downloading the .mub file I used an unarchiver, in my case 7-zip, trying to extract an archive from the .mub file. I’ve found that the .mub file included a .tar.gz archive and a .sig file. After extracting the tar.gz archive I was presented with a number of folders that included the VMware-NSX-unified-appliance-<version>.nub file I was looking for.

The file should be under the Manager folder. Once extracted it should be uploaded to /image/vmware/nsx/file-store/ on the NSX Manager server. If CLI access to the appliance is not yet set up, I covered how to enable SSH on the NSX appliance in a separate post.

Verifying the Upgrade Bundle

Verify the upgrade bundle by running verify upgrade-bundle VMware-NSX-unified-appliance-<version> as the admin user:

verify upgrade-bundle VMware-NSX-unified-appliance-2.5.1.0.0.15314292

The output in my case was

Checking upgrade bundle /var/vmware/nsx/file-store/VMware-NSX-unified-appliance-2.5.1.0.0.15314292.nub contents
Verifying bundle VMware-NSX-unified-appliance-2.5.1.0.0.15314292.bundle with signature VMware-NSX-unified-appliance-2.5.1.0.0.15314292.bundle.sig
Moving bundle to /image/VMware-NSX-unified-appliance-2.5.1.0.0.15314292.bundle
Extracting bundle payload
Successfully verified upgrade bundle
Bundle manifest:
appliance_type: 'nsx-unified-appliance'
version: '2.5.1.0.0.15314292'
os_image_path: 'files/nsx-root.squashfs'
os_image_md5_path: 'files/nsx-root.squashfs.md5'
Current upgrade info:
{
"info": "",
"body": {
"meta": {
"from_version": "2.5.0.0.0.14390405",
"old_config_dev": "/dev/mapper/nsx-config",
"to_version": "2.5.1.0.0.15314292",
"new_config_dev": "/dev/mapper/nsx-config__bak",
"old_os_dev": "/dev/sda2",
"bundle_path": "/image/VMware-NSX-unified-appliance-2.5.1.0.0.15314292",
"new_os_dev": "/dev/sda3"
},
"history": []
},
"state": 1,
"state_text": "CMD_SUCCESS"
}

Starting the Manual Upgrade

The next step was to upgrade using the bundle:

start upgrade-bundle VMware-NSX-unified-appliance-2.5.1.0.0.15314292 playbook VMware-NSX-manager-2.5.1.0.0.15314292-playbook
Node Upgrade is in progress. Please do not make any changes, until
the upgrade operation is complete.

2020-04-20 01:03:25,418 - Validating playbook /var/vmware/nsx/file-store/VMware-NSX-manager-2.5.1.0.0.15314292-playbook.yml
2020-04-20 01:03:25,492 - Running "unregister_ccp" (step 1 of 13)
2020-04-20 01:03:30,930 - Running "shutdown_manager" (step 2 of 13)
2020-04-20 01:05:18,077 - Running "install_os" (step 3 of 13)
2020-04-20 01:06:14,179 - Running "migrate_manager_config" (step 4 of 13)
2020-04-20 01:06:17,657 - Running "switch_os" (step 5 of 13)
2020-04-20 01:06:30,330 -

System will now reboot (step 6 of 13)
{
"info": "",
"body": null,
"state": 1,
"state_text": "CMD_SUCCESS"
}