This guide explains how to move from lab accounts to the August update lab plan. We’ll identify which version of the service is being used, discuss some of the differences, and move a lab account to a lab plan.
How can you identify if you are using the newest version?
The easiest way to identify if you are using the latest version is to look in the Azure portal. Labs are visible as resources if you are using lab plans.
How much of a change are lab plan-based labs for educators and students?
While there are a lot of improvements, almost all these changes are not visible to the educator or student. The two version of lab services can live side by side; the educators will see both types of labs in the Labs.Azure.com portal. The students will see all their VMs in the same view, regardless of whether the lab is associated with a lab plan or lab account.
Can I move all my existing resources to the newer version?
Behind the scenes there are custom roles, which we’ll discuss later in the document.
The team worked hard to keep a consistent user experience for educators and students. There are significant updates to the service itself. You can learn more about these distinctions in the Azure Lab Services documentation.
Transition from lab accounts to lab plans
Let’s walk through the recommended next steps for moving from an existing lab account to a lab plan.
Review existing lab account
In your existing lab account, some of the key items to identify are:
Is it peered with a network?
The network information is in the Lab account – Lab Settings. This feature will need to be set up during lab plan creation.
What regions are the labs in? or should be?
Lab plans allow more specific control of regions, but the specific regions need to be set in the lab plan. While lab accounts don’t have specific Azure regions and there isn’t a direct correlation between the two.
Is there an Azure Compute Gallery (Shared Image gallery)?
Multiple lab accounts and lab plans can be connected to a gallery and use the same images simultaneously. The gallery will need to be connected to the lab plan, so labs can use the existing images. Don't forget to enable the images for the new lab plan!
How many VMs and what size are you using in the labs under the specific lab account?
Are or would you want labs to be integrated with Teams or Canvas LMS?
Review Resource Group
This is a noticeable change between lab accounts and lab plans. The resource group is more significant when creating labs. It identifies which lab plans are available as a template. In action, the lab creator will select the resource group name in the Labs.Azure.com portal, then when creating a lab select the lab plan in that resource group to be the template.
Start creating a lab plan
The easiest way to is to start creating a new lab plan in the resource group from above.
The first items are the name and the region when creating a lab plan. Lab accounts and lab plans are different types of Azure resources so you can use the same name on the lab plan as your existing lab account name. There is a Naming section in the Administrators guide, if you have questions.
The region you select is the default region that labs can be created in, you can add additional regions after creation.
Advanced networking
If your existing lab account isn’t peered to an Azure Virtual Network skip to the next section. The networking information can be found under Lab Settings – Networking.
In the case where your existing lab account has been peered to a virtual network, lab plans use a different and more flexible connection commonly called “vnet injection”. Both a lab account and lab plan can be connected to the same virtual network as they use different connection types and IP ranges. In the case of a simple licensing server with a virtual network peered to an existing lab account, you can follow these steps to connect to a lab plan.
Create a new subnet for the lab plan.
Delegate the subnet to Microsoft labs.
Add a network security group to allow RDP and SSH access.
Connect virtual network and subnet to Lab Plan.
Depending on the configuration of the virtual network this may be more complex and require adjusting the virtual network. There are specific documents on how to use advanced networking.
Complete creation and request quota
At this point you can finish the lab plan creation; additional changes will need to be made once the lab plan has finished creating.
Lab plans use a new capacity management system, so once the lab plan is created. As the initial number of cores in a lab plan is limited, you should request a limit increase to match what you are using with the current labs in the lab account you are moving. Existing cores in the lab account will NOT be available in the lab plan. The limit increase will need to know which region for the additional cores (see below).
Enable regions
Enabling multiple regions is not required, if you don’t need or want multiple regions continue to the next section. Lab accounts used "geolocations", but Lab plan use Azure Regions.
If you need labs in different regions, you will need to explicitly enable those regions. This can be changed in the Lab Plan – Settings – Enabled Regions. Having multiple regions is not a requirement, you can request cores in a single region and have all the labs in that region. With lab accounts you would select “generalized” regions and the service would select Azure regions depending on need and availability. There isn’t a direct correlation between lab account regions and lab plan regions.
Attach existing Azure Compute Gallery
If the existing lab account does not have an Azure Compute gallery, continue to the next section.
The existing Azure Compute gallery (formerly Shared Image Gallery) can be attached to both a lab account and a lab plan simultaneously. This is in the Lab Plan – Azure Compute Gallery – Attach existing gallery. The images created using labs in the lab account can be used to create labs with a lab plan. There reverse is not true, Labs under a Lab Account cannot use the Lab Plan created mages as Lab Plan based labs support Generation 2 vms.
Images created using Lab Account based labs CAN be used in Lab Plan based labs.
Images created using Lab Plan based labs CANNOT be used in Lab Account based labs.
Roles
If the subscription, resource group, or lab account only has built-in roles add the appropriate roles to the same resource.
If there are custom roles created for the lab account, you will need to review them and determine if one of the new built-in roles can be used instead. If the built-in roles don’t meet your needs, existing roles can be updated to add Microsoft.LabServices/labplans and Microsoft.LabServices/labs actions. If you are unsure of which actions, it is recommended to clone a Lab Services role and adjusting as necessary.
With that the new lab plan will have the same functionality as the lab account and new labs can be created using it.
Additional information
If there is any supporting code for managing or updating lab accounts, the code will need to be changed to support lab plans and the new model. For more details on the specific languages. Below are links to the different models and code.
"}},"componentScriptGroups({\"componentId\":\"custom.widget.MicrosoftFooter\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarDropdownToggle\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/QueryHandler\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageCoverImage\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageCoverImage-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeTitle\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeTitle-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTimeToRead\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTimeToRead-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSubject\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSubject-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserLink-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserRank\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserRank-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTime\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTime-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageBody\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageBody-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageCustomFields\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageCustomFields-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageRevision\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageRevision-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageReplyButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageReplyButton-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageAuthorBio\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageAuthorBio-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/ranks/UserRankLabel\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserRegistrationDate\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserRegistrationDate-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeDescription\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"components/tags/TagView/TagViewChip\"]})":[{"__ref":"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1744658874145"}],"cachedText({\"lastModified\":\"1744658874145\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeIcon\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1744658874145"}]},"CachedAsset:pages-1744410786393":{"__typename":"CachedAsset","id":"pages-1744410786393","value":[{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"UserBlogPermissions.Page","type":"COMMUNITY","urlPath":"/c/user-blog-permissions/page","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730142000000,"localOverride":null,"page":{"id":"AllEvents","type":"CUSTOM","urlPath":"/Events","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"MaintenancePage","type":"COMMUNITY","urlPath":"/maintenance","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730142000000,"localOverride":null,"page":{"id":"CommunityHub.Page","type":"CUSTOM","urlPath":"/Directory","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730142000000,"localOverride":null,"page":{"id":"AllBlogs.Page","type":"CUSTOM","urlPath":"/blogs","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744410786393,"localOverride":null,"page":{"id":"GroupHubPostPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"}],"localOverride":false},"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0":{"__typename":"CachedAsset","id":"text:en_US-components/context/AppContext/AppContextProvider-0","value":{"noCommunity":"Cannot find community","noUser":"Cannot find current user","noNode":"Cannot find node with id {nodeId}","noMessage":"Cannot find message with id {messageId}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-0","value":{"title":"Loading..."},"localOverride":false},"User:user:-1":{"__typename":"User","id":"user:-1","uid":-1,"login":"Deleted","email":"","avatar":null,"rank":null,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":"ANONYMOUS","registrationTime":null,"confirmEmailStatus":false,"registrationAccessLevel":"VIEW","ssoRegistrationFields":[]},"ssoId":null,"profileSettings":{"__typename":"ProfileSettings","dateDisplayStyle":{"__typename":"InheritableStringSettingWithPossibleValues","key":"layout.friendly_dates_enabled","value":"false","localValue":"true","possibleValues":["true","false"]},"dateDisplayFormat":{"__typename":"InheritableStringSetting","key":"layout.format_pattern_date","value":"MMM dd yyyy","localValue":"MM-dd-yyyy"},"language":{"__typename":"InheritableStringSettingWithPossibleValues","key":"profile.language","value":"en-US","localValue":"en","possibleValues":["en-US"]}},"deleted":false},"Theme:customTheme1":{"__typename":"Theme","id":"customTheme1"},"Category:category:EducationSector":{"__typename":"Category","id":"category:EducationSector","entityType":"CATEGORY","displayId":"EducationSector","nodeType":"category","depth":3,"title":"Education Sector","shortTitle":"Education Sector","parent":{"__ref":"Category:category:solutions"},"categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:top":{"__typename":"Category","id":"category:top","displayId":"top","nodeType":"category","depth":0,"title":"Top","entityType":"CATEGORY","shortTitle":"Top"},"Category:category:communities":{"__typename":"Category","id":"category:communities","displayId":"communities","nodeType":"category","depth":1,"parent":{"__ref":"Category:category:top"},"title":"Communities","entityType":"CATEGORY","shortTitle":"Communities"},"Category:category:solutions":{"__typename":"Category","id":"category:solutions","displayId":"solutions","nodeType":"category","depth":2,"parent":{"__ref":"Category:category:communities"},"title":"Topics","entityType":"CATEGORY","shortTitle":"Topics"},"Blog:board:AzureLabServicesBlog":{"__typename":"Blog","id":"board:AzureLabServicesBlog","entityType":"BLOG","displayId":"AzureLabServicesBlog","nodeType":"board","depth":4,"conversationStyle":"BLOG","title":"Azure Lab Services Blog","description":"","avatar":null,"profileSettings":{"__typename":"ProfileSettings","language":null},"parent":{"__ref":"Category:category:EducationSector"},"ancestors":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:gxcuf89792"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:communities"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:solutions"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:EducationSector"}}]},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"boardPolicies":{"__typename":"BoardPolicies","canPublishArticleOnCreate":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","args":[]}}},"shortTitle":"Azure Lab Services Blog","repliesProperties":{"__typename":"RepliesProperties","sortOrder":"REVERSE_PUBLISH_TIME","repliesFormat":"threaded"},"tagProperties":{"__typename":"TagNodeProperties","tagsEnabled":{"__typename":"PolicyResult","failureReason":null}},"requireTags":true,"tagType":"PRESET_ONLY"},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc","height":512,"width":512,"mimeType":"image/png"},"Rank:rank:4":{"__typename":"Rank","id":"rank:4","position":6,"name":"Microsoft","color":"333333","icon":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc\"}"},"rankStyle":"OUTLINE"},"User:user:736675":{"__typename":"User","id":"user:736675","uid":736675,"login":"RogerBestMSFT","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/dS03MzY2NzUtMjA5MTMxaUUxNUY3RDRGQzY5MkEwQTg"},"rank":{"__ref":"Rank:rank:4"},"email":"","messagesCount":25,"biography":null,"topicsCount":7,"kudosReceivedCount":14,"kudosGivenCount":0,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2020-07-22T09:57:03.887-07:00","confirmEmailStatus":null},"followersCount":null,"solutionsCount":6},"BlogTopicMessage:message:3601579":{"__typename":"BlogTopicMessage","uid":3601579,"subject":"Moving from Lab account to Lab plan","id":"message:3601579","revisionNum":11,"repliesCount":0,"author":{"__ref":"User:user:736675"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Blog:board:AzureLabServicesBlog"},"conversation":{"__ref":"Conversation:conversation:3601579"},"messagePolicies":{"__typename":"MessagePolicies","canPublishArticleOnEdit":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_edit_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_edit_workflow_action.accessDenied","args":[]}},"canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"contentWorkflow":{"__typename":"ContentWorkflow","state":"PUBLISH","scheduledPublishTime":null,"scheduledTimezone":null,"userContext":{"__typename":"MessageWorkflowContext","canSubmitForReview":null,"canEdit":false,"canRecall":null,"canSubmitForPublication":null,"canReturnToAuthor":null,"canPublish":null,"canReturnToReview":null,"canSchedule":false},"shortScheduledTimezone":null},"readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:3601579"},"teaser":"
Steps to move from an existing Azure Lab Services Lab account to Lab plan.
","body":"
This guide explains how to move from lab accounts to the August update lab plan. We’ll identify which version of the service is being used, discuss some of the differences, and move a lab account to a lab plan.
\n
\n
How can you identify if you are using the newest version?
\n
The easiest way to identify if you are using the latest version is to look in the Azure portal. Labs are visible as resources if you are using lab plans.
\n
\n
\n
How much of a change are lab plan-based labs for educators and students?
\n
While there are a lot of improvements, almost all these changes are not visible to the educator or student. The two version of lab services can live side by side; the educators will see both types of labs in the Labs.Azure.com portal. The students will see all their VMs in the same view, regardless of whether the lab is associated with a lab plan or lab account.
\n
\n
\n
Can I move all my existing resources to the newer version?
\n
Behind the scenes there are custom roles, which we’ll discuss later in the document.
\n
The team worked hard to keep a consistent user experience for educators and students. There are significant updates to the service itself. You can learn more about these distinctions in the Azure Lab Services documentation.
\n
Transition from lab accounts to lab plans
\n
Let’s walk through the recommended next steps for moving from an existing lab account to a lab plan.
\n
Review existing lab account
\n
In your existing lab account, some of the key items to identify are:
\n\n
Is it peered with a network?\n\n
The network information is in the Lab account – Lab Settings. This feature will need to be set up during lab plan creation.
\n\n
\n
What regions are the labs in? or should be?\n\n
Lab plans allow more specific control of regions, but the specific regions need to be set in the lab plan. While lab accounts don’t have specific Azure regions and there isn’t a direct correlation between the two.
\n\n
\n
Is there an Azure Compute Gallery (Shared Image gallery)?\n\n
Multiple lab accounts and lab plans can be connected to a gallery and use the same images simultaneously. The gallery will need to be connected to the lab plan, so labs can use the existing images. Don't forget to enable the images for the new lab plan!
How many VMs and what size are you using in the labs under the specific lab account?
\n
Are or would you want labs to be integrated with Teams or Canvas LMS?
\n\n
\n
Review Resource Group
\n
\n
This is a noticeable change between lab accounts and lab plans. The resource group is more significant when creating labs. It identifies which lab plans are available as a template. In action, the lab creator will select the resource group name in the Labs.Azure.com portal, then when creating a lab select the lab plan in that resource group to be the template.
\n
Start creating a lab plan
\n
The easiest way to is to start creating a new lab plan in the resource group from above.
\n
The first items are the name and the region when creating a lab plan. Lab accounts and lab plans are different types of Azure resources so you can use the same name on the lab plan as your existing lab account name. There is a Naming section in the Administrators guide, if you have questions.
\n
The region you select is the default region that labs can be created in, you can add additional regions after creation.
\n
Advanced networking
\n
If your existing lab account isn’t peered to an Azure Virtual Network skip to the next section. The networking information can be found under Lab Settings – Networking.
\n
\n
\n
In the case where your existing lab account has been peered to a virtual network, lab plans use a different and more flexible connection commonly called “vnet injection”. Both a lab account and lab plan can be connected to the same virtual network as they use different connection types and IP ranges. In the case of a simple licensing server with a virtual network peered to an existing lab account, you can follow these steps to connect to a lab plan.
\n
\n
Create a new subnet for the lab plan.
\n
Delegate the subnet to Microsoft labs.
\n
Add a network security group to allow RDP and SSH access.
\n
Connect virtual network and subnet to Lab Plan.
\n
\n
Depending on the configuration of the virtual network this may be more complex and require adjusting the virtual network. There are specific documents on how to use advanced networking.
\n
Complete creation and request quota
\n
At this point you can finish the lab plan creation; additional changes will need to be made once the lab plan has finished creating.
\n
\n
Lab plans use a new capacity management system, so once the lab plan is created. As the initial number of cores in a lab plan is limited, you should request a limit increase to match what you are using with the current labs in the lab account you are moving. Existing cores in the lab account will NOT be available in the lab plan. The limit increase will need to know which region for the additional cores (see below).
\n
\n
Enable regions
\n
Enabling multiple regions is not required, if you don’t need or want multiple regions continue to the next section. Lab accounts used \"geolocations\", but Lab plan use Azure Regions.
\n
If you need labs in different regions, you will need to explicitly enable those regions. This can be changed in the Lab Plan – Settings – Enabled Regions. Having multiple regions is not a requirement, you can request cores in a single region and have all the labs in that region. With lab accounts you would select “generalized” regions and the service would select Azure regions depending on need and availability. There isn’t a direct correlation between lab account regions and lab plan regions.
\n
Attach existing Azure Compute Gallery
\n
If the existing lab account does not have an Azure Compute gallery, continue to the next section.
\n
The existing Azure Compute gallery (formerly Shared Image Gallery) can be attached to both a lab account and a lab plan simultaneously. This is in the Lab Plan – Azure Compute Gallery – Attach existing gallery. The images created using labs in the lab account can be used to create labs with a lab plan. There reverse is not true, Labs under a Lab Account cannot use the Lab Plan created mages as Lab Plan based labs support Generation 2 vms.
\n
\n
Images created using Lab Account based labs CAN be used in Lab Plan based labs.
\n
Images created using Lab Plan based labs CANNOT be used in Lab Account based labs.
\n
\n
Roles
\n
If the subscription, resource group, or lab account only has built-in roles add the appropriate roles to the same resource.
\n
If there are custom roles created for the lab account, you will need to review them and determine if one of the new built-in roles can be used instead. If the built-in roles don’t meet your needs, existing roles can be updated to add Microsoft.LabServices/labplans and Microsoft.LabServices/labs actions. If you are unsure of which actions, it is recommended to clone a Lab Services role and adjusting as necessary.
With that the new lab plan will have the same functionality as the lab account and new labs can be created using it.
\n
Additional information
\n
If there is any supporting code for managing or updating lab accounts, the code will need to be changed to support lab plans and the new model. For more details on the specific languages. Below are links to the different models and code.
There is a Lab Services repository with additional samples on managing lab plan-based version of labs.
","body@stringLength":"14227","rawBody":"
This guide explains how to move from lab accounts to the August update lab plan. We’ll identify which version of the service is being used, discuss some of the differences, and move a lab account to a lab plan.
\n
\n
How can you identify if you are using the newest version?
\n
The easiest way to identify if you are using the latest version is to look in the Azure portal. Labs are visible as resources if you are using lab plans.
\n
\n
\n
How much of a change are lab plan-based labs for educators and students?
\n
While there are a lot of improvements, almost all these changes are not visible to the educator or student. The two version of lab services can live side by side; the educators will see both types of labs in the Labs.Azure.com portal. The students will see all their VMs in the same view, regardless of whether the lab is associated with a lab plan or lab account.
\n
\n
\n
Can I move all my existing resources to the newer version?
\n
Behind the scenes there are custom roles, which we’ll discuss later in the document.
\n
The team worked hard to keep a consistent user experience for educators and students. There are significant updates to the service itself. You can learn more about these distinctions in the Azure Lab Services documentation.
\n
Transition from lab accounts to lab plans
\n
Let’s walk through the recommended next steps for moving from an existing lab account to a lab plan.
\n
Review existing lab account
\n
In your existing lab account, some of the key items to identify are:
\n\n
Is it peered with a network?\n\n
The network information is in the Lab account – Lab Settings. This feature will need to be set up during lab plan creation.
\n\n
\n
What regions are the labs in? or should be?\n\n
Lab plans allow more specific control of regions, but the specific regions need to be set in the lab plan. While lab accounts don’t have specific Azure regions and there isn’t a direct correlation between the two.
\n\n
\n
Is there an Azure Compute Gallery (Shared Image gallery)?\n\n
Multiple lab accounts and lab plans can be connected to a gallery and use the same images simultaneously. The gallery will need to be connected to the lab plan, so labs can use the existing images. Don't forget to enable the images for the new lab plan!
How many VMs and what size are you using in the labs under the specific lab account?
\n
Are or would you want labs to be integrated with Teams or Canvas LMS?
\n\n
\n
Review Resource Group
\n
\n
This is a noticeable change between lab accounts and lab plans. The resource group is more significant when creating labs. It identifies which lab plans are available as a template. In action, the lab creator will select the resource group name in the Labs.Azure.com portal, then when creating a lab select the lab plan in that resource group to be the template.
\n
Start creating a lab plan
\n
The easiest way to is to start creating a new lab plan in the resource group from above.
\n
The first items are the name and the region when creating a lab plan. Lab accounts and lab plans are different types of Azure resources so you can use the same name on the lab plan as your existing lab account name. There is a Naming section in the Administrators guide, if you have questions.
\n
The region you select is the default region that labs can be created in, you can add additional regions after creation.
\n
Advanced networking
\n
If your existing lab account isn’t peered to an Azure Virtual Network skip to the next section. The networking information can be found under Lab Settings – Networking.
\n
\n
\n
In the case where your existing lab account has been peered to a virtual network, lab plans use a different and more flexible connection commonly called “vnet injection”. Both a lab account and lab plan can be connected to the same virtual network as they use different connection types and IP ranges. In the case of a simple licensing server with a virtual network peered to an existing lab account, you can follow these steps to connect to a lab plan.
\n
\n
Create a new subnet for the lab plan.
\n
Delegate the subnet to Microsoft labs.
\n
Add a network security group to allow RDP and SSH access.
\n
Connect virtual network and subnet to Lab Plan.
\n
\n
Depending on the configuration of the virtual network this may be more complex and require adjusting the virtual network. There are specific documents on how to use advanced networking.
\n
Complete creation and request quota
\n
At this point you can finish the lab plan creation; additional changes will need to be made once the lab plan has finished creating.
\n
\n
Lab plans use a new capacity management system, so once the lab plan is created. As the initial number of cores in a lab plan is limited, you should request a limit increase to match what you are using with the current labs in the lab account you are moving. Existing cores in the lab account will NOT be available in the lab plan. The limit increase will need to know which region for the additional cores (see below).
\n
\n
Enable regions
\n
Enabling multiple regions is not required, if you don’t need or want multiple regions continue to the next section. Lab accounts used \"geolocations\", but Lab plan use Azure Regions.
\n
If you need labs in different regions, you will need to explicitly enable those regions. This can be changed in the Lab Plan – Settings – Enabled Regions. Having multiple regions is not a requirement, you can request cores in a single region and have all the labs in that region. With lab accounts you would select “generalized” regions and the service would select Azure regions depending on need and availability. There isn’t a direct correlation between lab account regions and lab plan regions.
\n
Attach existing Azure Compute Gallery
\n
If the existing lab account does not have an Azure Compute gallery, continue to the next section.
\n
The existing Azure Compute gallery (formerly Shared Image Gallery) can be attached to both a lab account and a lab plan simultaneously. This is in the Lab Plan – Azure Compute Gallery – Attach existing gallery. The images created using labs in the lab account can be used to create labs with a lab plan. There reverse is not true, Labs under a Lab Account cannot use the Lab Plan created mages as Lab Plan based labs support Generation 2 vms.
\n
\n
Images created using Lab Account based labs CAN be used in Lab Plan based labs.
\n
Images created using Lab Plan based labs CANNOT be used in Lab Account based labs.
\n
\n
Roles
\n
If the subscription, resource group, or lab account only has built-in roles add the appropriate roles to the same resource.
\n
If there are custom roles created for the lab account, you will need to review them and determine if one of the new built-in roles can be used instead. If the built-in roles don’t meet your needs, existing roles can be updated to add Microsoft.LabServices/labplans and Microsoft.LabServices/labs actions. If you are unsure of which actions, it is recommended to clone a Lab Services role and adjusting as necessary.
With that the new lab plan will have the same functionality as the lab account and new labs can be created using it.
\n
Additional information
\n
If there is any supporting code for managing or updating lab accounts, the code will need to be changed to support lab plans and the new model. For more details on the specific languages. Below are links to the different models and code.