Back to Learn

Cumulus Linux (NVUE) โ€” Deployment

Stage, diff, commit and roll back fabric changes for Cumulus Linux (NVUE) data center fabrics (VXLAN/EVPN). Part of the multi-vendor Data Center automation guide.

Cumulus
NVUE
REST API
VXLAN / EVPN
Render per-vendor config from the intent model
Stage as a candidate on Cumulus, then diff
Commit only the expected diff โ€” roll back on failure

Setup, key commands & run examples

deploy.sh
Stage / diff / commit

The Cumulus Linux (NVUE) change workflow. Cumulus uses NVUE: nv set stages a revision, nv config diff previews it, nv config apply commits. There is a REST API mirroring the nv commands โ€” prefer it over raw bash on modern releases.

deploy.sh
bash
# 1. stage:   nv set ... (staged revision)
# 2. diff:    nv config diff
# 3. commit:  nv config apply
# 4. revert:  nv config apply <revision> / nv config restore
deploy.py
Guarded commit

Render config from intent, stage it on Cumulus, preview the diff and only commit when it matches what you expect.

deploy.py
python
stage_config(rendered)                      # nv set ... (staged revision)
diff = preview_diff()                        # nv config diff
print(diff)
if "vlan 120" in diff:
    apply_config()                          # nv config apply
else:
    discard_config()                        # nv config apply <revision> / nv config restore

Best practices

  • Diff before every commit

    Always review nv config diff (or gate it in CI) so no Cumulus change is applied blind.

  • Deploy leaf-pairs, not rows

    Roll one MLAG/ESI pair at a time and verify before moving on, so redundancy survives a bad change.

  • Confirmed commits

    Cumulus has no confirmed-commit โ€” keep a rollback (nv config apply <revision> / nv config restore) one command away and watch the session.

  • Post-change verification

    Re-read EVPN/VTEP state after each commit and abort the rollout if anything regressed.

Hands-on exercises

Guided practice tasks โ€” copy the starter snippet, run it against a lab device, and extend it to meet the goal.

Exercise 1
Guarded VLAN rollout

Goal: Add an L2VNI to one Cumulus leaf pair: stage, print the diff, commit only if it contains the expected VLAN id.

exercise_1
python
rendered = render_l2vni(vlan=120, vni=10120)
# TODO: stage -> diff -> commit only if "120" in diff, else discard
Exercise 2
Rollback drill

Goal: Apply a bad change, detect the EVPN peer drop, and roll back with: nv config apply <revision> / nv config restore

exercise_2
bash
# apply change, then on failure:
nv config apply <revision> / nv config restore

Curated videos & guides

Checklist โ€” pitfalls, gotchas & verification

Common pitfalls

  • โ€ขCommitting without reviewing the diff first.
  • โ€ขDeploying both leaves of an MLAG/ESI pair at once and dropping the redundant path.
  • โ€ขAssuming Cumulus commit semantics match other vendors โ€” they differ.

Gotchas to watch

  • โ€ขCumulus stages a revision/candidate โ€” make sure you commit the right one.
  • โ€ขLosing your management session mid-commit can lock you out without confirmed-commit.

Verify it works

  • โ€ขAfter deploy, re-read EVPN neighbors and confirm every peer returned to up.
  • โ€ขDiff running-config against intent post-change to prove zero unexpected drift.