From Building Network Automation Solutions
At a Glance
- High-intensity interactive online course;
- Jump-start your network automation career;
- Hands-on experience working on a solution to your own problem;
- 9 module course spread across ~3 months;
- Live discussion and guest speaker sessions;
- Design and coding assignments and group work;
- Final course completion certificate.
Let’s start with some easy wins that require read-only access to network devices and no data model apart from inventory of devices.
We’ll gather device facts through SNMP and generate software version reports, continue with gathering IP addresses and generating list of subnets configured in our network, collect ARP and MAC tables to build a comprehensive list of hosts visible in your network, and conclude with a simple validation script that will report devices with outdated software version.
You will be able to get the job done with information-gathering modules available in standard Ansible distribution (starting with version 2.2), the daredevils will use NAPALM or other third-party Ansible libraries.
You’ll be able to choose among these hands-on assignments:
- Create a device health report (CPU utilization, memory utilization…);
- Collect hardware inventory
- Collect ARP tables and create a list of hosts in each subnet
- Collect CDP/LLDP, OSPF or BGP neighbors and build a network topology diagram (requires Graphviz or Gephi)
- Collect device IP addresses and create DNS zone files
The guest speakers in this module include:
Network automation is becoming more widely, if grudgingly accepted. However, this acceptance has not spread much beyond initial configuration, and there are genuine reasons why automation isn't easy to adopt. With ideas such as BGP unnumbered, the domain of network configuration can be significantly simplified. But what about the life of a network operator after the initial configuration ? How do we automate validation and troubleshooting ?
Dinesh Dutt, the guest speaker in September 2017 course, explained why we need new tools to supplant existing network troubleshooting tools, and described the new technologies and tools being developed. He concluded his presentation with a deep dive into NetQ, the tool Dinesh had been working on for over a year.
Scott Lowe started his transition from an infrastructure engineer focused on storage and virtualization into full-stack engineer familiar with open-source software in 2012. He started by exploring the intricacies of Git and GitHub and continued the journey by researching the capabilities of Open vSwitch, LibVirt, etcd,Terraform, Vagrant/VirtualBox, Docker and Ansible.
In spring 2017 course he focused on lessons learned while using Git/GitHub. We also spent a significant amount of time talking about his journey toward becoming an open-source-aware full-stack engineer.
The study materials for this module will help you create network automation solutions using read-only access to network devices. They assume you already mastered Ansible. I would recommend you use self-paced guidance to track your progress.
The very minimum you'll need to solve the hands-on exercises – in which you'll have to collect data from networking devices and generate reports – are these sections from Ansible for Networking Engineers online course:
- YAML and JSON (45 minutes) so you'll understand the format of Ansible playbooks
- Creating templates with Jinja2 (at least the easy parts - ~ 1 hour)
- Using Ansible (~ 1 hour)
- Ansible networking modules - executing commands (1 hour 30 minutes)
To get some hints on using Ansible playbooks to collect data from network devices and create summary reports watch the Creating Summary and Compliance Reports presentation from the January 2017 session and explore the sample Ansible playbooks.
Additional recommended materials
If you plan to generate reports in HTML format and are not familiar with HTML markup, it won't hurt to go through one of the online HTML tutorials.
You might also find these Software Gone Wild episodes interesting (each one is ~1 hour long):
- Schprokits with Jeremy Schulman, particularly the blast radius discussions;
- Toolsmith at Netflix with Elisa Jasinska
Recordings of live sessions
Git and GitHub (January 2017)
Creating Reports with Ansible (January 2017)
Compare Network State after a Change (September 2017)
- Defining the Problem and Selecting the Tools
- Quick and Dirty Solution
- Removing Time-Dependent Information
- Improvements and Answers to Questions
- Compare Network State (PDF)
Troubleshooting Networks with NetQ (September 2017)
- State of Data Center Troubleshooting
- Introducing NetQ
- Troubleshooting Networks with NetQ
- Customizing and Extending NetQ
- NetQ (PDF)