← All challenges
hardautomation~90 min

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 Lo0 2.2.2.2/32, R3 Lo0 3.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

  1. Build the fix locally. New to the tooling? See setting up your lab.
  2. Push your topology file, device configs, and any playbooks to a public repo (GitHub or GitLab).
  3. Submit the repo link. We review it by hand, confirm it works, and issue your proof page.
Submit your solution →