Building an OSPF Network from Scratch with Ansible

This post is part of an ongoing series - see all the posts below.
So far in this series, we've been working with pretty much the same set of devices, core1, core2, access1, access2, and access3. We've used them to configure VLANs, NTP, syslog, and interface descriptions, and to learn the core Ansible concepts along the way.
For this part, we're going to start with a new topology and put everything we've learned into practice with a real-world example. The lab has six Cisco routers, split across three OSPF areas. I created it using Containerlab, and I've included the topology file below, so you should be able to build the same lab and follow along.
name: ospf_lab
mgmt:
network: mgmt
ipv4-subnet: 192.168.202.0/24
topology:
kinds:
cisco_iol:
image: cisco-iol-17.12.01
nodes:
r1:
kind: cisco_iol
mgmt-ipv4: 192.168.202.101
r2:
kind: cisco_iol
mgmt-ipv4: 192.168.202.102
r3:
kind: cisco_iol
mgmt-ipv4: 192.168.202.103
r4:
kind: cisco_iol
mgmt-ipv4: 192.168.202.104
r5:
kind: cisco_iol
mgmt-ipv4: 192.168.202.105
r6:
kind: cisco_iol
mgmt-ipv4: 192.168.202.106
links:
# Area 0
- endpoints: ["r1:Ethernet0/1", "r2:Ethernet0/1"] # 10.100.12. Continue reading


