We may earn an affiliate commission when you visit our partners.
Course image
Andrei Dumitrescu and Crystal Mind Academy

This Network Automation with Python course also covers every major general Python Programming topic and is a perfect match for both beginners and experienced developers.

Read more

This Network Automation with Python course also covers every major general Python Programming topic and is a perfect match for both beginners and experienced developers.

Welcome to this Python hands-on course for learning Network Automation and Programmability with Python in a Cisco or Multivendor Environment, taught by a DevOps Engineer and Professional Trainer.

Boost your Python Network Programming Skills by learning one of the hottest topics in the Networking Industry in 2024 and become one of the best Network Engineers.

This course is based on Python 3 and doesn't require prior Python Programming knowledge. Everything is included in the course and you'll also learn in-depth general Python Programming.

Just starting with Python Programming, Network Automation, or Network Programming using Python and have the desire to learn the future of Network Programmability in a practical way? Perfect. Then, this course is the right one for you. You'll boost your career with hands-on Network Programming Skills.

Or maybe you've already tried to learn Network Automation with Python by yourself and now you want to put all pieces together? I'm here to help you, this course has everything you need to know to automate network configurations with Python.

Most examples in this course are for Cisco IOS, but they can also be used in a multivendor environment (Juniper, Arista, HP, Linux) with no or little changes. This is a vendor-neutral course and teaches you Python from scratch.

You'll have lifetime access and you can return and look for a specific Python library or example anytime you want. And let's not forget, if you don't like the course, you are covered by a 30-day money-back guarantee, full refund, no questions asked.

You'll have access to all Slides and Python Scripts (ready to be used) from this course.

It's high-quality Python Programming in the area of network automation and the instructor is really experienced. Thank you. " by Joseph Heinrich

"Wow. This is an amazing course on network automation and Python. It goes directly to the point. The Netmiko section is the best. I'm just waiting to test this at my work. Thank you. " by D. Schmidt

"This is without doubt the best course on Network Automation with Python out there. " by Muhammad Ali

There are many courses on Python Programming and Network Automation or Network Programming with Python. Why should you learn from me?

  • I'm a Practitioner and an Enthusiast. Welcome to the real world. I have almost 20 years of experience as a Network Engineer and Programmer. Since I started with Networking, Linux Systems, and Programming, I've been using or studying technology almost on a daily basis. I also have a bunch of Cisco certifications: CCNP Routing & Switching, CCNP Security, CCNP Service Provider, Cisco Certified Instructor, etc

  • I'm an Educator and I know how to make a Syllabus. For the last 10 years, I've trained thousands of people on Linux, Networking, Security, Ethical Hacking, or Programming.

  • You'll learn not only Network Automation but also general Python Programming. After this course, you'll MASTER all the Python 3 key concepts.

The topics covered in this Python Network Programming course are:

  • Working with Files in Python (text, csv, json, yaml)

  • Data Serialization and Deserialization (Pickle and JSON)

  • Bytes and String Objects in Python 3. Encoding, Decoding

  • Advanced Python Concepts: Multiprocessing and Multithreading with real-life examples

  • The standard Telnet Python Library. How to create your own Class based on telnetlib to simply the configuration automation

  • Paramiko Library. How to use SSH to automate the configuration of Cisco, Linux, or other Devices

  • How to create your own Python module based on Paramiko to simplify the development work

  • Netmiko. Automate the configuration of Cisco, Arista, and Linux using Netmiko

  • Netmiko best practices and real-life examples for backup configuration of multiple devices

  • Building Concurrent Applications using Async IO (async/await, aiohttp, aiofiles, asyncssh)

  • The NAPALM Library - Network Automation and Programmability Abstraction Layer with Multivendor support

  • How to use NAPALM to retrieve information about devices and protocols and manage the devices’ configuration

  • What is Ansible and what are its components: Modules, Tasks, Plays, Playbooks, etc

  • How to execute Ad-Hoc commands against networking devices and servers using Ansible

  • Ansible modules: command, shell, raw, copy, file, apt, service, ios_command, ios_config etc

  • How to use create and run Ansible Playbooks against Networking Devices (Cisco, Arista, etc) and Linux Servers

  • Ansible Vault

  • Automation of networking device configuration through a serial connection. Pyserial Python module

  • Improvement of the pyserial module

  • How to set up the Python Development Environment: PyCharm, GNS3, Cisco IOS, Arista vEOS, Juniper vSRX

  • Arista vEOS installation in GNS3 and basic configuration

  • Juniper vSRX installation in GNS3 and basic configuration

The topics covered in the General Python Programming sections are:

  • Variables

  • Operators

  • Built-in Types

  • Strings in Python

  • Lists in Python

  • Tuples in Python

  • Sets and Frozensets in Python

  • Dictionaries in Python

  • Flow Control

  • User-defined Functions

  • Errors and Exception Handling

  • OOP (Object Oriented Programming)

Every topic includes many live examples in Python. This course will show you the best practices for developing production-ready Python Networking Automation scripts for Cisco and multi-vendor environments.

Enroll now

What's inside

Learning objectives

  • You will master all the python 3 key concepts starting from scratch. no prior python or programming knowledge is required.
  • Learn how to automate the configuration of networking devices with python 3 in a multi-vendor environment.
  • Learn network programmability with python, gns3 and ansible.
  • Learn and apply advanced python concepts like multiprocessing and threading in network automation.
  • See real-world examples of automation scripts with python for cisco ios, arista eos or linux.
  • Understand how to use telnet and ssh with python for network automation.
  • Learn how to use and improve paramiko and netmiko for the automation of common administration tasks with python.
  • Automate and troubleshoot network configurations with ansible.
  • You will be able to use ansible, manage ansible inventory files, tasks, modules for linux and networking devices, playbooks, vaults and yaml files.
  • Use napalm python library in a multi-vendor environment.
  • Learn how to configure networking devices with python using a serial console connection.
  • Improve the existing python modules and create your own modules for network automation.
  • You will ultimately gain real-life skills for a good network or devops engineer.
  • You will learn general python programming in depth.
  • Show more
  • Show less

Syllabus

Course Introduction
Why Network Automation with Python? Why Now?
IMPORTANT. Please read!
Quick inside. Course Overview
Read more
IMPORTANT FOR BEGINNERS: How to Learn Python Programming
Join Our Online Community!
Getting Course Resources
Quiz for Basic Python Programming
Setup the Environment: Python, PyCharm, GNS3, Cisco IOU and IOS
A Quick Note
Download and Install the Required Software
Python Installation
Installing Python 3 on Windows
Installing Python 3 on Linux and Mac
Installing PyCharm IDE on Windows
Installing PyCharm IDE on Linux and Mac
Running Python Scripts using PyCharm
Running Python Scripts using the Command Line
Where do I get Cisco IOS, Juniper vSRX or Arista vEOS Images
Just a few Words about Windows Installation
Installing GNS3 on Windows 10
Running Cisco IOU Images in GNS3 on Windows 10
Connecting to Cisco IOU Images Running in GNS3 from Window 10
Installing GNS3 and Running Cisco IOU on Linux
What if it still doesn't work? This is the solution!
Intro to GitHub Copilot
GitHub Copilot: A Powerful Tool for Experienced Coders
Setting Up GitHub Copilot in PyCharm
Working with Text Files in Python
Intro
Opening and Reading Files
Absolute and Relative Paths
Reading Files: Tell, Seek and Cursors
The with Statement
Reading Files into a List
Writing to Text Files
Project: File Processing
Quiz for File Processing
Reading CSV Files
Writing CSV Files
Using CSV Custom Delimiters
Using CSV Dialects
Coding Section - Working with CSV Files
Assignment: File Processing
Assignment Answer 1: File Processing
Assignment Answer 2 (CSV Module): File Processing
Hands-On Challenges - Working With Files
Hands-On Challenges - Working With Text Files
Hands-On Challenges - Working With CSV Files
Data Serialization and Deserialization in Python (Pickle and JSON)
Intro to Data Serialization
Pickle Data Serialization and Deserialization
Coding - Pickle
JSON Data Serialization
JSON Data Deserialization
Coding - JSON
Assignment: JSON and Requests/REST API
Assignment Answer: JSON and Requests/REST API
Coding Challenge: Simplify Serialization
Coding Challenge Solution: Simplify Serialization
Coding Challenge - JSON and Requests/REST API
Coding Challenge Solution - JSON and Requests/REST API
Test Your Knowledge: Data Serialization (JSON & Pickle)
Network Automation with Paramiko (SSH)
The Lab Environment
Intro to Paramiko
Extra: Enable SSH on Cisco Devices
Connecting to Networking Devices using Paramiko
Using **kwargs and Arguments Unpacking
Running Commands on Cisco Devices
Securing the Passwords Using getpass
Automating the Configuration (OSPF) of Multiple Cisco Routers
Running Commands on Linux - Method 1
Running Commands on Linux as a Non-privileged User - Method 2
Running Commands on Linux as root - Method 2
Paramiko Refactoring. Creating myparamiko Module
Running Commands Using myparamiko on Cisco IOS
Importing myparamiko Module
Backup the Configuration of a Single Cisco Device
Automating the Backup Configuration of Multiple Cisco Devices
Implementing Multithreading (Python and Paramiko)
Assignment: Interactive User Creation on Linux with Paramiko
Assignment Answer: Interactive User Creation on Linux with Paramiko
Quiz for Paramiko
Secure Copying Files with SCP and Paramiko from Python
Hands-On Challenges - Network Automation with Paramiko
Hands-On Challenges - Paramiko
Network Automation with Netmiko (SSH)
Intro to Netmiko. Netmiko vs. Paramiko
Connecting and Running a Command on a Networking Devices
Netmiko Prompt. Enable & Global Config Mode
Running Multiple Commands on a Networking Device
Configuring a Networking Device from a File
Configuring Multiple Networking Devices from Multiple Files
Automating the Backup of Multiple Cisco Devices Using Netmiko
Netmiko Without Multithreading
Implementing Multithreading (Python and Netmiko
Netmiko and Linux
Troubleshooting Netmiko

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Focuses on network automation with Python, which is standard in IT industry
Introduces Python from scratch and thus beginner-friendly
Covers advanced Python concepts like multiprocessing and threading
Provides real-world examples of automation scripts for Cisco IOS, Arista EOS, and Linux
Teaches how to use Telnet and SSH with Python for network automation
Covers popular Python libraries like Paramiko, Netmiko, and NAPALM

Save this course

Save Master Network Automation with Python for Network Engineers to your list so you can find it easily later:
Save

Reviews summary

Very positive course on python for network automation

Learners say this course is outstanding for anyone who wants to learn how to use Python for network automation. Pros: - Engaging and hands-on assignments, including exercises and labs - Well-structured with clear objectives and deadlines - Instructors engage quickly and are knowledgeable - Certificate offered upon completion
Instructors are passionate and dedicated.
Course materials are helpful and make this a great learning experience.
"If you want to learn network automation and this might be the best course available for you."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Master Network Automation with Python for Network Engineers with these activities:
Review Python Programming Basics
Help you strengthen your understanding of the fundamentals of Python programming.
Browse courses on Python
Show steps
  • Review online tutorials or resources on Python basics
  • Practice writing simple Python programs
  • Review Python syntax and data structures
Review Computer Networking: A Top-Down Approach
Help you understand computer networking concepts. Provides network protocol detail.
Show steps
  • Read Introduction and Chapters 1-4
  • Do practice exercises for chapters 1-4
Network Security Fundamentals
Reviewing fundamentals will prepare you to better understand new material.
Browse courses on network security
Show steps
  • Review network security concepts
  • Identify common network security threats
  • Understand the principles of network security design
Eight other activities
Expand to see all activities and additional details
Show all 11 activities
Practice Python Programming Problems
Help you strengthen your Python programming skills and prepare for coding challenges in the course.
Browse courses on Python Programming
Show steps
  • Find a list of Python programming problems
  • Attempt to solve 5-10 problems
  • Review the solutions to the problems
GNS3 Tutorial
Following tutorials will increase your proficiency in the tools used in this course.
Browse courses on Network Simulation
Show steps
  • Install and configure GNS3
  • Create and configure virtual networks in GNS3
  • Use GNS3 to simulate and troubleshoot network configurations
Volunteer as a Technical Support Agent for a Non-Profit
Help you gain real-world experience in troubleshooting and resolving network issues in a hands-on environment.
Browse courses on Network Automation
Show steps
  • Find a non-profit organization that needs technical support
  • Offer your services as a volunteer technical support agent
  • Provide remote or on-site technical support to clients
Python Coding Challenges
Practice coding challenges will improve your skills in Python, the main programming language in this course.
Browse courses on Python Programming
Show steps
  • Solve Python coding problems on websites like LeetCode and HackerRank
  • Implement Python scripts to automate simple network tasks
Build a Python Script to Execute Commands on Network Devices
Help you understand how to use Paramiko in Python for network automation.
Browse courses on Network Automation
Show steps
  • Find a tutorial to build a Python Script to Execute Commands on Network Devices
  • Follow the tutorial and build the script
  • Test the script by executing it on a network device
Attend a Meetup on Network Automation
Help you connect with other professionals in the field and learn about the latest trends in network automation.
Browse courses on Network Automation
Show steps
  • Find a Meetup on Network Automation in your area
  • Attend the Meetup and participate in discussions
  • Connect with other attendees and exchange ideas
Create a Python Script to Automate Network Configuration
Help you apply the concepts of network automation and Python programming to a practical project.
Browse courses on Network Automation
Show steps
  • Identify a network configuration task that can be automated
  • Design and develop a Python script to automate the task
  • Test and refine the script to ensure it runs successfully
Write a Blog Post on Python Network Programming
Help you synthesize your understanding of Python network programming and share your knowledge with others.
Browse courses on Python
Show steps
  • Choose a specific topic within Python network programming to focus on
  • Research the topic and gather relevant information
  • Write a blog post that explains the topic clearly and provides examples
  • Publish the blog post on a platform like Medium or LinkedIn

Career center

Learners who complete Master Network Automation with Python for Network Engineers will develop knowledge and skills that may be useful to these careers:
Network Engineer
A Network Engineer designs, implements, and maintains computer networks. They ensure that networks are running smoothly and efficiently, and they troubleshoot and resolve network problems. This course provides a comprehensive overview of Python Network Automation, covering essential topics like working with files, data serialization and deserialization, and using libraries like Netmiko and Paramiko. By mastering these skills, you'll gain a solid foundation to excel as a Network Engineer and effectively automate and manage complex network infrastructures.
DevOps Engineer
A DevOps Engineer is responsible for bridging the gap between development and operations teams. They work to streamline the software development lifecycle and improve collaboration between developers and operations staff. This course provides valuable knowledge for aspiring DevOps Engineers. It covers topics like network automation with Python, general Python programming, and using tools like Ansible and NAPALM. By gaining proficiency in these areas, you'll be well-equipped to automate infrastructure provisioning, configuration management, and deployment processes, enhancing your DevOps skillset.
Network Administrator
A Network Administrator is responsible for managing and maintaining computer networks. They ensure that networks are running smoothly and efficiently, and they troubleshoot and resolve network problems. This course is highly relevant for aspiring Network Administrators. It covers essential topics like network automation with Python, working with files, and using libraries like Netmiko and Paramiko. By mastering these skills, you'll gain the knowledge and practical experience to effectively manage and automate network configurations, making you a valuable asset in any IT team.
Software Engineer
A Software Engineer designs, develops, and maintains software applications. They work on all aspects of the software development lifecycle, from requirements gathering to testing and deployment. This course may be useful for aspiring Software Engineers who are interested in specializing in network automation. It provides a comprehensive overview of Python programming, including topics like data structures, algorithms, and object-oriented programming. By gaining proficiency in these areas, you'll build a solid foundation for developing and maintaining robust software solutions for network automation.
Data Analyst
A Data Analyst collects, analyzes, and interprets data to help businesses make informed decisions. They use their skills in statistics, programming, and data visualization to identify trends and patterns in data. This course may be of interest to aspiring Data Analysts who want to explore the application of Python in data analysis. It covers topics like working with files, data serialization and deserialization, and using Python libraries for data analysis. By gaining proficiency in these areas, you'll enhance your ability to extract valuable insights from data and contribute to data-driven decision-making.
IT Manager
An IT Manager is responsible for planning, implementing, and managing IT systems and services. They work with users to identify their needs and develop solutions that meet those needs. This course may be useful for aspiring IT Managers who want to deepen their understanding of network automation. It provides a comprehensive overview of Python Network Automation, covering topics like working with files, using libraries like Netmiko and Paramiko, and implementing multithreading. By gaining proficiency in these areas, you'll enhance your ability to manage and automate IT infrastructure, making you a valuable asset to any organization.
Systems Administrator
A Systems Administrator is responsible for maintaining and troubleshooting computer systems. They ensure that systems are running smoothly and efficiently, and they resolve any problems that may arise. This course may be useful for aspiring Systems Administrators who want to specialize in network automation. It provides a comprehensive overview of Python Network Automation, covering topics like working with files, using libraries like Netmiko and Paramiko, and implementing multithreading. By gaining proficiency in these areas, you'll enhance your ability to automate and manage complex systems, making you a valuable asset in any IT team.
Cloud Engineer
A Cloud Engineer designs, builds, and manages cloud computing systems. They work on all aspects of cloud computing, from infrastructure provisioning to application deployment. This course may be useful for aspiring Cloud Engineers who want to explore the application of Python in cloud automation. It provides a comprehensive overview of Python programming, including topics like data structures, algorithms, and object-oriented programming. By gaining proficiency in these areas, you'll build a solid foundation for developing and maintaining cloud-based solutions.
Cybersecurity Analyst
A Cybersecurity Analyst is responsible for protecting computer systems and networks from security threats. They work to identify, analyze, and mitigate security risks. This course may be of interest to aspiring Cybersecurity Analysts who want to explore the application of Python in cybersecurity. It covers topics like working with files, data serialization and deserialization, and using Python libraries for network security. By gaining proficiency in these areas, you'll enhance your ability to analyze security data, identify threats, and implement security measures.
Business Analyst
A Business Analyst works with businesses to identify their needs and develop solutions that meet those needs. They use their skills in analysis, problem-solving, and communication to help businesses improve their operations. This course may be useful for aspiring Business Analysts who want to explore the application of Python in data analysis and visualization. It covers topics like working with files, data serialization and deserialization, and using Python libraries for data analysis. By gaining proficiency in these areas, you'll enhance your ability to analyze data, identify trends, and communicate insights to stakeholders.
Project Manager
A Project Manager is responsible for planning, executing, and closing projects. They work with stakeholders to identify project goals, develop project plans, and track project progress. This course may be useful for aspiring Project Managers who want to enhance their understanding of project management methodologies and tools. It covers topics like project planning, risk management, and communication management. By gaining proficiency in these areas, you'll improve your ability to plan, execute, and manage projects effectively.
Information Security Analyst
An Information Security Analyst is responsible for protecting computer systems and networks from security threats. They work to identify, analyze, and mitigate security risks. This course may be of interest to aspiring Information Security Analysts who want to explore the application of Python in cybersecurity. It covers topics like working with files, data serialization and deserialization, and using Python libraries for network security. By gaining proficiency in these areas, you'll enhance your ability to analyze security data, identify threats, and implement security measures.
Database Administrator
A Database Administrator is responsible for managing and maintaining databases. They ensure that databases are running smoothly and efficiently, and they troubleshoot and resolve any problems that may arise. This course may be useful for aspiring Database Administrators who want to explore the application of Python in database management. It covers topics like working with files, data serialization and deserialization, and using Python libraries for database connectivity. By gaining proficiency in these areas, you'll enhance your ability to manage and maintain databases, making you a valuable asset in any IT team.
Technical Writer
A Technical Writer creates and maintains technical documentation. They work with engineers, developers, and other technical professionals to translate complex technical information into clear and concise language. This course may be useful for aspiring Technical Writers who want to explore the application of Python in technical writing. It covers topics like working with files, data serialization and deserialization, and using Python libraries for text processing. By gaining proficiency in these areas, you'll enhance your ability to create and maintain technical documentation, making you a valuable asset in any organization.
Quality Assurance Analyst
A Quality Assurance Analyst is responsible for testing and evaluating software products. They work to identify and fix bugs, and they ensure that software products meet quality standards. This course may be useful for aspiring Quality Assurance Analysts who want to explore the application of Python in software testing. It covers topics like working with files, data serialization and deserialization, and using Python libraries for unit testing. By gaining proficiency in these areas, you'll enhance your ability to test and evaluate software products, making you a valuable asset in any development team.

Reading list

We've selected six books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Master Network Automation with Python for Network Engineers.
Provides a comprehensive overview of Genie for network automation. It covers topics such as Genie architecture, parsers, and plugins. It good resource for those who want to learn how to use Genie to develop network automation scripts.
Provides a comprehensive guide to using Paramiko for network automation, covering topics such as SSH connection management, command execution, and file transfer.
Provides a comprehensive overview of Python for network programming. It covers topics such as Python basics, sockets, and network protocols. It good resource for those who want to learn the fundamentals of Python network programming.
Provides a handy reference for Python syntax, functions, and libraries, making it a useful resource for Python programmers of all levels.
Provides a beginner-friendly introduction to Python, covering topics such as data structures, object-oriented programming, and using Python for data analysis.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Master Network Automation with Python for Network Engineers.
Python Programming for Network Engineers: Cisco, Netmiko...
Most relevant
Introduction to Network Automation
Most relevant
Using APIs for Network Automation
Most relevant
Ansible for Network Automation
Most relevant
DevOps for Network Automation (NetDevOps)
Most relevant
Automating Service Provider Networks with Model-driven...
Most relevant
Cisco Data Center Core: 350-601 Exam Prep
Most relevant
Software Defined Networking (SDN) Deployment
Most relevant
Cisco Enterprise Networks: Automation and SDN
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser