Getting Started



Foundation "Stuff"



Python


Linux

/

bash

fundamentals

git


REST APIs

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CLI Based Interactions



• Python + Netmiko - Configuration Based use cases
• Genie CLI - Operation based use cases
• Paramiko - NOT RECOMMENDED - just use Netmiko

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Network Automation Frameworks/Abstractions



• Ansible "Domain Specific Language (DSL)" - Configuration Use Cases
• NAPALM + Python - Configuration Use Cases
• Nornir + Python - Configuration Use Cases

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Network Verification



• pyATS/Genie + Python - Operational / Testing Use Cases
◇ For every BGP neighbor, ensure prefixes being learned
◇ For every "up interface", ensure no CRC errors
◇ "Profile" before change, Change, "Profile" after, DIFF

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Other Skills/Questions



1. How to schedule "stuff"
• Run a Python script every hour - cron utility on Linux/Unix/macOS
• Orchestration/Integration Tools - (CICD Tools) - Jenkins, Drone, Gitlab
◇ "Event Driven"
• Central Management Servers - Ansible Tower

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Real World Use Cases



• Scale
• Performance
• Transactions/Error Recovery
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

References



Network Programmability Basics
Programming Fundamentals
Ansible Learning Labs

Index