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