I recently had the opportunity to develop and deliver a three day class for the World Wide Technology Cisco ACI (Application Centric Infrastructure) Professional Services deployment engineers on automation and programmability of an ACI fabric. These engineers are experienced and senior data center networking engineers who, during their 10 weeks of training, were immersed in all aspects of ACI configuration and troubleshooting.
It might surprise you, but for this class, I did not teach the engineers Python.
The class was a series of lectures and labs that included such topics as:
Markup Language Tutorial for #netdevops, Fundamentals of REST API, Introduction to using Chrome Postman with Cisco ACI, APIC GUI / XML Lab – Exercise on saving, modifying and posting configurations via XML and GUI, Ansible Playbook - Develop a playbook to gather facts and configure the fabric via Ansible, Ansible Tower Demonstration, Creating ACI configuration templates with Jinja2, Using Ansible to automate vSphere / vCenter, Introduction to Git for Network Engineers, Using Git and Ansible Roles.
By using the Ansible ACI modules I’ve written, these engineers can automate the provisioning of an ACI fabric without the need to code. While it is helpful to understand some programming basics, the key concepts are an understanding of markup languages (YAML and XML), the fundamentals of REST, a basic knowledge of Ansible, structuring playbooks into roles and using Git for version control and sharing configuration templates across the team.
While this training was centered on ACI, a major portion of the class would apply to automation of other data center network components as well as applicability to automation of Nexus Open NX-OS.
The key takeaways from this class, from the instructors perspective, is creating the necessary Jinja templates is the most tedious and time consuming part of this automation effort. Until we have Ansible modules written to abstract each configuration task, or documentation delivered as templates and an associated YAML variable file, the library of roles being created by these engineers are invaluable to increase the speed of deployment of an ACI fabric.
While these hurdles need to be overcome, we have made real progress in abstracting the complexity of deploying data center fabrics and I am extremely pleased of how capable these engineers have become in automating the deployment of ACI fabrics for our customers.