Automate OSPF across three routers
Don't configure by hand. Write an Ansible playbook that brings up OSPF consistently across three routers, idempotently.
Scenario
You've been handed three routers in a triangle and told: "Bring up OSPF in area 0 so everything can reach everything, and do it as code, not by typing on each box. The next engineer should be able to re-run it safely."
Topology
- R1 Lo0
1.1.1.1/32, R2 Lo02.2.2.2/32, R3 Lo03.3.3.3/32 - Core links between each pair (a /30 per link; addressing provided in the starter)
- All OSPF in area 0
Your job
Write an Ansible playbook (with inventory and host_vars) that configures OSPF on all three
routers so that every directly-connected pair forms a FULL adjacency and every router learns the
other two loopbacks. It must be idempotent: running it twice makes no changes the second time.
Deliverables: the playbook, inventory, and any host_vars/templates, plus the device configs
or topology so it can be reproduced.
What "done" looks like
One ansible-playbook run brings the whole domain up; neighbors are FULL; loopbacks are reachable
everywhere; a second run is a no-op.
Teaches: config-as-code, idempotency, and managing N devices from one source of truth, the day-job skill that pure cert study skips.
What gets checked
Your solution is verified against each of these:
- The playbook runs cleanly against all three devices
- OSPF neighbors reach FULL state across every connected router pair
- Each router learns the other two loopbacks (2.2.2.2/32, etc.) via OSPF
- Re-running the playbook reports zero changes the second time
How to submit
- Build the fix locally. New to the tooling? See setting up your lab.
- Push your topology file, device configs, and any playbooks to a public repo (GitHub or GitLab).
- Submit the repo link. We review it by hand, confirm it works, and issue your proof page.