Cisco
Technology
Networking
Cisco Network Automation with Python (CNAP)

No two networks are the same! Learn to automate your Cisco network with a Python. Course can be taught across all major (and most minor) network vendors. Course demonstrations can be adapted to best-fit the customer’s network to ensure all lessons have maximum relevance.

About the course

Course Objectives:

Upon completion of this course, the student should be able to meet these overall objectives:

  • This course teaches students to utilize Python with the goal of automating Cisco networks. Students will have programmatic experience automating enterprise class networks by the conclusion of this course.
  • Class is a combination of lecture, demonstration, and hands-on labs. Students are invited to share their own relevant Python scripts with the instructor to ensure class subjects are as relevant as possible.
  • All notes and scripts will be made available to students by the end of each day via Webex Teams. Lab time will be given reinforce that day’s topics and demonstrations.
  • Class is appropriate for those interested in automation, specifically network automation in a Cisco environment.
Course content

Section 1: Critical Python Catchup & Review

  • Overview of Python
  • Python white space rules & best practices
  • Printing and more Printing
  • Date types and Variables
  • Packing and Unpacking Variables
  • f Strings
  • Conditional expressions
  • Relational and Boolean operators
  • Lists, Tuples, Dictionaries
  • Indexing and slicing
  • Built-in functions
  • Iterating with Loops (for and while)
  • Working with files
  • Software Control Management (SCM) (Git, Github, Bitbucket, Cloudshare, etc.)
  • Using Python to access Cisco REST interfaces
  • Working with JSON

 

Section 2: Python and Cisco Network Automation

  • Python, Ansible and Paramiko
  • Using Paramiko to SSH with keys and passwords and Cisco IOS devices
  • RESTful API review
  • API keys
  • Paramiko Review
  • Using Paramiko to SFTP with keys and passwords
  • Introduction to Netmiko (automating Cisco routers and switches)
  • Using Netmiko to send commands to / from Cisco network devices

Lab Outline:

Labs are designed to assure learners a whole practical experience, through the following practical activities:

  • Lab 1: Build your 1st Python Script
  • Lab 2: More Python
  • Lab 3: Strings in Python       
  • Lab 4: Using argv
  • Lab 5: Lists and Dictionaries
  • Lab 6: Loops and if-else
  • Lab 7: Defining a Function
  • Lab 8: Using Python Scripting with Cisco SDWAN
  • Lab 9: Telnetlib and Cisco IOS-XE Devices (Optional)     
  • Lab 10: Paramiko and Cisco IOS-XE Devices
  • Lab 11: Netmiko and Cisco IOS-XE Devices        
Who Should Attend

The primary audience for this course is as follows:

  • Network Administrators
  • Python devs
  • Administrators interested in Automation
  • Individuals interested in devops, specifically for networking