Network automation practice labs

27 guided labs that take you from Bash, Git and data formats to Python with Netmiko, NETCONF, RESTCONF and YANG, Ansible and Jinja2, model-driven telemetry, EEM, testing, secure automation and an MCP tool server for AI agents. You work from a ready-built Linux workstation against real Cisco IOS XE and IOS routers. Six multi-vendor labs take the same skills beyond Cisco: NAPALM across IOS, EOS and Junos, Junos NETCONF and PyEZ, Arista eAPI, the AOS-CX and RouterOS REST APIs, and Ansible across four vendors.

Start this courseTry it free for 30 minutes

Lite for a month, £45.00, runs every lab here, with nothing extra to pay for the guided labs. Every lab here also runs in the free demo.

Guided labs
27
Follows
Cisco CCNA Automation (200-901) and CCNP Automation topics
Runs every lab
Lite
Devices
IOSv, EVE-NG GUI server, CSR 1000v, vEOS, vSRX NextGen template, RouterOS and AOS-CX virtual switch

Who these labs are for

For network engineers moving into automation, and anyone preparing for Cisco’s CCNA Automation (200-901) or the CCNP Automation exams ENAUTO (300-435 v2.0) and AUTOCOR (350-901 v2.0). You need basic IOS CLI skills; the first labs assume no programming experience.

Tools CloudLabBox doesn’t host, such as pyATS, GitLab, Terraform and controller platforms, are taught with named stand-ins: Netmiko snapshots, make as the pipeline and a mock controller.

The 27 labs

Every lab in the folder, as the workspace lists them, with what each runs and the smallest plan that fits. Read on 2 November 2026.

Network automation course 27 labs

Shared folderNetwork Automation - CCNA and CCNP Automation guided labs

One skill per lab, then two troubleshooting labs and a capstone that delivers a change through a pipeline from a source of truth. The starter files are already on the workstation.

  1. 01Your automation workstation - Bash SSH keys and management ports

    Set up the Linux workstation you will automate from: Bash files, pipes and environment variables, a syslog report, a port checker that tells SSH, HTTPS and NETCONF apart, SSH keys on IOS and IOS XE, and a backup script that runs without a password.

    1× CSR 1000v, 1× IOSv, 1× EVE-NG GUI server

    3 vCPU, 5,632 MBFits LiteRuns in the free demo

  2. 02Data formats - JSON XML and YAML in Python

    Read the same interface data as JSON, XML and YAML, parse each into identical Python structures, avoid the classic YAML traps, then do it again with live RESTCONF data from an IOS XE router.

    1× CSR 1000v, 1× EVE-NG GUI server

    2 vCPU, 5,120 MBFits LiteRuns in the free demo

  3. 03Git for network configurations - branch merge squash cherry-pick and revert

    Run a real team workflow on a repository of router configurations: clone, branch and commit a change, merge with a conflict, squash a branch, cherry-pick one fix, revert a bad commit, survive a rejected push, tag a baseline and deploy it to two routers.

    2× IOSv, 1× EVE-NG GUI server

    3 vCPU, 2,048 MBFits LiteRuns in the free demo

  4. 04HTTP and REST with RESTCONF - curl status codes and Python requests

    Take a real router's REST API apart with curl: the HTTP request and response, authentication, media types, URLs built from YANG, every write method and its status code, a request that fails three different ways, and an RPC, then read it all from Python with requests.

    1× CSR 1000v, 1× EVE-NG GUI server

    2 vCPU, 5,120 MBFits LiteRuns in the free demo

  5. 05Controller-style REST APIs - tokens API keys pagination rate limits and webhooks

    Write a Python client for a controller-style REST API that handles token and API-key authentication, every page of a paginated list, 429 rate limits, expired tokens, an asynchronous job and signed webhooks.

    1× EVE-NG GUI server

    1 vCPU, 1,024 MBFits LiteRuns in the free demo

  6. 06Python and Netmiko - CLI automation over SSH

    Automate three routers over SSH with Python and Netmiko: gather facts, back up configurations, push interface settings from a YAML file, verify with pings, and run against every device in parallel while handling the ones that fail.

    2× IOSv, 1× CSR 1000v, 1× EVE-NG GUI server

    4 vCPU, 6,144 MBFits LiteRuns in the free demo

  7. 07Parse CLI output with TextFSM ntc-templates and TTP

    Turn show-command text into structured data: ntc-templates for interfaces, OSPF and CDP, a TextFSM template you write yourself, and a TTP template for the running configuration, then use the results to validate the design and enforce an SSH policy.

    3× IOSv, 1× EVE-NG GUI server

    4 vCPU, 2,560 MBFits LiteRuns in the free demo

  8. 08YANG models - read modules and trees then build XML and JSON payloads

    Learn to read YANG the way the exam and real work need: find which models a router supports, download the modules themselves, read an RFC 8340 tree, then build XML and JSON payloads from the tree alone and let the device validate them, and compare the IETF, Cisco native and OpenConfig views of one interface.

    1× CSR 1000v, 1× EVE-NG GUI server

    2 vCPU, 5,120 MBFits LiteRuns in the free demo

  9. 09NETCONF with ncclient - read change and commit IOS XE configuration

    Speak NETCONF by hand over SSH, then with Python's ncclient: read configuration and state with filters, change interfaces and NTP with edit-config, handle rpc-errors and the delete/remove operations, commit through the candidate datastore, and save.

    1× CSR 1000v, 1× IOSv, 1× EVE-NG GUI server

    3 vCPU, 5,632 MBFits LiteRuns in the free demo

  10. 10RESTCONF configuration management - desired state native models and idempotency

    Manage an IOS XE router's interfaces, OSPF and static routes as a list of RESTCONF resources in YAML: discover the JSON with the 'configure once, read back' technique, choose PUT or PATCH, and build an apply script that only changes what differs, then prove it by forming an OSPF adjacency with a neighbour.

    1× CSR 1000v, 1× IOSv, 1× EVE-NG GUI server

    3 vCPU, 5,632 MBFits LiteRuns in the free demo

  11. 11Jinja2 templates and a YAML source of truth

    Generate complete router configurations from a YAML source of truth with Jinja2: loops, conditionals, whitespace control, built-in and custom filters, macros, template inheritance and strict undefined variables, then deploy them to three routers and prove OSPF and the intended path.

    3× IOSv, 1× EVE-NG GUI server

    4 vCPU, 2,560 MBFits LiteRuns in the free demo

  12. 12Ansible for IOS and IOS XE - inventory ad-hoc commands facts and ios_config

    Build an Ansible project for three routers from scratch: an inventory with groups and variables, ad-hoc commands, a facts playbook that writes JSON reports, and a configuration playbook with check mode, diffs, backups, saving and verification that is idempotent on the second run.

    2× IOSv, 1× CSR 1000v, 1× EVE-NG GUI server

    4 vCPU, 6,144 MBFits LiteRuns in the free demo

  13. 13Ansible in depth - Vault resource modules NETCONF and RESTCONF modules compliance

    Take the team's Ansible project further: encrypt the credentials with Ansible Vault, configure interfaces, addresses and OSPF from structured host data with resource modules, manage the IOS XE router over NETCONF and RESTCONF, and enforce a configuration-compliance policy with automatic remediation.

    2× IOSv, 1× CSR 1000v, 1× EVE-NG GUI server

    4 vCPU, 6,144 MBFits LiteRuns in the free demo

  14. 14Model-driven telemetry on IOS XE - dial-in dial-out and webhook alerts

    Stream data out of an IOS XE router instead of polling it: a dial-in subscription over NETCONF, configured dial-out subscriptions created three ways (CLI, NETCONF and RESTCONF), a collector that sees the router connect, and a small pipeline that turns telemetry into webhook alerts.

    1× CSR 1000v, 1× EVE-NG GUI server

    2 vCPU, 5,120 MBFits LiteRuns in the free demo

  15. 15On-box automation with EEM - backups self-healing tracking and guard rails

    Automate inside the router with Embedded Event Manager: a manual backup applet, a syslog-triggered applet that undoes a mistaken shutdown, IP SLA tracking that alerts when a neighbour disappears, and a CLI guard that blocks dangerous commands, with every event reaching a syslog collector on the workstation.

    1× CSR 1000v, 1× IOSv, 1× EVE-NG GUI server

    3 vCPU, 5,632 MBFits LiteRuns in the free demo

  16. 16Testing network automation - unit tests mocks pre-post snapshots and a pipeline

    Write the tests first: unit-test a small network library with saved device output and a mocked connection, then validate a real OSPF change with before-and-after snapshots, a structured diff and explicit checks, all chained into a pipeline that stops at the first failure.

    3× IOSv, 1× EVE-NG GUI server

    4 vCPU, 2,560 MBFits LiteRuns in the free demo

  17. 17Secure automation - secrets input validation and CA-signed TLS

    Fix three classic automation security failures on real routers: a password leaked in code and Git history (rotate it and store secrets properly), a self-service script that lets anyone inject IOS commands (exploit it, then fix it with allow-list validation), and a REST client that skips certificate checks (build a lab CA and deploy a CA-signed certificate to IOS XE).

    1× CSR 1000v, 1× IOSv, 1× EVE-NG GUI server

    3 vCPU, 5,632 MBFits LiteRuns in the free demo

  18. 18Troubleshooting lab - NETCONF RESTCONF and YANG automation

    Four model-driven scripts and an IOS XE router hide seven faults between them: RESTCONF authentication, an ACL that silently drops NETCONF, a mistyped module name, a reply parsed in the wrong format, a string where YANG wants a boolean, a filter namespace that returns nothing, and an augmented node without its namespace. Diagnose each from the evidence and fix it.

    1× CSR 1000v, 1× EVE-NG GUI server

    2 vCPU, 5,120 MBFits LiteRuns in the free demo

  19. 19Troubleshooting lab - Netmiko Jinja2 and Ansible automation that worked yesterday

    A colleague's automation project fails in eight different ways across two routers and the workstation: wrong device types, a mistyped address, SSH disabled, a user without privilege, an undefined template variable, broken YAML, the wrong Ansible connection and a task that is never idempotent. Find each fault from its symptoms, fix it, and prove the whole project runs clean twice.

    2× IOSv, 1× EVE-NG GUI server

    3 vCPU, 2,048 MBFits LiteRuns in the free demo

  20. 20AI in network automation - an MCP tool server and reviewing AI-generated code

    Build a read-only MCP server that gives an AI agent live interface, routing and configuration data from two routers, make it safe (allow-listed commands, secret redaction, untrusted device text), then catch the mistakes in an AI assistant's Netmiko script before they reach the network.

    2× IOSv, 1× EVE-NG GUI server

    3 vCPU, 2,048 MBFits LiteRuns in the free demo

  21. 21Capstone - deliver a network change through a pipeline from a source of truth

    Deliver a real change the way an automation team does: lint and fix the source of truth, guard it with a Git hook, render the CLI with Jinja2, deploy IOS with Ansible and IOS XE with RESTCONF, configure telemetry and an EEM alert, validate in parallel with Netmiko and ntc-templates, run it all as one idempotent pipeline, prove the alerting with a drill, and release the change with a merge commit and a tag.

    2× IOSv, 1× CSR 1000v, 1× EVE-NG GUI server

    4 vCPU, 6,144 MBFits LiteRuns in the free demo

  22. 22NAPALM - one Python API for IOS EOS and Junos

    Run the same Python against Cisco IOS, Arista EOS and Juniper Junos with NAPALM: normalised facts, addresses, LLDP links and BGP health, a compliance report from YAML, and one load, diff, commit and rollback workflow on all three.

    1× IOSv, 1× vEOS, 1× vSRX NextGen template, 1× EVE-NG GUI server

    5 vCPU, 7,680 MBFits LiteRuns in the free demo

  23. 23Junos automation - XML API NETCONF PyEZ and the REST API

    Work up the Junos automation stack on a real vSRX: see the XML behind the CLI, speak NETCONF by hand and with ncclient, use PyEZ for facts, RPCs, tables and safe configuration changes with Jinja2 templates and confirmed commits, then drive the same RPCs through the REST API with cURL.

    1× IOSv, 1× vSRX NextGen template, 1× EVE-NG GUI server

    4 vCPU, 5,632 MBFits LiteRuns in the free demo

  24. 24Arista EOS automation - eAPI pyeapi and configuration sessions

    Program two Arista switches from a Linux workstation: JSON-RPC calls to eAPI with cURL and Python, structured data with no screen scraping, pyeapi's connection profiles and API modules, a desired-state VLAN push, and configuration sessions with a commit timer that undoes a change nobody confirms.

    2× vEOS, 1× EVE-NG GUI server

    3 vCPU, 5,120 MBFits LiteRuns in the free demo

  25. 25HPE Aruba AOS-CX REST API v10-14 with cURL and Python

    Manage two AOS-CX switches through their REST API: session cookies and limits, attributes, depth and selectors, what POST, PATCH, PUT and DELETE really do, a desired-state VLAN and port script, and checkpoints with rollback, all with cURL and plain Python requests.

    2× AOS-CX virtual switch, 1× EVE-NG GUI server

    5 vCPU, 7,168 MBFits LiteRuns in the free demo

  26. 26MikroTik RouterOS REST API - HTTPS CRUD and desired state

    Automate two RouterOS routers through their REST API: move it from plain HTTP to verified HTTPS, learn how GET, PUT, PATCH, DELETE and POST map to RouterOS commands, build a routed link and OSPF from a YAML file with a script you can run twice, and give an API account only the rights it needs.

    2× RouterOS, 1× EVE-NG GUI server

    3 vCPU, 1,536 MBFits LiteRuns in the free demo

  27. 27Ansible across four vendors - IOS EOS Junos and RouterOS

    One Ansible project for Cisco, Arista, Juniper and MikroTik: a connection plugin per platform, one source of truth, one report, and a baseline playbook that dispatches to each vendor's modules, stays idempotent, shows check mode and diff, and finds drift. Includes what to do when a module's Python library isn't there.

    1× IOSv, 1× RouterOS, 1× vEOS, 1× vSRX NextGen template, 1× EVE-NG GUI server

    6 vCPU, 7,936 MBFits LiteRuns in the free demo

Devices and images

The exact Add Node images the labs use, and the vCPU and RAM their nodes are set to. Your plan counts what each running node is set to.

Devices and images in the Network automation practice labs, as read on 2 November 2026
DeviceImage in Add NodeSet toLabsNodes
Cisco IOSvvios-adventerprisek9-m.spa.159-3.m91 vCPU, 512 MB1831
EVE-NG GUI server (Docker)eve-gui-server:latest1 vCPU, 1,024 MB2727
Cisco CSR 1000vcsr1000vng-universalk9.17.03.08a-serial1 vCPU, 4,096 MB1414
Arista vEOSveos-4.33.1.1F1 vCPU, 2,048 MB34
Juniper vSRX NextGen templatevsrxng-24.4R1.92 vCPU, 4,096 MB33
MikroTik RouterOSmikrotik-7.14.21 vCPU, 256 MB23
Aruba AOS-CX virtual switcharubacx-10.142 vCPU, 3,072 MB12

Browse every image in the Add Node list

How to open the labs

  1. Sign in to your workspace at lab.cloudlabbox.com.

  2. In File Manager, open Shared, then the folder Network Automation - CCNA and CCNP Automation guided labs.

  3. Open a lab and start its nodes, then open Lab Tasks for the steps.

The labs are read-only. You can start the nodes and configure the devices, but changes to the topology can’t be saved. To change a lab, rebuild it in your own folder.

The Shared folder in the EVE-NG File Manager, recorded on 2 November 2026 with a test account.
The EVE-NG File Manager open on the read-only Shared folder: one folder per guided course, including Arista EOS, BGP in depth, CCIE Enterprise Infrastructure, CCNA, CCNP ENARSI and ENCOR, Check Point, Cisco ASA, Cisco Nexus NX-OS, CompTIA Network Plus and FortiGate
A guided CCNA lab with its Lab Tasks pane, recorded on 1 November 2026 with a test account.
A guided CCNA lab open in EVE-NG with its nodes running: four routers and two PCs on the canvas, and the Lab Tasks pane beside them with the scenario, the addressing plan and the first task

Questions about the Network automation labs

Are these Network automation labs free?

They’re included with every lab plan, with nothing extra to pay, rather than free. Plans start at £3 a day or £0.50 an hour. To try one first, the free demo gives you 30 minutes with 6 vCPU and 8 GB, enough to run every one of these labs.

Which plan do I need for these labs?

Lite, with 6 vCPU and 8 GB, runs every lab here. EVE-NG admits a node by the vCPU and RAM configured on it, so a lab needs the total its running nodes are set to. The biggest here, “Ansible across four vendors - IOS EOS Junos and RouterOS”, needs 6 vCPU and 7,936 MB. Each lab’s Lab Tasks pane names the plan it needs.

Can I change these labs?

You can start the nodes and configure the devices, but the labs are read-only: changes to the topology can’t be saved. To change one, rebuild it in your own folder.

Are these labs from Cisco?

No. CloudLabBox wrote them to follow the topics of Cisco’s CCNA Automation exam (200-901, formerly DevNet Associate) and the device-level topics of the CCNP Automation exams, ENAUTO 300-435 and AUTOCOR 350-901. They aren’t training material from Cisco, and CloudLabBox is independent of Cisco.

Is CCNA Automation the old DevNet Associate?

Yes. Cisco’s CCNA Automation exam, 200-901, was called DevNet Associate before. These labs cover its hands-on topics and the device-level topics of ENAUTO and AUTOCOR.

Is it only Cisco?

No. Labs 22 to 27 also use Junos, Arista EOS, AOS-CX and RouterOS, and lab 23 follows the topics of Juniper’s JNCIA-DevOps JN0-224. JSNAPy isn’t installed, so that lab teaches the same idea with a small PyEZ script.

Try a lab before you choose

The free demo is a real workspace for 30 minutes, with 6 vCPU and 8 GB: enough to run every one of these labs. No card and no email.

Try it free for 30 minutesStart this course

Plans from £3 a day or £0.50 an hour, each with every guided lab.