Network Automation with Python

In this 5-day bootcamp you will learn the main components and tools required to test, configure and observe your network using Python. This includes:

  • REST APIs (API)
  • YAML, and JSON (data formats)
  • Git (version control)
  • Python (Object Oriented Programming)
  • Netmiko, Scrapli, NAPALM (network tooling)
  • Batfish, SuzieQ, Pytest and pyATS (network testing)
  • Jinja2, Schema Validation (config generation)
  • Nornir, Ansible (config management)
  • CI/CD (automated workflow/processes)

By the end of this course, you will be able to:

  • Automate the backup of your network device configurations.
  • Version control your network configuration.
  • Generate device configuration using templates.
  • Automate the validation of your network configuration before deploying it to the network.
  • Automate the deployment of your network configuration to the network.
  • Test your network to ensure it is running as expected.
  • Generate reports to show the status of your network.
  • Automate your network automation workflow/process using CI/CD.

In this course, we will cover:

Introduction

  • Introduction to network automation
  • The network automation landscape
  • The BIG picture!

APIs

  • Introduction to APIs
  • HTTP methods
  • HTTP verbs
  • REST APIs

Data Formats

  • Introduction to data formats
  • YAML
  • JSON

Python

  • Introduction to Python
  • Modules and packages
  • Installing packages
  • Virtual environments
  • Python data types
  • Conditional statements
  • Looping/iteration
  • Functions
  • Classes
  • Pandas DataFrames
  • Useful libraries (rich, ipaddr, requests)

Python Tools

  • Netmiko
    • Introduction to Netmiko
    • Getting config
    • Sending config
    • Parsing (TTP, Genie, TextFSM)
  • Scrapli
    • Introduction to Scrapli
    • Scrapli vs Netmiko
    • Getting config
    • Sending config
    • Parsing (TTP, Genie, TextFSM)
    • Scrapli Cfg
  • NAPALM
    • Introduction to NAPALM
    • NAPALM vs Scrapli/Netmiko
    • Getters
    • Other methods
    • Config operations (merging/replacing config)

Git

  • Introduction to Git
  • Main components
  • Git workflow
  • Git branches
  • Git push and pull
  • Pull Requests

Network Testing

  • pyATS
    • Introduction to pyATS
    • Testbeds
    • CLI vs Python interaction
    • Genie (Parse, Learn, Diff)
    • AETest and EasyPy
  • Batfish
    • Introduction to Batfish
    • Deployment
    • Snapshots
    • Configuration analysis
    • Control-plane analysis
    • Flow analysis
  • SuzieQ
    • Introduction to SuzieQ
    • SuzieQ vs Batfish
    • Deployment
    • Interaction methods
    • Inventory and namespaces
    • Services and tables
    • Asserts
    • Time-based analysis
    • Summarizations
  • Pytest
    • Introduction to Pytest
    • Pytest vs pyATS
    • Fixtures (conftest and scoping)
    • Parametrization
    • Plugins (HTML, xdist)
    • Integrating with NAPALM

Config Generation

  • Jinja2
    • Introduction to Jinja2
    • Variables
    • Loops
    • Conditionals
    • Lists and dictionaries
    • Includes
    • White space control
    • Filters
  • Schema validation
    • Introduction to Schema validation
    • Cerberus Python library

Config Management

  • Nornir
    • Introduction to Nornir
    • Nornir setup (config, initialization)
    • Nornir inventory
    • Nornir inventory filtering (basic, advanced)
    • Nornir tasks
    • Nornir results
    • Nornir plugins
  • Ansible
    • Introduction to Ansible
    • Ansible vs Nornir
    • Ansible inventory
    • Ansible diff and check
    • Ansible loops
    • Ansible facts
    • Ansible handlers
    • Ansible and Jinja2
    • Ansible modules

CI/CD

  • Introduction to CI/CD
  • Introduction to GitHub Actions
  • Network CI/CD workflow
  • Configure network-based CI/CD

Further details:
  • Prerequisites:
    • Basic networking knowledge
  • Duration: 5 days
  • Price: £1800/$2195
  • Dates/times:
    • Feb 13th-17th ; 8-5pm EST (Mon-Fri)
  • Delivery: via remote instructor-led sessions
  • Whats Provided?
    • Pre-built multi-vendor lab
    • Hands-on tasks and exercises
    • 5 x mini-projects (post Bootcamp /w support)



What Our Previous Students Say ...


"... truly top notch. I would recommend this class to anyone who is looking to better understand how to piece together this universe of automation tooling in a way they'll actually be able to use afterwards."
- Jordan Villarreal (Technical Advocate, NetBox/NS1)

"Fastest path to get from zero to hero in network automation!
"Fantastic course, with an excellent instructor who is a clear subject matter expert in the field of network automation.