Build a Network Automation Lab: GNS3, EVE-NG, and DevNet Sandbox
You cannot learn automation safely on production. Here is where to practice.
The fastest way to break production is to learn automation on it. Every pattern in these posts deserves a throwaway environment first. You have three good options, each with a different trade-off.
Option 1: GNS3 — local and free
GNS3 runs real vendor images on your own machine. Heaviest on RAM, but nothing leaves your laptop and you control every cable.
import requests
# GNS3 exposes its own REST API on localhost
nodes = requests.get("http://localhost:3080/v2/projects").json()
print([p["name"] for p in nodes])Option 2: EVE-NG — browser-based topologies
EVE-NG moves the emulation onto a server with a browser-based topology editor. Better for shared team labs; the devices are reachable over the management network just like real gear.
Option 3: DevNet Sandbox — zero setup
Cisco DevNet Sandboxes are free, cloud-hosted, and some are always-on. No images to license, no RAM to find — reserve one and you have reachable devices and APIs in minutes.
# inventory.yaml pointed at an always-on DevNet sandbox
devices:
- name: sandbox-iosxe
host: sandbox-iosxe-latest-1.cisco.com
platform: cisco_ios
username: developer
password: ${DEVNET_PASS}Wire any of them into NAPT
NAPT does not care whether a device is emulated or physical — it speaks SSH and NETCONF either way. Point your inventory at the lab and run with --dry-run exactly as you would in production.
napt run check-interfaces --inventory inventory.yaml --dry-run
Was this helpful?
Generate scripts for the task covered in this post
Describe what you need and NAPT writes production-ready automation in Netmiko, NAPALM, or Nornir.
Open Script Generator →Related posts
Set Up NAPT in 30 Minutes: From Empty Terminal to Your First Automated Check
A guided install: create a Python virtual environment, install NAPT, wire up SSH credentials, and run your first read-only check with --dry-run safety on.
Read →Building Network Workflows Visually: Chain Templates Into Repeatable Automation
Drag templates onto a canvas, connect them with edges, add branches and parallel groups, then save, schedule, and run the whole flow.
Read →Zero-Touch Provisioning: From Rack-and-Stack to Production Without a Console Cable
ZTP turns a factory-default switch into a fully configured, verified device automatically. Here's how to drive it from a pipeline with config-as-code and post-deploy verification.
Read →