NetDevOps Pipeline Engineering (NDO-304)

Continue your studies of NetDevOps with a focus on Ansible and automating common elements within the network. In addition to Ansible, students will study enough Python to understand Ansible’s plugin architecture. 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.

Course Information

Price: $3,795.00
Duration: 5 days
Learning Credits:
Course Delivery Options

Check out our full list of training locations and learning formats. Please note that the location you choose may be an Established HD-ILT location with a virtual live instructor.

Train face-to-face with the live instructor.

Access to on-demand training content anytime, anywhere.

Attend the live class from the comfort of your home or office.

Interact with a live, remote instructor from a specialized, HD-equipped classroom near you. An SLI sales rep will confirm location availability prior to registration confirmation.

All Sunset Learning dates are guaranteed to run!



  • Coding experience in another language


Target Audience:

  • Network Administrators
  • Ansible Developers
  • Python Developers
  • Administrators interested in Automation
  • Individuals interested in devops, specifically for networking


Course Objectives:

  • Version controlling code with Git
  • Open SSH sessions and pass commands to remote servers
  • Remotely open CLI to network devices
  • Move files via SFTP
  • Overview of Ansible modules
  • Ansible collections for network automation
  • Custom Ansible modules with Python
  • Best practices for automating the management and configuration of network devices


Course Outline:


  • Lecture + Lab: NetDevOps Pipeline Engineering

AI LLM Toolkit

  • Lecture + Lab: Large Language Model toolkit for AI Solution Assistance

Software Control Management

  • Lecture + Lab: SCM Option #1 – GitHub
  • Lecture + Lab: SCM Option #2 – GitLab

Python and Ansible Overlap

  • Lecture: Introducing Python 
  • Lecture + Lab: Getting dir(obj) help() and pydoc
  • Lecture: Data Types for Python and Ansible
  • Lecture + Lab: Python Lists
  • Lecture + Lab: Python Dictionaries
  • Lecture: Ansible Playbook Components
  • Lecture + Lab: Running a Playbook
  • Lecture + Lab: Debug and URI Module
  • Lecture + Lab: Debug, Loops, and YAML Lists

API Operations

  • Lecture: RESTful APIs and JSON
  • Lecture + Lab: Exploring Open APIs
  • Lecture + Lab: Ansible Keywords: register and when
  • Lecture + Lab: API Tokens with Python and Ansible

SSH Operations

  • Lecture: SSH Operations
  • Lecture + Lab: Paramiko vs Ansible – SSH with RSA Keys
  • Lecture + Lab: Paramiko – SFTP with UN and PW
  • Lecture: Ansible for SSH operations
  • Lecture + Lab: Ansible ’raw’ Module

Ansible Tools

  • Lecture + Lab: Jinja2 Filters
  • Lecture + Lab: Ansible, Python Methods, and Jinja Filters
  • Switches and Routers
  • Lecture: Netmiko
  • Lecture + Lab: Running Netmiko
  • Lecture + Lab: Network Playbooks, Set Fact, and Fail
  • Lecture + Lab: Ansible Get Switch Config and Archive
  • Lecture + Lab: Agnostic Network Modules
  • Lecture + Lab: Ansible and TextFSM

Playbook Design

  • Lecture + Lab: Network Playbook Error Handling
  • Lecture + Lab: Network Playbook Precheck
  • Lecture + Lab: Network Playbooks with Roles and Rollbacks

Ansible Workflow

  • Lecture + Lab: Ansible Collections
  • Lecture: Ansible Workflow
  • Lecture + Lab: ansible-runner


  • Lecture + Lab: Securing Playbooks with Vault
  • Lecture + Lab: Playbook Vars Prompts

Building out Playbooks

  • Lecture + Lab: Ansible Module – template
  • Lecture + Lab: Ansible and APIs

Python and Ansible

  • Lecture + Lab: Running a script with Ansible
  • Lecture + Lab: YAML, JSON, Dynamic, and Cloud Inventories
  • Lecture + Lab: Writing an Ansible Module with Python
  • Lecture + Lab: When to Use Python or Ansible

Playbook Tests

  • Lecture + Lab: Roles and Molecule

Cisco Modeling Labs

  • Lecture: Introduction to Cisco Modeling Labs (CML)
  • Lecture + Lab: CML Manual Topography
  • Lecture: SSH to CML Nodes
  • Lecture + Lab: SSH to CML Nodes

Integrating NetDevOps Tools

  • Lecture + Lab: CML Dynamic Inventory
  • Lecture + Lab: Building CML Lab with Ansible
  • Lecture + Lab: Converting Netbox Config to CML Topology
  • Lecture + Lab: CML Facts Ansible Modules

CI/CD Pipeline to Implement Change

  • Lecture + Lab: Netbox-Jinja2 Device Config with Ansible
  • Lecture + Lab: Rolling Back Network Changes


  • Lecture + Lab: Detecting Manual Interference Outside the Source of Truth
  • Lecture: Managing the Hot Fix
  • Lecture + Lab: Managing Config Drift