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, 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 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
    • 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
    • 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 (launch price)
    Note: After November all future bootcamps will be priced at: £2100/$2500.
  • Dates/times:
    • (EU session) 10th-14th October
    • (US session) 14th-18th November
  • Delivery: via remote instructor-led sessions
  • Whats Provided?
    • Pre-built multi-vendor lab
    • Hands-on tasks and exercises
    • 1 x month Slack support
    • 5 x post Bootcamp mini-projects
    • Access to all the recordings from the sessions
    • Session slides
    • Life-time access (with updates) to the code repo.
  • Note: Maximum 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 ➜