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;
- 6 week course spread across ~2 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 2.2 distribution, 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
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, will explain why we need new tools to supplant existing network troubleshooting tools, and describe the new technologies and tools being developed. Finally, we'll delve deep into NetQ, the tool Dinesh has been working on.
Previous guest speakers
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.
To solve the hands-on exercises you'll have to collect data from networking devices and generate reports. You'll get the information needed to get the job done in these sections of the 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.
If you'd like to have a guided tour of the self-study materials, start the self-paced module.
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
Recording of the January 2017 session
Git and GitHub
Creating Reports with Ansible