
Master network automation with Ansible through hands-on labs, real-world projects, and capstone projects. Build skills in installation, playbooks, inventories, iOS modules, templates, and ServiceNow integrations.
Discover how Ansible enables scalable, agentless network automation for rapid, consistent updates across many devices. Use YAML playbooks and ServiceNow integrations to reduce human error and streamline configuration management.
Compare Ansible with Puppet, Chef, and SaltStack to choose the right automation tool by evaluating agentless architecture, configuration languages, learning curves, orchestration, and network automation.
Explore the core components of Ansible—the control node, the managed nodes, inventory, and playbooks—and learn how modules, handlers, loop, block, collections, and plugins enable agentless network automation.
Master installing and comparing Ansible core and full on Ubuntu and Red Hat, and extend with Ansible Galaxy collections and vendor modules.
Explore a practical lab setup for network automation with Ansible, covering core concepts and Cisco devices like CSR 1000 V and Vios, Nexus 9000 V, and Gns3 or eve-ng sandboxes.
Master the Ansible configuration file as the control center and learn the search order—from environment variable to project and home directory—and key settings like inventory and timeout.
Learn how to define and manage devices with a basic Ansible inventory in ini format, run ad hoc commands, and organize hosts into groups using inventory variables.
Master YAML basics for network automation in Ansible, including key-value pairs, indentation, lists and dictionaries, and multi-line strings for inventories and playbooks.
Convert an ini inventory to YAML to leverage readability and hierarchical groups for organizing hosts and variables for Ansible playbooks and configuration files.
Learn how to replace ad hoc commands with reusable Ansible playbooks to automate Cisco iOS, NX-OS, and Arista devices, including structure, inventory, modules, variables, gathering facts, registering output, and debugging.
Explore how ansible variables decouple configuration from code to create reusable playbooks across environments. Learn variable definitions from inventory, play headers, external files, prompts, and extra vars, with precedence rules.
Master Ansible variable naming by applying rules for letters, numbers, underscores, and case sensitivity. Use examples like device_hostname and underscore_ip_address; avoid starting with numbers and Python keywords.
Explore using group_vars and host_vars to manage scalable inventories, with YAML files and folders, and learn precedence where host vars override group vars, while playbook vars override both.
Capture task output with Ansible's register and access it via dot notation to isolate standard out, then reuse the data for subsequent tasks and capstone iOS upgrade decisions.
Explore Ansible facts and how Ansible gathers data from managed nodes, using dot and bracket notation to access values such as hardware, IP addresses, and operating system details.
Learn how to use Ansible magic variables to make playbooks dynamic, including creating directories with the playbook directory variable and accessing inventory and host data.
Learn how the include_vars module in Ansible loads variables dynamically for vendor-specific hosts using file and name attributes, with conditions, and how it differs from static vars files.
Learn to use the set_fact module to create dynamic, runtime variables from task output. Apply regex to extract iOS details and drive upgrade decisions in a network device playbook.
Write an Ansible playbook to back up configurations for all devices in the Cisco iOS group, using device folders and timestamped filenames for version control.
Back up network device configurations with Ansible by capturing the running config and saving it to device-specific, timestamped files organized in per-device folders.
Explore Ansible loops and the loop and with_items constructs to automate repetitive tasks. Learn when to use loop, with underscore items, and until, including nested lists and dictionaries with filters.
Register the output of a looped task into a structured variable and access the results attribute to monitor changed, failed, and skipped states for each device.
Master loop control in Ansible playbooks by using label, index_var, and loop_var to customize iteration output for interfaces, showing things like name and IP for readability.
Use the until keyword in Ansible to retry tasks until a condition is met, such as a network interface coming up, with retries and delays to handle network delays.
Learn to use the when condition in Ansible playbooks to execute tasks based on interface status across Cisco devices, employing and/or logic and direct variable references without braces.
Learn to use the Cisco iOS facts module to gather detailed, structured facts from iOS devices, including interfaces, software versions, and uptime.
Explore the Cisco iOS command module in Ansible, sending multiple commands, capturing outputs with results, and using wait for, interval, and match to verify gigabit ethernet interfaces two and three.
Master the Cisco iOS command module with prompt to automate interactive tasks, such as clearing counters and reloading devices, using an Ansible playbook, handling prompts, and printing the output.
Shows how to configure hostnames on Cisco iOS devices using the Ansible iOS config module, emphasizing idempotency, the lines parameter, and the inventory host name magic variable in a playbook.
Demonstrate configuring interfaces with the eos config module using the parents parameter and a nested line structure. Apply configurations across devices with loops and host vars.
Learn to use the after parameter in the EOS config module to apply additional commands only after a configuration change, illustrated by per-interface updates like description, shutdown, and no logging.
Use before and match parameters in Cisco iOS config with Ansible to manage ACL entries, update configurations, and ensure precise matching through line, strict, and exact options.
Explore the Cisco iOS config module's backup parameter and backup options to automatically back up device configurations before changes, with customizable directory paths and file names for safe network automation.
Explore the Cisco iOS config module to diff against and diff ignore lines, comparing running, startup, and intended configurations with a hands-on playbook and golden-config checks.
Explore the ios_config module's save_when options—always, modify, change, and never—and learn how Ansible saves running configurations to startup config, including cases with CLI changes.
Use the iOS config module's source parameter to apply device configurations from an external file. Store templates in the templates folder, including jinja2 templates for dynamic configurations.
Explore how Ansible iOS resource modules automate Cisco device configurations using the hostname module, and apply states like merge, replace, overridden, delete, render, and parse.
Master Ansible for network engineers with hands-on labs on iOS interfaces, iOS L2 and iOS L3 modules, including gather, merge, replace, override, rendered, past, purged, and deleted states.
Configure iOS L2 and L3 interfaces with Ansible, creating VLANs and applying access and trunk port settings. Configure IPv4 addressing, secondary IPs, and dot1q encapsulation on interfaces with merge state.
Master regular expressions to parse network device outputs and validate configurations. Test regex on regex101.com and apply in Ansible for Cisco devices to extract IP addresses and version numbers.
Apply regex filters in Ansible, including regex search, find all, and replace, to extract version numbers and interface data from network device outputs in playbooks.
Explore how text FSM, NTC templates, and pyATS streamline parsing of unstructured network CLI output into structured data using Ansible cli_parse, with hands-on templates and real command examples.
Automate local username management on Cisco devices with Ansible by creating a username with a secure password, retrieving usernames, and removing old credentials while preserving system account and automation username.
This capstone walkthrough guides building an ansible playbook to add a new local username, remove old ones on a csr router, and verify changes using regex extraction and iterative removal.
Use the Cisco iOS user module in Ansible to declaratively manage local usernames, add new users with secret passwords, and purge old ones using aggregate and purge options.
Discover how Ansible filters transform data from variables, facts, and API responses, including lower, default, omit, type_debug, dict2items, and items2dict, to structure host name data and playbooks.
Learn to merge multiple dictionaries in Ansible using the combine filter, creating a unified full_config with set_fact and debugging output for network configurations.
Apply the ternary filter in Ansible to implement if-else logic by evaluating interface status with show ip interface brief, and print the result with the debug module.
Explore the map filter in Ansible to extract attributes across list items, using extract and attribute methods to fetch IDs, names, and host vars from dictionaries.
Discover how the to_json and to_nice_json filters convert ansible variables into json strings, with indentation options for readable output, useful for api-ready data.
Explore Ansible filters two_yaml and two_nice_yaml to convert variables to YAML strings, compare indentation and readability, and save formatted output with the copy module.
Learn to pair lists with the Ansible zip filter and combine device names with management addresses. Discover how zip longest handles missing items using fill_value and set_fact for use.
Discover how to use the ansible utils ip_addr filter to validate IP addresses, extract IPs from strings, and differentiate IPv4 and IPv6 in playbooks.
Learn to format date and time in ansible with strftime and the date_time filter, printing current date/time via the date_time fact and now, with utc options.
Master Jinja2 templates in Ansible by using the template module to render dynamic device configurations from variables, inventory_hostname, and filters within a templates directory and generated config files.
Explore how to use Jinja2 if else statements in Ansible templates to conditionally apply dns server settings, handle undefined variables, and fall back to defaults for missing hosts.
Master Jinja2 for loops to dynamically build network configurations from lists of NTP servers and HTTP servers, with if/else logic in Ansible templates for interfaces and ports.
Learn to use jinja2 include directives to assemble modular templates for network configs. The lecture demonstrates including basic and switchport templates to produce a full config with spanning tree.
Learn to generate full Cisco switch configurations using the iOS config module with a Jinja2 source file (full_config.j2) and include templates, then apply changes to devices.
Unlock the power of network automation with Ansible! Designed specifically for network engineers, this comprehensive course takes you from beginner to advanced levels, emphasizing real-world, hands-on labs to build practical expertise.
What makes this course unique?
ServiceNow Integration: Learn to integrate Ansible with ServiceNow to orchestrate end-to-end automation workflows seamlessly.
Four Capstone Projects: Tackle real-world scenarios and build projects that prepare you for industry challenges.
100+ Videos: Dive deep into a wealth of content covering concepts, labs, and advanced topics.
This course is perfect for those who want to:
Network engineers aiming to master Ansible for device configuration and management.
Professionals looking to implement end-to-end automation with ServiceNow.
Learners preparing for the DevNet Expert certification journey.
What you'll get:
Step-by-step creation and management of Ansible playbooks for network devices.
Real-world applications with a variety of network equipment.
Advanced features like Ansible Collections, Roles, Templates, Automation Platform, Custom Modules, and integrations with ServiceNow and Slack.
Join the growing community of network professionals leveraging automation to simplify and optimize their workflows. Start your journey towards becoming a DevNet Expert today!
Course Outline:
Course Introduction
Introduction
Introduction to Ansible for Network Engineers
Why use Ansible for Network Automation
Comparing Ansible with Puppet, Chef, and SaltStack: Key Differences
Ansible Architecture & Concepts
Ansible Control Node Installation and Setup
Lab Setup for Network Automation
Ansible Basics: Configuration, Inventory, and Playbooks
Ansible Configuration
Ansible Ad-Hoc command and Inventory Basics
YAML 101
Inventory in YAML format
Ansible Playbook
Mastering Variables in Ansible
Understanding Variables in Ansible
Valid Variable Names
group_vars and host_vars
Register
ansible_facts
Magic Variables
include_vars
set_fact
[ Capstone Project 1] - Configuration Backup
Capstone Project 1 - Configuration Backup - Overview
Capstone Project 1 - Configuration Backup - Solution
Using Conditionals
loop and with_items
Registering variables with a loop
loop_control
until
Using when
Managing Cisco IOS Devices with Ansible
ios_facts module
ios_command - Part 1
ios_command - Part 2 - prompt
ios_config - Introduction
ios_config - parents
ios_config - after
ios_config - before and match
ios_config - backup and backup-options
ios_config - diff_against and diff_ignore_lines
ios_config - save_when
ios_config - src
Resource Module - hostname
Resource Module - interfaces
Resource Module - l2_interfaces and l3_interfaces
RegEx and Parsers
RegEx in Ansible
cli_parse and TextFSM, NTC-templates, and pyATS
[ Capstone Project 2] - Automated Local Username Update and Cleanup
Capstone Project 2 - Automated Local Username Update and Cleanup - Overview
Capstone Project 2 - Automated Local Username Update and Cleanup - Solution 1
Capstone Project 2 - Automated Local Username Update and Cleanup - Solution 2
Filters Plugins and Jinja2
Filters - Introduction
Filters combine
Filters ternary
Filters map
Filters to_json and to_nice_json
Filters to_yaml and to_nice_yaml
Filters zip
Filters ip_addr
Filters to_datetime and strftime
Jinja2 Introduction
Jinja2 - if else
Jinja2 - for loop
Jinja2 - include
Jinja2 - ios_config
Deep Dive into Lookup and Callback Plugins
Lookup Plugins Overview
Lookup Plugin - File
Lookup Plugin - env
Lookup Plugin - pipe
Lookup Plugin - template
Callback Plugin - stdout
Callback Plugin - aggregate
Callback Plugin - notification - log_plays and email
Callback Plugin - notification - slack integration
Managing Task Execution with Blocks, Assert, and Handlers
Block
Assert
Handlers
Reusable Automation with Collections, Roles, Includes and Imports
Collections
Roles
Include and Import
Ansible Best Practices and Optimizations
Strategies in Ansible
Forks and Serial in Ansible
Using tags
Using check_mode
Delegation
no_log and log_path
ignore_errors
failed_when and changed_when
Ansible Lint
ansible_vault
[ Capstone Project 3] - Automated IOS Upgrade
Capstone Project 3 - Automated IOS Upgrade - Overview
Capstone Project 3 - Automated IOS Upgrade - Solution
Ansible Automation Platform (AAP) and AWX Essentials
Ansible Automation Platform Overview and Installation
Setting up AAP to manage hosts
Users, Teams and Roles in AAP
Job Template Surveys
Scheduling Jobs
Notifications in AAP
Creating Dynamic Inventory in AAP
Using Workflow in AAP
Advanced Ansible: Custom Inventory Plugins and Modules
Custom Inventory Plugin
Custom Module
ServiceNow Integration with Ansible
ServiceNow Overview and snow_record Module
ServiceNow snow_record update using Jinja2 and HTML
ServiceNow ITSM Incident Module
ServiceNow ITSM Change Module
[ Capstone Project 4] - Automated VLAN Configuration using ServiceNow Workflow and AAP
Capstone Project 4 - Automated VLAN Configuration using ServiceNow Workflow and AAP - Overview
Capstone Project 4 - Automated VLAN Configuration using ServiceNow Workflow and AAP - Solution