Network Automation with Python - Bootcamp
This 4-day instructor-led course provides in-depth hands-on training on using Python to test, configure and observe your network. This includes:
- Netmiko, Scrapli, NAPALM (network tooling)
- Batfish, SuzieQ, Pytest and pyATS (network testing)
- Jinja2, Schema Validation (config generation)
- Nornir, Ansible (config management)
- Git (version control)
- 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
- Network automation principles
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)
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 and Jinja2
- Ansible modules
Git
- Introduction to Git
- Main components
- Git workflow
- Git branches
- Git push and pull
- Pull Requests
CI/CD
- Introduction to CI/CD
- Introduction to GitHub Actions
- Network CI/CD workflow
- How to configure a network-based CI/CD
Further details:
- Prerequisites:
- Basic networking knowledge
- Basic Python knowledge
- Duration: 4 days
- Price: £1,808/$2,260
- Dates/times:
- TBC
- Delivery: Remote instructor-led sessions
- Whats Provided?
- Code example repository from the course
- Five mini-projects
- One month of support for mini-projects
- Ready-to-use multi-vendor laboratory
- Practical tasks and activities
- Session slides