Case study

ACI configuration as code with Ansible, Git and Jenkins

Replacing hand-built ACI tenant changes with Ansible playbooks, YAML/JSON templates and a Jenkins pipeline with automatic pre-checks and post-checks across several fabrics.

The challenge

Tenant changes on the ACI fabrics – VRFs, bridge domains, EPGs, contracts, L3Outs – were made by hand in the GUI. The same change could look slightly different on each fabric, reviews were hard, and small typos caused incidents.

What I did

  • Built Ansible playbooks for ACI fabric and tenant configuration.
  • Defined VRFs, bridge domains, EPGs, contracts and L3Outs as YAML/JSON templates kept in Git, so every change is a reviewed commit.
  • Integrated the playbooks with Jenkins: pre-validation, automated deployment and post-checks for every change.
  • Added Python and Bash tooling for health checks, configuration backups and port status monitoring.

Outcome

  • Consistent, error-free tenant deployments across multiple ACI fabrics.
  • Every change peer-reviewed in Git with a full history of who changed what and why.
  • Less manual effort per change and fewer change-related incidents.

Project facts

Organisation
VOIS (Vodafone)
My role
Senior Network Manager – Data Center
Period
2023 – 2025
Environment
Cisco ACI, Ansible, YAML/JSON, Git, Jenkins, Python
Scale
Multiple ACI fabrics across four data centers

Hiring for a similar challenge?

I am open to Network Architect roles. Let’s talk about your network.