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, JSON, Pandas DataFrames (data structures)
  • Git (version control)
  • Python (Object Oriented Programming)
  • Netmiko, Scrapli, NAPALM (network tooling)
  • Batfish, SuzieQ, Pytest and pyATS (network testing)
  • Jinja2, Cerberus (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 Structures
  • Introduction to data structures
  • YAML
  • JSON
  • Pandas DataFrames
Python
  • Introduction to Python
  • Modules and packages
  • Installing packages
  • Virtual environments
  • Python data types
  • Conditional statements
  • Looping/iteration
  • Functions
  • Classes
  • Useful libraries (ipaddr, requests)
  • What else? (best practices, linting and formatting)
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
    • Loading config
    • Merging config
    • 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, Conf)
    • 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 (yield fixtures, conftest, scoping)
    • Parametrization
    • Plugins (HTML, xdist)
Config Generation
  • Jinja2
    • Introduction to Jinja2
    • Variables
    • Loops
    • Conditionals
    • Lists and dictionaries
    • Includes
  • 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: None, though basic networking knowledge a plus
  • Duration: 5 days
  • Price: £1800
  • Dates/times:
    • (EU session) 27th June - 1st July (UK time zone)
    • (US session) register interest here
  • Delivery: via remote instructor-led sessions
  • Lab:
    • Hands-on pre-built multi-vendor lab provided
    • Tasks and exercises provided
  • Note: Minimum numbers apply


Want to Learn Network Automation?
Join our membership and get access to:
  • Full deep-dive course library (inc. Batfish, pyATS, Netmiko)
  • Code repositories inc. full course code, scripts and examples
  • 24x7 multi-vendor labs (Arista, Cisco, Juniper)
  • Private online community
  • Tech demos and sessions

Join Now ➜