A structured lesson workspace with readable content, hands-on examples, and a clean path to completion.
Below is a sample Git commit history for a network automation repository — the kind of history that would accompany any change to a production network managed as code. Note how every change is authored, reviewed, tested, and deployed through the same pipeline.
commit a1b2c3dAuthor: alice@example.comDate: 2026-01-15 09:42:11Add VLAN 30 (IoT) to branch templates- Updated vars/branches.yaml to include vlan 30- Updated templates/access-switch.j2 to reference vlan 30- Test suite: passedcommit 9f8e7d6Author: bob@example.comDate: 2026-01-14 15:22:08Fix: adjust QoS policy for voice VLAN- Detected via network-health playbook- Reduced reserved bandwidth from 30% to 20%- Test suite: passedcommit 5c4b3a2Author: alice@example.comDate: 2026-01-13 11:05:42Feature: automated nightly config backup- Added backup playbook- Scheduled via cron- Verified backups on 3 test devices- Test suite: passed
That's infrastructure as code (IaC). Every network change is a commit to a Git repository — with an author, a timestamp, a description, and a review trail. No more 'who changed this?' or 'when did we add that VLAN?' — `git log` answers both. And `git revert` can undo any change.
The pipeline stages are: commit → branch → PR → automated tests → peer review → merge → staging deploy → integration tests → production deploy → monitoring. Every step is automated except the peer review and the human decision to merge. The result is that no untested change reaches production, and every change has a documented reason.
The biggest cultural shift in network automation is treating network config like software. That means version control, code review, tests, and CI/CD. It also means admitting that manual CLI changes are the exception, not the norm. This is a multi-year journey — nobody gets there in a quarter. But the direction is clear, and network engineers who embrace it will be ahead.
| Category | Tools | Purpose |
|---|---|---|
| Version control | Git, GitHub, GitLab | Track changes, enable review |
| CI/CD | GitHub Actions, GitLab CI, Jenkins | Automate testing and deployment |
| Config management | Ansible, Nornir, NAPALM | Push configs, gather data |
| Testing | Batfish, pyATS, pytest | Validate configs, simulate changes |
| Templating | Jinja2, Cisco templates | Generate config from data |
| Inventory | NetBox, Nautobot | Source of truth for devices |
Set up a Git repo for a lab network's configs. Even with just a few routers, tracking changes in Git gives you a mental model for how IaC works. Then try a simple Ansible playbook that gathers `show version` output from each device — the first step toward full automation.
Finish the lesson once you have worked through the material. This awards ★ 35 XP.
Select each vulnerable line, then classify the finding.
Findings
Review target: 18 lines · 3 expected findings