Detailed Course Outline
Automation & NetOps foundations
Network automation foundations
- Introduction to network automation
- Approaches to network automation
- History of network automation
Core principles of network automation
- Software development and network automation
- Network automation concepts and practices
Automation tools
Automation tools overview
- Automation tools and data formats
- Programmability IDEs overview
VS Code development environment
- Introduction to Visual Studio Code
- VS Code themes, fonts and icons
- Customizing VS Code layout
- VS Code extensions
- VS Code debugger
- Reviewing VS Code
- LAB – Explore VS Code IDE
Git version control
- Understanding Git version control
- Git demo
- GitHub demo
- LAB – Working with Git
- LAB – Collaborate using GitHub
Python fundamentals
- Why Python matters for network automation
- Understanding Python variables
- Advanced Python concepts
- Working with Python variables, lists and dictionaries
- Introduction to Python and eAPI
- Getting information from EOS devices
- Parsing CLI output with Python
- Parsing JSON with python
- LAB – Python fundamentals
- LAB – Understanding structured data
Understanding APIs
Application programmatic interfaces - APIs
- APIs in network automation
- The history of HTTP and its role in networking
- Understanding HTTP messages
- HTTP authentication
Securing APIs with PKI
- TLS and SSL overview
- TLK certificates and trust chains
- Why use certificates in network automation
- Creating and installing TLS certificates
- Client TLS certificates for API authentication
Using REST API clients
- Introduction to EchoAPI
- REST API client requests and responses
- HTTP Auth with REST API client
- Organizing requests in REST API clients
- REST API client scripts
- LAB – Using REST API clients
Ansible fundamentals
Getting started with Ansible
- Introduction to Ansible
- Ansible use cases
Building automation with Ansible
- Understanding Ansible files
- Working with Ansible variables
- Ansible variables demo
- Using Ansible debug
- Ansible debug demo
- LAB – Ansible fundamentals
CloudVision fundamentals
CloudVision overview
- Introduction to CloudVision
- CloudVision deployment
- CloudVision and device communication
CloudVision high availability
- CloudVision cluster redundancy
- CloudVision dual cluster deployment
- CloudVision backups
CloudVision portal setup and operations
- CloudVision multi-node OVA installation demo
- Upgrading CloudVision demo
- CloudVision backup and restore demo
- Getting familiar with CloudVision interface demo
- LAB – Navigating CloudVision
CloudVision network provisioning
- CloudVision device management overview
- Legacy provisioning overview and demo
- MLAG configuration demo
- CloudVision snapshots
- LAB – Configlets
- LAB - Snapshots
Change control
- CloudVision change control overview
- Change control demo
- LAB – Change control
Automated device onboarding in CloudVision
- Zero touch provisioning and replacement
- ZTP demo – deploying vEOS to CloudVision
- ZTR demo – replacing a device in CloudVision
CloudVision Studios
- Configuration management with Studios
- CloudVision tags
- Inventory and topology Studio overview
- Inventory and topology Studio demo
- Interface configuration and Studio demo
- Date and time Studio overview
- Date and time Studio demo
- Postcard telemetry Studio overview
- Mirroring Studio overview
- Authentication Studio overview
- Authentication Studio demo
- Management connectivity Studio demo
- LAB – Using Studios
- LAB – Clean up Studios
Working with static config Studios
- Static configuration Studio overview
- Adding devices to CloudVision Studios inventory
- Using static configuration Studio
- Migrating legacy configlets to Studios
- LAB – Static configuration Studio
Software management with CloudVision
- Software management overview
- Software image management demo
CloudVision telemetry
- Modern network telemetry with CloudVision
- Telemetry use cases in CloudVision
- Compliance overview
CloudVision monitoring overview
- CloudVision dashboards
- CloudVision events
- CloudVision topology overview
- Topology icons and settings
- CloudVision topology tags
AQL and NetSQL
- Querying NetDB and NetSQL
- Querying ARP entries using AQL notebook and dashboards
- Querying BGP sessions using AQL notebook and dashboards
- Querying device state and software versions using NetSQL
- LAB – Dashboards and events
- LAB - Topology
Using Ansible and Jinja
Network automation with Jinja
- Introduction to Jinja
- Jinja file layout
- Jinja variable files
- Building and organizing data models
- Building and applying configurations with Ansible and CloudVision
Building and deploying configurations with Jinja
- Why Jinja – manual configuration challenges
- Setting up Jinja and building your first template in Ansible
- Building the Jinja data model and generating underlay contigs
- Upload and deploy Jinja configs through CloudVision
- Deploying configs directly with eAPI and Jinja
- Deploying Jinja templates via CloudVision configlets
- LAB – Automating configuration with Ansible and Jinja