Arista EOS โ Deployment
Stage, diff, commit and roll back fabric changes for Arista EOS data center fabrics (VXLAN/EVPN). Part of the multi-vendor Data Center automation guide.
Setup, key commands & run examples
The Arista EOS change workflow. EOS named configuration sessions give you a true candidate config: stage changes in a session, review show session-config diffs, then commit atomically or abort. eAPI (JSON-RPC) is ideal for structured collection.
# 1. stage: configure session <name> (named config session)
# 2. diff: show session-config diffs
# 3. commit: commit (within the session)
# 4. revert: abort / configure session <name> abortRender config from intent, stage it on Arista, preview the diff and only commit when it matches what you expect.
dev.load_merge_candidate(config=rendered) # configure session <name> (named config session)
diff = dev.compare_config() # show session-config diffs
print(diff)
if diff and "vlan 120" in diff:
dev.commit_config() # commit (within the session)
else:
dev.discard_config()Best practices
Diff before every commit
Always review show session-config diffs (or gate it in CI) so no Arista 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
Arista has no confirmed-commit โ keep a rollback (abort / configure session <name> abort) 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.
Goal: Add an L2VNI to one Arista leaf pair: stage, print the diff, commit only if it contains the expected VLAN id.
rendered = render_l2vni(vlan=120, vni=10120)
# TODO: stage -> diff -> commit only if "120" in diff, else discardGoal: Apply a bad change, detect the EVPN peer drop, and roll back with: abort / configure session <name> abort
# apply change, then on failure:
abort / configure session <name> abortCurated 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 Arista commit semantics match other vendors โ they differ.
Gotchas to watch
- โขcompare_config() returns an empty string (not None) when there is no change โ test truthiness.
- โข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.