logo


your one source for IT & AV

Training Presentation Systems Services & Consulting Cloud Services Purchase Client Center Computer Museum
Arrow Course Schedule | Classroom Rentals | Student Information | Free Seminars | Client Feedback | Partners | Survey | Standby Discounts

Network Automation w/Python and Playbooks

SS Course: GK100605

Course Overview

TOP

No two networks are the same! Regardless, your network can be automated with a powerful combination of Python and Ansible across all major (and most minor) network vendors. Lessons and labs focus on using both Python and Ansible to interact with and configure your network devices. At the conclusion of this course, you will return to work empowered with skills necessary to automate network management! This class is a combination of live demonstrations and hands-on labs with virtual network devices and endpoints as targets for your configuration.

                                                                  

Scheduled Classes

TOP
09/30/24 - GVT - Virtual Classroom - Virtual Instructor-Led
12/16/24 - GVT - Virtual Classroom - Virtual Instructor-Led

Outline

TOP

Day 01
Python Basics Review

  • Overview of Python and Ansible
  • Python whitespace rules & best practices
  • Conditional expressions
  • Relational and Boolean operators
  • Lists, Tuples, Dictionaries
  • Indexing and slicing
  • Built-in functions
  • Writing custom functions
  • Getting at methods
  • Iterating with Loops (for and while)
  • Working with files
  • Software Control Management (SCM) (Git, Github, Bitbucket, Cloudshare, etc.)
  • Getting at RESTful interfaces with Python
  • Working with JSON
  • Python, Ansible and Paramiko
  • Using Paramiko to SSH with keys and passwords

Day 02
Python and Network Automation

  • RESTful API review
  • API keys
  • Paramiko Review
  • Using Paramiko to SFTP with keys and passwords
  • Introduction to Netmiko (automating routers and switches)
  • Using Netmiko to send commands to / from network devices
  • Working with YAML
  • Converting JSON to YAML with Python

Day 03
Basic Ansible Review

  • Ansible keywords
  • YAML and JSON for data exchange
  • Ansible and YAML
  • Ansible Playbook components
  • Tying together Python and Ansible Using Python within Ansible
  • Ansible Network Modules
  • What is new in Ansible (most current updates / release notes)
  • Network Agnostic modules
  • Writing network playbooks
  • Reviewing the construction of network playbooks
  • Writing Ansible playbooks that respond to network failures

Day 04
Blending Python and Ansible Skillsets

  • Review how to use Python within Ansible
  • Calling Python scripts with Ansible
  • Jinja2 Templating Engine for Python (and Ansible)
  • Using Templates in Ansible playbooks
  • Jinja2 filters, looping, and other useful tricks for automating with Ansible
  • Playbook tagging for selective runs
  • When to use Python and when to use Ansible
  • Big Picture options for using Python & Ansible within your Network
  • Ansible Roles
  • Extending Ansible to support Palo Alto (Optional - Case Study)
  • Extending Ansible to support Juniper vendor modules (Optional - Case Study)
  • Extending Ansible to support NAPALM (Optional - Case Study)

Day 05
Customizing Ansible with Python

  • Review Running Scripts with Ansible
  • Prompting for Ansible user input
  • Ansible Galaxy & Getting at Roles
  • Writing a custom Ansible Module with Python
  • Ansible Engine vs Ansible Tower marketing hype, capabilities, costs, etc.
  • Case Study: Automate your Enterprise Network
  • When to use Python and when to use Ansible
  • Writing your own Ansible modules in Python
  • Big Picture options for using Python & Ansible within your Network
  • Overview - NETCONF / YANG and what they mean for Python and Ansible
  • Molecule Testing your roles

    Prerequisites

    TOP
    • Recommended Prerequisite: Python Basics (5 days)
    • Coding experience in another language serves as an adequate prerequisite

      Who Should Attend

      TOP
      • Network Administrators
      • Playbook devs / architects
      • Python devs
      • Administrators interested in Automation
      • Individuals interested in devops, specifically for networking