vm-lab

Validate commands and troubleshooting steps by executing them on real Azure lab VMs.

Updated Aug 13, 2026
One-click install
npx skills add https://github.com/crystalzhangbai/TS-Agent-Azure --skill vm-lab-crystalzhangbai
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: vm-lab
Source: https://github.com/crystalzhangbai/TS-Agent-Azure/tree/main/bridge/skills/vm-lab
Command: npx skills add https://github.com/crystalzhangbai/TS-Agent-Azure --skill vm-lab-crystalzhangbai

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Before sending commands, scripts, or troubleshooting steps to a customer, engineers need proof they actually work. This Skill runs action plans against real Azure lab VMs (Linux and Windows) and returns a per-step verification report, catching broken syntax, wrong targets, and destructive operations before they reach production. ## Core Features & Use Cases - Command classification and routing: Parses numbered plans or raw commands and routes each step to the right target — local az CLI, Linux VM via run-command/SSH, Windows VM via PowerShell, Azure Portal via Playwright, or ARM REST API. - Scenario labs: Builds multi-resource experiments from scratch (image → VM → restore point → disk → new VM) in a dedicated resource group with a teardown manifest, cheapest SKUs, and marker-file verification. - Safety gates: Blocks destructive commands without confirmation, refuses to touch non-lab subscriptions, and declines platform-side issues (unexpected reboots, hardware failures) that a lab cannot reproduce. - Use Case: A support engineer wants to confirm that resizing a VM to Standard_D2as_v4 preserves accelerated networking before recommending it to a customer — the Skill performs the resize on a lab VM, verifies boot and NIC state, and reports the result. ## Quick Start Ask the assistant to validate a specific command or action plan in the lab, for example by saying "vm-lab: run these troubleshooting steps in the lab and show me the verification report."

Frequently Asked Questions about vm-lab

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I validate Azure CLI commands before sending them to a customer?▼

Provide the commands or numbered action plan and explicitly ask to validate them in the lab. Each step is classified, executed on the appropriate target (local CLI, Linux VM, Windows VM, Portal, or ARM REST), and returned in a per-step verification report with pass/fail status and output.

How to reproduce a VM user-data or cloud-init issue in a lab environment?▼

Use the scenario lab workflow: build a source VM with the user-data, take a restore point, create a new disk and VM from it, then read a marker file via az vm run-command to prove which init path executed. Everything goes in one dedicated resource group with a teardown manifest.

Can a lab reproduce an unexpected Azure VM reboot?▼

No. Unexpected reboots, host-side failures, and hardware events are platform-side and cannot be manufactured in a lab. Those investigations belong in Kusto/RCA tooling and dashboards; the lab only proves guest-side and resource-lifecycle behavior.

Does az vm run-command require SSH keys or inbound NSG rules?▼

No. az vm run-command executes as root through the Azure guest agent over ARM, so it works on a VM created seconds ago with no SSH key, no inbound port 22 rule, and no public IP. Output is limited to roughly 4 KB, so trim large logs before returning them.

What happens if a command targets a production subscription?▼

Execution stops immediately with an alert. The Skill only runs against the two designated lab subscriptions, and any command referencing another subscription ID is blocked until the user explicitly confirms.

When should I use SSH instead of az vm run-command on a Linux VM?▼

Use run-command by default, especially for freshly built scenario VMs, since it needs no SSH setup and runs as root. Use direct SSH only for long-lived VMs that already have keys and inbound port 22 configured, when you want faster streaming output.