Learning Ansible for Network Automation
This project is mostly me learning, a lot of parts in this project are more for me to be able to reference if needed. I also learn best by teaching, and repetition. Documenting my projects kills 2 birds with 1 stone.
This project treats the network as code. Device configurations, VLAN assignments, BGP policies, monitoring targets, and topology definitions are all version controlled, validated through a PR pipeline, and deployed automatically on merge.
This project is documented across 46 parts, starting from a bare control node and working through the full automation platform.
All devices run as Containerlab nodes using vrnetlab on a dedicated Proxmox VM. The topology file is version controller, validated by a 3 stage pipeline, and deployed via a diff-aware Gitea Actions job that adds or removes only what changed.

Each service runs as a Docker container or its own VM. Everything is self-hosted on Proxmox.
| Service | Purpose | Integration |
|---|---|---|
| NetBox | Source of truth | Dynamic Ansible inventory, Zabbix and Prometheus auto-registration, Graylog IP enrichment |
| Gitea | Self hosted Git with branch protection | GPG-signed commits enforced on main, Oxidized cofig backend, Gitea Actions runner |
| AWX | Automation controller (RBAC, job history, approval gates) | Webhook triggered by Graylog alerts, Netbox change events, and Gitea merges |
| Zabbix | Network monitoring via SNMP polling | Hosts auto-registered from Netbox; interface, BGP, and CPU/memory triggers |
| Prometheus + Grafana | Metrics scraping and dashboards | SNMP Exporter for devices, Node Exporter for VMs |
| Graylog + OpenSearch | Structured syslog (parsing, routing, alerting) | Pipeline rules parse IOS/NX-OS/PAN-OS formates; NetBox lookup table enriches source IPs |
| Oxidized | Config backup with Git diff history | Commits to Gitea on schedule and immediately on Graylog config change detection |
| Batfish | Pre-change network model analysis | Ingests Oxidized configs; interactive reachability queries before opening a PR |
| Ansible EDA | Event driven automation | Real-time event processing; wired into Graylog alart stream |
| FreeRADIUS | 802.1X wired authentication | RADIUS server for campus access switch authentication |
| tac_plus | TACACS+ for AAA nd command authorization | Privilege levels and command sets per device role |
| Netdisco | Layer 2/3 discovery | Reality check against NetBox intent; drift dtection |
GitOps Pipeline
Shelf-healing workflows
Pre-change analysis
NetBox as source of truth
Topology as code
containerlab graph. Merges deploy with a diff-aware job that adds or removes only what changedPipeline hardening
GitOps Change Pipeline
Self-healing loop
Topology Change Pipeline

Grafana: Lab Operations Center
BGP session states, interface traffic, VM health, and Loki log stream in a single dashboard.

Graylog: Structured Syslog
IOS-XE config change event parsed into fields; device_name, event_type, cisco_mnemonic, enriched from NetBox.

Gitea: PR Pipeline Passing
Yamllint and ansible-lint checks passing on a campus VLAN change PR before merge to main.

AWX: Self-headling Workflow
Three-stage remediation workflow: backup → diagnose → notify, triggered by a Graylog config-change alert.
Foundation
Control node, Ansible fundamentals, Vault secrets management, Containerlab topology, all 7 virtual devices, base IOS-XE / NX-OS / PAN-OS automation, BGP fabric brought up end to end.
Infrastructure Platform
Proxmox VM provisioning, Gitea self-hosted Git, NetBox IPAM and dynamic inventory, AWX automation controller, infrastructure hardening.
Enterprise Network Services
Campus switching: VLANs, STP, LAG, port security, 802.1X, QoS. Routing; OSPF, BGP policy, HSRP, WAN. Firewall policies, NAT, IPsec VPN, AAA, NTP, SNMP.
Observability Stack
Zabbix SNMP monitoring, Prometheus + Grafana + Loki, Graylog + OpenSearch structured logging, stack integration: NetBox → Zabbix sync, unified dashboard, self-healing workflows.
GitOps, Hardening, and Automation
Oxidized config backup, GitOps pipeline, Batfish pre-change analysis, CI/CD hardening, topology as code, Netdisco discovery, NetBox reconciliation, AWX workflows, Ansible EDA.
NETWORKING
AUTOMATION
OBSERVABILITY
INFRASTRUCTURE