1---2name: azure-lab-services3description: Expert knowledge for Azure Lab Services development including troubleshooting, best practices, decision making, architecture & design patterns, limits & quotas, security, configuration, integrations & coding patterns, and deployment. Use when configuring lab plans, VM templates/schedules, VNet-integrated labs, GPU/nested virtualization, or Canvas/Teams integration, and other Azure Lab Services related development tasks. Not for Azure DevTest Labs (use azure-devtest-labs), Azure Virtual Machines (use azure-virtual-machines), Azure Virtual Desktop (use azure-virtual-desktop).4---5# Azure Lab Services Skill
6
7This skill provides expert guidance for Azure Lab Services. Covers troubleshooting, best practices, decision making, architecture & design patterns, limits & quotas, security, configuration, integrations & coding patterns, and deployment. It combines local quick-reference content with remote documentation fetching capabilities.
8
9## How to Use This Skill
10
11> **IMPORTANT for Agent**: Use the **Category Index** below to locate relevant sections. For categories with line ranges (e.g., `L35-L120`), use `read_file` with the specified lines. For categories with file links (e.g., `[security.md](security.md)`), use `read_file` on the linked reference file
12
13> **IMPORTANT for Agent**: If `metadata.generated_at` is more than 3 months old, suggest the user pull the latest version from the repository. If `mcp_microsoftdocs` tools are not available, suggest the user install it: [Installation Guide](https://github.com/MicrosoftDocs/mcp/blob/main/README.md)
14
15This skill requires **network access** to fetch documentation content:
16- **Preferred**: Use `mcp_microsoftdocs:microsoft_docs_fetch` with query string `from=learn-agent-skill`. Returns Markdown.
17- **Fallback**: Use `fetch_webpage` with query string `from=learn-agent-skill&accept=text/markdown`. Returns Markdown.
18
19## Category Index
20
21| Category | Lines | Description |
22|----------|-------|-------------|
23| Troubleshooting | L37-L44 | Diagnosing and fixing VM access, connectivity, deployment, and lab-creation issues in Azure Lab Services, including when to redeploy or reimage VMs. |
24| Best Practices | L45-L53 | Governance and setup guidance for lab plans, custom images, nested virtualization, Linux graphical RDP, and preparing optimized Windows template VMs in Azure Lab Services |
25| Decision Making | L54-L63 | Guidance on when and how to use Azure Lab Services: choosing lab types, planning migrations (physical or to other services), cost estimation, GPU sizing, and running training or hackathon scenarios. |
26| Architecture & Design Patterns | L64-L70 | Core Azure Lab Services architecture, supported networking topologies, and design patterns for building reliable, resilient lab environments and lab plans |
27| Limits & Quotas | L71-L78 | VM capacity and core quotas for labs, how to view usage, request quota increases, and timelines for automatic VM deletion and cleanup. |
28| Security | L79-L93 | RBAC roles, lab creator/owner assignment, Azure Policy for compliance and VM size limits, firewall and public IP setup, and educator/student VM password management. |
29| Configuration | L94-L124 | Configuring Azure Lab Services: lab plans, regions, images, networking, VM templates, schedules (start/stop/shutdown), capacity, GPU/nested virtualization, and user/educator access. |
30| Integrations & Coding Patterns | L125-L138 | Integrating Lab Services with Canvas and Teams, automating lab creation via Bicep/PowerShell/Python, connecting labs to VNets, and remote access to Linux VMs with X2Go. |
31| Deployment | L139-L148 | Creating and importing Windows/Linux lab VM images (from Azure VMs, physical labs, or compute galleries), rapidly setting up/publishing labs, and migrating lab accounts to lab plans. |
32
33### Troubleshooting
34| Topic | URL |
35|-------|-----|
36| Troubleshoot Azure Lab Services VMs by redeploying or reimaging | https://learn.microsoft.com/en-us/azure/lab-services/how-to-reset-and-redeploy-vm |
37| Troubleshoot access problems for Azure Lab Services VMs | https://learn.microsoft.com/en-us/azure/lab-services/troubleshoot-access-lab-vm |
38| Troubleshoot connectivity issues in Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/troubleshoot-connect-lab-vm |
39| Troubleshoot Azure Lab Services lab creation issues | https://learn.microsoft.com/en-us/azure/lab-services/troubleshoot-lab-creation |
40
41### Best Practices
42| Topic | URL |
43|-------|-----|
44| Administer lab plans and governance for Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/administrator-guide |
45| Recommended approaches for Azure Lab custom images | https://learn.microsoft.com/en-us/azure/lab-services/approaches-for-custom-image-creation |
46| Configure nested virtualization in Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/concept-nested-virtualization-template-vm |
47| Enable graphical remote desktop for Linux labs with optimal performance | https://learn.microsoft.com/en-us/azure/lab-services/how-to-enable-remote-desktop-linux |
48| Best practices for preparing Windows lab templates | https://learn.microsoft.com/en-us/azure/lab-services/how-to-prepare-windows-template |
49
50### Decision Making
51| Topic | URL |
52|-------|-----|
53| Use Azure Lab Services for training scenarios | https://learn.microsoft.com/en-us/azure/lab-services/classroom-labs-scenarios |
54| Choose between lab accounts and lab plans | https://learn.microsoft.com/en-us/azure/lab-services/concept-lab-accounts-versus-lab-plans |
55| Plan migration from physical labs to Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/concept-migrating-physical-labs |
56| Estimate and analyze Azure Lab Services costs | https://learn.microsoft.com/en-us/azure/lab-services/cost-management-guide |
57| Run hackathons using Azure Lab Services environments | https://learn.microsoft.com/en-us/azure/lab-services/hackathon-labs |
58| Choose and configure GPU VM sizes for Azure labs | https://learn.microsoft.com/en-us/azure/lab-services/how-to-setup-lab-gpu |
59
60### Architecture & Design Patterns
61| Topic | URL |
62|-------|-----|
63| Understand Azure Lab Services architecture fundamentals | https://learn.microsoft.com/en-us/azure/lab-services/classroom-labs-fundamentals |
64| Select supported networking architectures for lab plans | https://learn.microsoft.com/en-us/azure/lab-services/concept-lab-services-supported-networking-scenarios |
65| Understand reliability and resiliency in Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/reliability-in-azure-lab-services |
66
67### Limits & Quotas
68| Topic | URL |
69|-------|-----|
70| Review VM capacity limits and quotas for labs | https://learn.microsoft.com/en-us/azure/lab-services/capacity-limits |
71| Determine Azure Lab Services quota and core usage | https://learn.microsoft.com/en-us/azure/lab-services/how-to-determine-your-quota-usage |
72| Request Azure Lab Services core quota increases | https://learn.microsoft.com/en-us/azure/lab-services/how-to-request-capacity-increase |
73| Understand automatic VM deletion policy timelines | https://learn.microsoft.com/en-us/azure/lab-services/vm-deletion-policy |
74
75### Security
76| Topic | URL |
77|-------|-----|
78| Assign Lab Creator role in Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/add-lab-creator |
79| Enforce Azure Lab Services compliance with Azure Policy | https://learn.microsoft.com/en-us/azure/lab-services/azure-polices-for-lab-services |
80| Use Azure RBAC roles with Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/concept-lab-services-role-based-access-control |
81| Map role assignments from lab accounts to lab plans | https://learn.microsoft.com/en-us/azure/lab-services/concept-migrate-from-lab-accounts-roles |
82| Assign Lab Creator role for Azure Lab Services accounts | https://learn.microsoft.com/en-us/azure/lab-services/how-to-add-lab-creator |
83| Add additional lab owners in Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/how-to-add-user-lab-owner |
84| Determine lab VM public IPs for firewall configuration | https://learn.microsoft.com/en-us/azure/lab-services/how-to-configure-firewall-settings |
85| Configure firewall rules for Azure Lab Services lab VMs | https://learn.microsoft.com/en-us/azure/lab-services/how-to-configure-firewall-settings-1 |
86| Set and reset lab VM passwords as an educator | https://learn.microsoft.com/en-us/azure/lab-services/how-to-set-virtual-machine-passwords |
87| Students resetting passwords for Azure Lab Services VMs | https://learn.microsoft.com/en-us/azure/lab-services/how-to-set-virtual-machine-passwords-student |
88| Restrict Azure Lab VM sizes using Azure Policy | https://learn.microsoft.com/en-us/azure/lab-services/how-to-use-restrict-allowed-virtual-machine-sku-sizes-policy |
89
90### Configuration
91| Topic | URL |
92|-------|-----|
93| Allow lab creators to choose lab locations in Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/allow-lab-creator-pick-lab-location |
94| Configure allowed regions for Azure Lab Services labs | https://learn.microsoft.com/en-us/azure/lab-services/create-and-configure-labs-admin |
95| Attach or detach Azure compute galleries to lab plans | https://learn.microsoft.com/en-us/azure/lab-services/how-to-attach-detach-shared-image-gallery |
96| Attach or detach Shared Image Gallery to Azure Lab Services accounts | https://learn.microsoft.com/en-us/azure/lab-services/how-to-attach-detach-shared-image-gallery-1 |
97| Configure auto-shutdown policies for Azure Lab plans | https://learn.microsoft.com/en-us/azure/lab-services/how-to-configure-auto-shutdown-lab-plans |
98| Configure automatic VM shutdown for Azure Lab Services accounts | https://learn.microsoft.com/en-us/azure/lab-services/how-to-configure-lab-accounts |
99| Connect lab plans to virtual networks with VNET injection | https://learn.microsoft.com/en-us/azure/lab-services/how-to-connect-vnet-injection |
100| Create Azure Lab Services labs with shared resources | https://learn.microsoft.com/en-us/azure/lab-services/how-to-create-a-lab-with-shared-resource-1 |
101| Define lab plans with Bicep or ARM templates | https://learn.microsoft.com/en-us/azure/lab-services/how-to-create-lab-plan-bicep |
102| Create a lab plan using Azure PowerShell | https://learn.microsoft.com/en-us/azure/lab-services/how-to-create-lab-plan-powershell |
103| Programmatically create lab plans using Python SDK | https://learn.microsoft.com/en-us/azure/lab-services/how-to-create-lab-plan-python |
104| Create and manage Azure Lab Services VM templates | https://learn.microsoft.com/en-us/azure/lab-services/how-to-create-manage-template |
105| Configure automatic start/stop schedules for lab VMs | https://learn.microsoft.com/en-us/azure/lab-services/how-to-create-schedules |
106| Enable nested virtualization in Azure Lab Services templates | https://learn.microsoft.com/en-us/azure/lab-services/how-to-enable-nested-virtualization-template-vm-using-script |
107| Configure automatic shutdown on user disconnect for labs | https://learn.microsoft.com/en-us/azure/lab-services/how-to-enable-shutdown-disconnect |
108| Create, view, and delete Azure Lab Services lab plans | https://learn.microsoft.com/en-us/azure/lab-services/how-to-manage-lab-plans |
109| Configure and manage Azure Lab Services users and usage hours | https://learn.microsoft.com/en-us/azure/lab-services/how-to-manage-lab-users |
110| Manage Azure Lab Services VM pool capacity and states | https://learn.microsoft.com/en-us/azure/lab-services/how-to-manage-vm-pool |
111| Set up GPU-based labs in Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/how-to-setup-lab-gpu-1 |
112| Configure Windows lab VMs to prevent OS-level shutdown | https://learn.microsoft.com/en-us/azure/lab-services/how-to-windows-shutdown |
113| Allow educators to access student VMs in Azure labs | https://learn.microsoft.com/en-us/azure/lab-services/instructor-access-virtual-machines |
114| Configure support contact information for Azure lab accounts | https://learn.microsoft.com/en-us/azure/lab-services/lab-account-owner-support-information |
115| Quickly configure a lab plan for your school | https://learn.microsoft.com/en-us/azure/lab-services/lab-plan-setup-guide |
116| Azure Policy built-in definitions for Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/policy-reference |
117| Configure allowed Azure Marketplace images for labs | https://learn.microsoft.com/en-us/azure/lab-services/specify-marketplace-images |
118| Specify allowed Marketplace images for Azure Lab Services labs | https://learn.microsoft.com/en-us/azure/lab-services/specify-marketplace-images-1 |
119| Configure advanced networking for Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/tutorial-create-lab-with-advanced-networking |
120
121### Integrations & Coding Patterns
122| Topic | URL |
123|-------|-----|
124| Connect to Linux lab VMs using X2Go | https://learn.microsoft.com/en-us/azure/lab-services/connect-virtual-machine-linux-x2go |
125| Configure Canvas LMS integration with Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/how-to-configure-canvas-for-lab-plans |
126| Configure Microsoft Teams integration with Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/how-to-configure-teams-for-lab-plans |
127| Connect Azure Lab Services labs to peer virtual networks | https://learn.microsoft.com/en-us/azure/lab-services/how-to-connect-peer-virtual-network |
128| Provision Azure Lab Services labs with Bicep templates | https://learn.microsoft.com/en-us/azure/lab-services/how-to-create-lab-bicep |
129| Create Azure Lab Services labs using PowerShell Az module | https://learn.microsoft.com/en-us/azure/lab-services/how-to-create-lab-powershell |
130| Create Azure Lab Services labs using the Python SDK | https://learn.microsoft.com/en-us/azure/lab-services/how-to-create-lab-python |
131| Integrate Azure Lab Services with Canvas LMS | https://learn.microsoft.com/en-us/azure/lab-services/lab-services-within-canvas-overview |
132| Integrate Azure Lab Services with Microsoft Teams | https://learn.microsoft.com/en-us/azure/lab-services/lab-services-within-teams-overview |
133| Use the Az.LabServices PowerShell module for Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/reference-powershell-module |
134
135### Deployment
136| Topic | URL |
137|-------|-----|
138| Import Linux custom images from Azure VMs into labs | https://learn.microsoft.com/en-us/azure/lab-services/how-to-bring-custom-linux-image-azure-vm |
139| Import Linux images from physical labs into Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/how-to-bring-custom-linux-image-vhd |
140| Create Azure Lab Services labs from Windows VM images | https://learn.microsoft.com/en-us/azure/lab-services/how-to-bring-custom-windows-image-azure-vm |
141| Migrate Azure Lab Services accounts to lab plans | https://learn.microsoft.com/en-us/azure/lab-services/how-to-migrate-lab-acounts-to-lab-plans |
142| Use Azure compute galleries to provide lab VM images | https://learn.microsoft.com/en-us/azure/lab-services/how-to-use-shared-image-gallery |
143| Rapidly create and publish a lab for students | https://learn.microsoft.com/en-us/azure/lab-services/setup-guide |
144| Import Windows images from physical labs into Azure Lab Services | https://learn.microsoft.com/en-us/azure/lab-services/upload-custom-image-shared-image-gallery |