Network Automation

Course Description

Network automation is about letting software do the repetitive work that we used to do by hand, box by box, in the CLI. This course explains how we can configure and monitor network devices programmatically. You’ll learn what software defined networking (SDN) is and how SDN controllers work, how device programmability with NETCONF, RESTCONF, and YANG works, how to use REST APIs, and how configuration management tools like Ansible and Terraform automate your network. We finish with artificial intelligence (AI) and machine learning (ML), and how they are used in networking today.

Course Highlights

In this course you will learn:

  • The difference between network automation and orchestration.
  • How data formats like XML, JSON, and YAML and YANG data models work.
  • What SDN is, how the control and data plane are separated, and how controllers like OpenDaylight and ONOS work.
  • How Cisco SD-Access automates the enterprise network.
  • How NETCONF, RESTCONF, and gRPC are used to configure and monitor network devices.
  • What a REST API is, how CRUD operations map to HTTP methods, and how REST API authentication works.
  • How to automate your network with Ansible and Terraform, and why version control with Git matters.
  • What AI and machine learning are, and how they are used in networking.

Presented to you by instructor Rene Molenaar, CCIE #41726

Course at a glance

  • 16 lessons in 5 units.
  • Format: self-paced lessons with examples on Cisco IOS XE, lab topologies, Python code, and video.
  • Last updated: October 2026.

Requirements

  • Basic understanding of networking concepts and protocols.
  • Some Python knowledge helps for the REST API examples, but it’s not required.

Course Schedule

What is Network Automation?

Network automation, in its most simple form, means a task runs on its own without human intervention. Instead of logging in to every switch to create a VLAN, you let a script or a tool do it for you. You can write scripts in Python, use tools like Ansible or Terraform, or use a controller that manages the entire network. Orchestration takes this one step further: you describe what you want, and the orchestrator figures out how to configure everything.

Why do we need it? Configuring devices one by one through the CLI takes too much time, it’s easy to make errors, and it doesn’t scale. The CLI is also made for humans: show commands are hard to parse and there is no clear feedback when a command fails. APIs, data models like YANG, and protocols like NETCONF and RESTCONF give us a programmatic interface with structured data instead. Configuration management tools keep your devices in a known state and prevent configuration drift.

Who uses network automation? Enterprise networks use it to roll out changes to hundreds of devices, and controller-based solutions like Cisco SD-Access automate the entire campus. Data centers and cloud providers rely on it because they can’t manage their scale by hand. Every network engineer needs to know the basics.

Network Automation Learning Roadmap

This roadmap follows the course units. Each topic has a short explanation and links to the lessons where we cover it in detail.

Automation, Orchestration and Configuration Management

We start with the difference between automation and orchestration. Automation is running a task without human intervention, like resetting OSPF on three routers; orchestration means you describe what you want and the orchestrator works out how. Configuration management tools keep your systems in a desired state and prevent configuration drift. Agent-based tools like Puppet and Chef install software on the systems they manage, while Ansible is agentless. Storing your configurations in a version control system like Git lets you work together and roll back changes.

Software Defined Networking (SDN)

Every network device has a control plane, a data plane, and a management plane. SDN separates the control plane from the data plane and moves it to a central controller. Applications talk to the controller through northbound APIs, and the controller talks to the switches through southbound protocols like OpenFlow. We build labs with the OpenDaylight and ONOS controllers and Open vSwitch, and look at Cisco SD-Access, which uses LISP on the control plane, VXLAN on the data plane, and TrustSec on the policy plane. We also try the path trace tool of Cisco’s APIC-EM controller.

Data Models and Device Programmability

Scripts need structured data, not show command output. APIs exchange data in formats like XML and JSON, and tools like Ansible use YAML. YANG data models describe what you can configure and monitor on a device. For device programmability, NETCONF uses XML and RPCs over SSH, RESTCONF uses HTTP methods with XML or JSON, and gRPC is an open source RPC framework from Google. We try NETCONF and RESTCONF on a Cisco IOS XE router and gRPC on a Cisco IOS XR router.

REST APIs

A REST API lets applications talk to each other with the same HTTP methods your web browser uses: GET to read, POST to create, PUT to update, and DELETE to remove. These map to the CRUD operations (create, read, update, delete) that every application uses to work with data. We use Python scripts to read and change the configuration of a Cisco CSR1000v router through its REST API. You’ll also learn the common options for REST API authentication: basic authentication, API keys, and tokens like JWT.

Ansible and Terraform

Ansible is a great tool to start with network automation. It’s agentless, uses SSH to connect to your devices, and you write your tasks in YAML playbooks, so you can run your first automation in minutes. Terraform is an infrastructure as code (IaC) tool from HashiCorp. It’s declarative: you define the end state in its own configuration language, and Terraform uses APIs to create the resources, whether that’s an AWS EC2 instance or the configuration of a Cisco IOS XE router.

AI and Machine Learning

AI is the simulation of human intelligence with computers, and machine learning is the subfield where algorithms learn from data to make predictions and decisions. Generative AI and large language models (LLMs) like ChatGPT became popular in 2022. In networking, you can use LLMs to help with configurations and troubleshooting, and vendors use AI and ML (AIOps) to analyze network data, spot anomalies, and predict issues before users notice them.

Frequently Asked Questions

Will AI replace network engineers?

Probably not. AI and machine learning are more likely to become another tool in your toolbox. LLMs can help you write configurations and troubleshoot, and AI-driven tools analyze network data to predict and find issues, but you still need to understand the network to use them well. Learn how AI and ML are used in networking.

Is network automation a good career?

Yes. Automation skills make you more valuable as a network engineer, and some companies have dedicated network automation roles. Most of these jobs still expect strong networking knowledge, because you can’t automate what you don’t understand. For most people, the best path is to become a good network engineer first and add automation skills on top.

Where should I start with network automation?

Start with a small, boring task that you do often, like backing up configurations or collecting show output from all your switches. Learn the basics of Python or Ansible, try it in a lab first, and run read-only tasks before you let a script change anything. Once that works, you can move on to templates, APIs, and version control with Git. Learn how Ansible works.

Do network engineers need to learn programming?

Not necessarily. Tools like Ansible and controller dashboards let you automate a lot without writing real code, and many network engineers get far with YAML playbooks and templates. Knowing some programming does help once you need custom logic, like parsing output or working with APIs, and Python is the usual choice for that. Learn Python for network engineers.

What is network automation?

Network automation means letting scripts or tools configure, manage, and monitor network devices instead of doing it by hand in the CLI. It saves time, reduces errors, and scales to hundreds or thousands of devices. Common tools are Python, Ansible, Terraform, and controllers like Cisco Catalyst Center (formerly DNA Center). Learn about network automation and orchestration.

What are some examples of network automation?

Common examples are backing up the configuration of all your devices every night, pushing a new VLAN or ACL to hundreds of switches, and checking that every device runs the right software version. You can also use automation to collect show output for troubleshooting, or to compare running configurations with a standard template to find configuration drift. Learn about configuration management tools.

Is SDN still used?

Yes, but not quite the way it was first imagined. Pure OpenFlow networks with one central controller never became mainstream in enterprises, but the idea of central control is everywhere: controller-based solutions like Cisco SD-Access, Cisco Catalyst SD-WAN (formerly Cisco SD-WAN), and cloud networks all use it. That’s why SDN concepts like the control plane, data plane, and northbound and southbound APIs are still worth learning. Read our introduction to SDN.

What is the difference between Ansible and Terraform?

Ansible is a configuration management tool: it connects to existing systems, mostly through SSH, and runs the tasks in your YAML playbooks. Terraform is an infrastructure as code tool that is declarative: you describe the end state and it creates the resources through APIs, for example in AWS. They also work well together, with Terraform creating resources and Ansible configuring them. Learn how Terraform works.

Ready to automate your network?

Get access to all 16 Network Automation lessons and every other course on NetworkLessons.com.

Sign up

Already have an account? Log in