Git / NetDevOps
Why Version Control for Network Configuration? The Change-History Problem
What you'll learn
- The real gap: rollback restores state, but keeps no history of change
- What version control adds that a single rollback() call doesn't
- That this module needs no external server -- a real, local capability
- What this module reuses, and what's genuinely new
Listen to a guided explanation of this lesson.
Spoken narration isn't supported in this browser.
Rollback restores state. It doesn't keep history.
A different problem than every prior module solved
NAPALM's rollback() (Phase 3.5) undoes a bad commit on one device, right now. It answers "how do I undo this." It has never answered "what changed last month, why, and who approved it." No module so far has kept a record of change over time -- only the ability to react to one change at a time.
- A config or data file changeshosts.yaml, a rendered template, a NetBox record
- The old version is simply goneoverwritten, no record kept
- No answer to: what changed, when, why?
- Every change is a commita permanent, readable record
- Nothing is ever silently overwrittenold versions stay reachable
- A real, readable history: what, when, and (via the message) why
A real, local capability -- no external service needed
Different from NetBox, and worth naming directly
NetBox (Phase 3.7) needed a mock server, because real NetBox is a full application requiring a database. Git is different: it's a real, local tool. Nothing about this module requires a server, an account, or a network connection -- every example runs against a real, local repository.
git version 2.55.0.windows.3Real, verified -- confirmed installed and available in this authoring environment before any lesson content was written.
What this module reuses, and what's genuinely new
Not re-taught here
Jinja2 template rendering (Phase 2.9) and pynetbox/NetBoxInventory2 querying (Phase 3.7) are assumed known -- this module versions the OUTPUT those systems already produce, not how they produce it. Dry-run/pre-check discipline (Phase 2.8) and compare_config() (Phase 3.5) are assumed known -- this module applies the same "review before you commit to it" principle to change history itself.
Key takeaways
- rollback() (Phase 3.5) undoes one bad change, right now -- it keeps no record of change over time. This module is about the history itself.
- Git is a real, local, offline-capable tool -- verified directly installed in this environment. Unlike NetBox (Phase 3.7), no mock server is needed anywhere in this module.
- Jinja2 rendering (Phase 2.9) and NetBox querying (Phase 3.7) are prerequisites, reused not re-taught -- this module versions their output.
- Dry-run/pre-check (Phase 2.8) and compare_config() (Phase 3.5) taught 'review before you commit' for one device -- this module applies the same principle to change history.