Live Chat
Monday - Friday 8am - 6pm EST Chat Now
Contact Us
Monday - Friday 8am - 8pm EST 1-800-268-7737 Other Contact Options
Checkout

Cart () Loading...

    • Quantity:
    • Delivery:
    • Dates:
    • Location:

    $

Introduction to Network Automation with Python and Ansible

New – Learn how to use Network Automation with Python and Ansible.

GK# 5896

Course Overview

TOP

This course is designed for networking professionals, already proficient with their craft, who are seeking to develop skills in network automation. Python serves as a general-purpose tool that can do just about anything, at the cost of writing code. Since Python is so popular, much code is already written and often just needs to be tweaked to solve complex projects that would be too costly to write from scratch. Therefore, skills to find already-written code and tweaking it is an important part of this course. Ansible is also part of this course because Ansible specifically focuses on automation of systems and networking deployment. Using Ansible to handle the bulk of network automation usually makes sense, while using Python to fill in the cracks.

Schedule

TOP
  • Delivery Format:
  • Date:
  • Location:
  • Access Period:

$

What You'll Learn

TOP
  • Develop a practical SDN test environment and develop essential skills
  • Python Fundamentals
  • Python Environments and Projects
  • Ansible

Below is detailed information regarding what you will learn in this class:

What You'll Learn

Day 1 – Establish just enough knowledge of SDN, network function virtualization, and the testing environment to clearly understand “why we are doing this”.  Rudimentary programming skills will be required by networking staff and it is essential that they understand the SDN and NFV environment they will enter. Everything demonstrated in this section will be based on Python and students will deploy systems, learning how it all fits together in a test environment.

Develop a practical SDN test environment and develop essential skills

  • Mininet environment for network testing
  • Test essential network function virtualization Linux kernel components and services
  • Network Namespace, veth, tap, linux bridge
  • Open vswitch (OVS) essentials
  • RYU pre-configured controller
  • Deploy a test SDN controller with pre-written code. (You will write and deploy your own code later.)

Day 2 – Learn Python essentials using 100% networking-oriented practical examples. It is much easier to learn programming when networking professionals write code that solves networking problems. When students write code to solve clearly understood problems, learning is focused on writing Python, not trying to understand the problem. Therefore, all labs will use programming examples to solve networking problems.

Python Fundamentals - The hands-on labs in this section will be based on Python scripts that students will write and deploy. All code will be networking-relevant.

  • Conditionals
  • Loops
  • Functions
  • Data Types and Variables
  • Scopes and Namespaces
  • Classes and Objects
  • Methods, decorators, etc…

LAB: CiscoConfParse

  • https://pypi.python.org/pypi/ciscoconfparse/ - Use Python to edit a cisco config
  • http://pennington.net/tutorial/ciscoconfparse/ccp_tutorial.html#/1

Day 3 – A continuation of Day 2 with more complex programming examples and labs.

Exception Handling

Regular Expressions

Serialization of data

  • Files
  • YAML
  • JSON
  • XML

NETCONF

http://jedelman.com/home/netconf-and-the-ncclient/

Day 4 – There are key support systems in the Python environment, that when clearly understood, increase a Python programmers speed and efficiency by a magnitude. The material in this section is only comprehensible if the students understand Python code-writing basics, which is why this material follows Python code-writing essentials lessons.

Python Environments and Projects

  • Modules and Packages
  • pip
  • git
  • virtualenv
  • anaconda

Labs: Write Python to deploy an increasingly powerful SDN controller

  • Existing L2 stuff goes here
  • Python to restful Interface
  • Insomnia
  • Python requests

Day 5 – Ansible is growing in popularity for good reason, it is both easy to understand, far simpler than Python, and extremely powerful.  While Python can be used to do just about anything, Ansible is used to bring structure and consistency to system deployments, implementations, and changes. Students tempted to write a complex Python script to do some networking automation task will discover that problem is already solved by an Ansible module.   Lots of unnecessary Python scripts can be eliminated by using Ansible whenever possible.

Ansible

  • Overview
  • Ansible Inventory
  • Ad hoc commands
  • Playbook
  • Ansible Config Templating
  • Ansible Networking Modules http://docs.ansible.com/ansible/list_of_network_modules.html
  • Ansible and NAPALM (optional)
  • Labs will use Ansible to Configure an OpenStack Cloud
  • Configuration Templating for Cloud Deployments
  • Workflow for Greenfield Network Device Provisioning

Who Should Attend

TOP

Networking professionals who are seeking skills in network automation.

Course Delivery
Request this course in a different delivery format.
Enroll