Cloud-hosted virtual lab

Python | Netmiko | Cisco DevNet / CML

Network Automation Lab

An inventory-driven automation environment for virtual Cisco IOS nodes hosted in an online lab, with configuration backups, VLAN deployment, and operational-state collection.

3

Workflows

5

VLANs

Virtual

Lab type

Network Automation Lab topology showing a Python client connecting over SSH to virtual Cisco IOS nodes in a CML reservation

What it automates

Repeatable operations instead of one-off CLI work.

Configuration Backups

Collects running configurations over SSH and writes timestamped, device-specific backup files.

VLAN Deployment

Builds deterministic Cisco IOS commands from YAML intent and requires an explicit apply flag.

State Auditing

Collects interface, VLAN, OSPF, and platform state into structured JSON reports.

Execution design

Guardrails are part of the workflow.

The configuration workflow separates planning from execution. A normal run prints exactly what would change; only the explicit--applyflag permits network changes.

Controlled network automation workflow from inventory validation through dry run, execution, and verification

Safety controls

Deployment is dry-run by default

Credentials are read from environment variables

Sandbox hostnames and SSH ports are supplied at runtime

Device and VLAN inventory is validated before connection

Failures are isolated and reported per device

SSH sessions disconnect through a context manager

PowerShell
safe usage
# Preview changes without connecting
python scripts/deploy_vlans.py

# Back up one device
python scripts/backup_configs.py --device access-sw1

# Apply reviewed VLAN intent
python scripts/deploy_vlans.py --device access-sw1 --apply

Review the technical case study.

The diagrams and workflow summarize the environment, controls, and operational reasoning without exposing internal prep material.