Two built-in NX-OS upgrade workflows — a single-switch upgrade and a vPC Pair upgrade that takes both peers and does them one at a time in a single run. Both cover pre-checks and config backup, image staging to bootflash: with SHA-512 verification, an ISSU-vs-disruptive impact check, install all, and post-upgrade verification, behind approval gates.
Pre-Upgrade Checks
Stage & Verify Image
Impact Check
Install
Post-Upgrade Verify
Cisco Nexus 9000 (NX-OS) Upgrade is a built-in Versus workflow template (Workflows → Router / Switch category, marked Built-in) that automates a safe, auditable NX-OS software upgrade for a Nexus 9000 switch. It performs the whole sequence a network engineer would run by hand — version and redundancy checks, a config backup, image transfer and hash verification, a compatibility / impact dry-run, install all, and post-upgrade verification — while pausing at two approval gates so a human signs off before anything is staged and again, with the impact result in hand, before the switch is touched.
The workflow is built around three facts specific to the Nexus 9000 platform:
nxos….bin image — there is no separate kickstart image to stage and keep in lockstep.install all is the upgrade primitive. It validates compatibility, sets the boot variables, saves the running configuration, and (for a disruptive upgrade) reloads the switch — all in one command. Versus never hand-edits boot nxos variables.show install all impact is a dry run that reports, per module, whether the upgrade is non-disruptive (ISSU) or disruptive (reload) — so the operator approves the install with eyes open.There are two built-in templates in the Router / Switch category — pick by topology:
Both share the same underlying steps — the pair workflow simply runs them twice, once per peer, with an order-planning step at the front and an automatic vPC-health gate in the middle. The rest of this page walks the single-switch flow first, then the pair-specific additions.
scp://, sftp://, ftp://, tftp://, http://). To push from the library, the switch needs feature scp-server enabled (or feature sftp-server for a collector-local copy).show vpc shows peer adjacency formed and consistency OK before starting the second.If you've run the F5 BIG-IP upgrade workflow, it upgrades the standby unit first, fails traffic over to it, then upgrades the former active and fails back. That sequence exists because an F5 HA pair is active/standby — exactly one unit holds the traffic role at any moment, and there is a real failover command that moves it.
A Nexus 9000 vPC pair is different: it is active/active. Both switches forward traffic at the same time — dual-homed hosts and downstream switches connect to both peers over a single port-channel (the vPC), with both member links live. The vPC "primary / secondary" role is only a control-plane tie-breaker (which peer suspends its vPC member ports if the peer-link fails); it is not a traffic active/standby distinction. That changes the upgrade approach in two ways:
show vpc — peer adjacency formed, consistency OK, roles settled), and only then upgrade the second. Never reload both peers in the same window — that drops the whole vPC. The vPC Pair Upgrade workflow does exactly this sequencing for you in a single run (below); the single-switch workflow leaves you to run it once per peer.Only orphan ports and any single-homed devices on the peer being reloaded actually lose connectivity during a disruptive upgrade; dual-homed traffic rides through the other peer. And when the impact check finds an ISSU (non-disruptive) path, that peer may not reload at all.
install allhandle that internally. That is a different mechanism from vPC peer sequencing, and neither one is a traffic failover you drive from Versus.For a standalone Nexus (no vPC), none of this applies — it is a single switch, the upgrade is typically a disruptive reload, and there is no peer to sequence.
Cisco Nexus 9000 vPC Pair Upgrade takes a device group containing both peers and does the whole sequence in a single run, with the one-at-a-time safety built in. Its run form adds two fields to the single-switch inputs:
Versus reads each peer's vPC role over SSH (show vpc) to resolve the order; if a role can't be read (for example the switches aren't actually in a vPC), it falls back to a deterministic order by management IP so the run is still repeatable.
What the pair run does, end to end:
bootflash: space) on both peers, and save each running config.show vpc until peer adjacency is formed, the keep-alive peer is alive, and there are no consistency failures. If the vPC does not recover within the timeout, the run stops here — the second peer is never reloaded while the first is still rejoining.The two approval gates are the only pauses; everything between them, including the health gate, is automatic. So a vPC pair is one run with two approvals, not two separate runs.
Go to Workflows and find Cisco Nexus 9000 (NX-OS) Upgrade in the Router / Switch section, alongside the other built-in Cisco templates (IOS / IOS-XE Bundle, IOS-XE Install Mode, IOS XR). Built-in workflows are read-only — you run them directly rather than editing the canvas. Click Run to open the run form, which asks for:
10.3(4a) or 9.3(12). Used to detect "already upgraded" and to verify the result afterward. NX-OS version strings are compared loosely, so 10.3(4a) and 10.3.4a both match.scp://[email protected]/images/nxos64-cs.10.3.4a.M.bin, plus the Image Filename to save as.There are two ways to get the NX-OS image onto bootflash:, and you choose per run:
bootflash: over SCP (for a site device this rides the collector tunnel). For an image registered collector-local, the on-site collector copies it to the switch over the LAN, so a multi-GB image never transits the cloud — the same model as Collector-Local Firmware. The switch must have feature scp-server enabled to accept an SCP push (or feature sftp-server for the collector copy). Versus skips the transfer if the image is already on bootflash:.scp://, sftp://, ftp://, tftp://, http://) plus the filename to save as. The switch pulls the image itself over the management VRF — no feature scp-server needed, but you supply the file server.Before anything is staged, the workflow runs read-only checks and a config backup against the switch:
show version; records the running version and chassis model, and flags if the switch is already on the target.show vpc and show system redundancy status; reports the vPC role and whether the chassis has dual supervisors (an ISSU candidate), and reminds you to upgrade one vPC peer at a time.show module confirms every module is healthy (active / ok / standby) and fails the run if any is powered-down, failed, or absent — you never want to run install all against a degraded chassis. show fex lists attached Fabric Extenders and their state (their image compatibility with the target is validated by the impact check).dir bootflash:; fails the run early if there isn't enough room for the image (NX-OS images run roughly 1.5–2 GB), with guidance to delete inactive images.copy running-config startup-config, so the switch has a clean startup config before the upgrade touches boot variables.If any check fails, the run halts here — nothing has been transferred, installed, or reloaded.
With staging approved, the image is pulled onto the switch and proven intact:
bootflash: over SCP (or the collector copies a collector-local image over the LAN), or, for a URL, the switch pulls it with copy <source-url> bootflash: vrf management. The step handles the prompts, logs transfer progress, skips the copy if the image is already present, and allows up to 40 minutes for a large image.show file bootflash:<image> sha512sum (SHA-256 / MD5 also selectable). If you supplied an expected hash, a mismatch fails the run so a corrupt image can never be installed. Versus also runs show version image bootflash:<image> to confirm NX-OS recognizes it as a bootable image and reads back its version.Versus runs show install all impact nxos bootflash:<image> — a dry run that touches nothing but tells you exactly what the real install will do:
install all performs it automatically; the run notes it so you know not to interrupt power during the install.install all, which sets the boot variables, saves the configuration, and reloads if the upgrade is disruptive.Versus issues install all nxos bootflash:<image>, choosing the mode from the impact result (you can override to force disruptive or ISSU from the step config):
non-disruptive keyword and Versus polls show install all status until the in-service upgrade reports success. The management session normally survives and the data plane keeps forwarding.In both cases install all — not Versus — sets the boot variables and saves the configuration, which is why the workflow never edits boot nxos by hand.
Once the switch is back (or the ISSU completes), Versus confirms the upgrade landed:
show version on every device in the group; the run fails if any switch is not on the target version.show boot to confirm the boot nxos variable points at the new image, so the switch stays on it across a future reload.The final section runs Install EPLD only if you supplied an EPLD Image Filenamein the run form — otherwise it is skipped. EPLD (Electronic Programmable Logic Device) images update module firmware and are disruptive: install epld bootflash:<image> module allpower-cycles the modules. Only run it when the target release's notes explicitly call for an EPLD update, and stage the EPLD image to bootflash: beforehand.
A failed step pauses the run rather than continuing blind. From the run detail page you can:
NX-OS itself provides the deepest safety net: the previous image remains on bootflash:, so a manual rollback is a matter of pointing the boot variables back at it (install all nxos bootflash:<old-image>) and reloading. Because the workflow saves the startup config before staging and lets install allmanage the boot variables, the switch is never left in a half-configured boot state by Versus.
| Stage | What Happens | Traffic Impact |
|---|---|---|
| 1 — Pre-Upgrade Checks | Version, vPC/HA, module + FEX health, bootflash: space, save running config | None |
| — Approve Image Staging | Human gate before anything is copied to the switch | None |
| 2 — Stage & Verify | Pull image over mgmt VRF, verify SHA-512, confirm bootable | None |
| 3 — Impact Check | show install all impact → ISSU vs disruptive; module support (fails if incompatible), BIOS-upgrade flag, FEX | None |
| — Approve Install | Impact-aware human gate before install all | None |
| 4 — Install (ISSU) | install all … non-disruptive; poll status to success | None |
| 4 — Install (disruptive) | install all; switch reloads; Versus waits for it to return | Reload — orphan/single-homed ports drop |
| 5 — Post-Upgrade | Verify version and boot variables | None |
| Optional — EPLD | install epld module all — only if an EPLD image is supplied | Disruptive (module power-cycle) |