- 13 Sep 2024
- 17 Minutes to read
- Print
Transition Lab Definitions
- Updated on 13 Sep 2024
- 17 Minutes to read
- Print
In this article, you will identify the process for migrating existing Azure Lab definitions to Skillable. Skillable supports both a way to import labs as a JSON definition as well as a manual creation process directly navigating through Skillable Studio. As part of your transition process, you can choose to either use the same VM Images your labs have been using or change them out for new ones. If rather than transition anything existing, you would like to start completely from scratch - learn more about how to Create & Configure Labs.
Cloud Subscription Pool Required
While aspects of this process can be completed without a Cloud Subscription Pool configured in your Skillable Studio organization, some steps require that the Determine Cloud Subscription(s) to Use process has already been completed.
Labs can be fully transitioned with only read-access into Azure labs/lab plans and lab developer access into Skillable Studio. Additionally, Skillable has provided a script that can be executed by anyone with access to Azure Cloud Shell to expedite this process. The Cloud Shell script operates in 2 ways, as a full export into a Skillable-import package and as a data-only export to speed up the manual process in the event the exported data of a given lab does not import cleanly into Skillable Studio.
In this process, you will:
Extract Lab Data from Azure
Lab Plans Only
This script is engineered to function with Lab Plans only. If you are using lab accounts, you will need to use the manual process or Create & Configure Labs from scratch.
To simplify the determination and mapping of Azure Labs settings to Skillable Studio settings, we have created a PowerShell script you can execute directly within Azure Cloud Shell. To get this data, complete the following steps:
Activate Azure Cloud Shell
Login to the Azure Portal.
Confirm you are in the tenant you would like to transition labs from.
Open Azure Cloud Shell.
If this is your first time opening Cloud Shell, you may have some one-time setup to do - configure this to your choosing.
Ensure you are in the Powershell mode - your experience should look similar to one of the two screenshots below, depending on if you are in the new or classic Cloud Shell.
Run Lab Export Script
Execute the below command:
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/James-Burnham/docs/James-Burnham-patch-1/lod/quick-starts/cloud-slice/als-export.ps1'))
As the script processes it will prompt you for the following responses:
When this prompt appears, validate the tenant it shows you is the appropriate one with the images you would like to transition. If it is, press enter to continue.
When this prompt appears, consider if you want to allow extensions in your labs. These allow lab users to extend their time in the lab by up to 50% (for example, in a 2 hour lab they could stay active for 3 hours). Skillable supports this free of charge, however you will still be liable for any Azure charges during this extended time.
You will see this prompt once for each lab you are migrating. When you do, provide the admin (or non-admin, as specified by the prompt) password for the virtual machine. For security purposes Azure does not allow extraction of this piece of data so it must be provided manually.
When the script is complete, you will see a “Download File” pop up. Select the Lab_Export.zip to download a Zip archive with the labs ready for input to Skillable Studio.
Re-Download Zip
If you ever have a need to re-download the Zip file, you can return to Cloud Shell at any time and execute
download ./Labs_Export.zip
(this command is case sensitive).Any time you run this script all past data is purged from Cloud Shell.
Quick Import
Lab Plans Only
The script above is engineered to function with Lab Plans only. If you are using lab accounts, you will need to use the manual process or Create & Configure Labs from scratch.
Now that you have extracted the lab data from Azure, you are ready to get it loaded into Skillable Studio! When doing so, there are 2 components we will validate imported properly and modify accordingly: the Lab Profile and Virtual Machine Profile.
Lab Profile Import & Configuration
In addition to completing the initial import of the lab profile, you must also assign the Azure Datacenter(s) the lab can launch from and the Cloud Subscription Pool the lab will use. Additionally, it is recommended to review several other settings you may want to modify from their default or what was being utilized in Azure Labs.
Navigate to the Labs_Export.zip file you downloaded from Azure and extract it.
Within the extracted folder you should see a labs folder, and within that a CSV and a number of Zip Files that match the number of labs you have.
In the automated import, we will not be using the CSV - however it is provided so you have the datapoints if something doesn’t properly import and you need to use the manual import process.
Login to Skillable Studio and navigate to the Admin screen.
Find and select Create Lab Series.
Name the Lab Series Azure Lab Services Imports, do not worry about configuring any other settings yet.
For each lab zip file in your Labs_Export folder, perform the following steps:
On the Lab Series page, select Import Lab Profile.
Using the file picker, navigate to and select the lab zip file, then select Import.
If you receive an error on import, consider the Manual Import process for that lab.
If the lab appears to import properly, but you get an error when selecting the Launch button - this is expected behavior. There are a few steps left to accomplish.
Once the lab has imported, select Edit Profile review the following settings:
Setting
Location
Description
Number
Basic Information
Configure this to anything you’d like. This is often viewed as the “lab code” and represents a short hand way reference to the lab other than it’s name.
Duration
Basic Information
Ensure this is set to the appropriate desired, especially if you have enabled Prompt User to Extend Time.
Prompt User to Extend Time
Basic Information
If you have enabled this setting, consider the # Minutes and Minutes Remaining values for this setting. Make sure they align with your intended use case.
Description
Basic Information
Optional Metadata that can be added (and also retrieved over API) to provide added context about the lab. If the lab in Azure had a description, this should be populated already.
Owner Name & Email
Basic Information
This associates the lab with a specific person as the Owner and provides contact information for either Skillable Support or other internal peers if an issue is identified with the lab.
Datacenter Availability
(Do Not Skip)
Cloud
Configure whatever regions you would like this lab to be able to be delivered in. This enables the labs to use Geolocation so they deploy in the region closest to the user.
NOTE: Compute Gallery images must be replicated in all selected regions.Subscription Pool
(Do Not Skip)Cloud
Select the subscription pool associated with your organization for these labs to deploy in.
Resource Group
Cloud
When Skillable deploys user virtual machines, they will be in a resource group with a format of {prefix}-#####. A default prefix has been added, but this can be changed to a value of your choosing.
NOTE: You do not need to add any permissions, templates, or policies.
User Save & Cancel Options
Advanced
Ensure these settings align with the desired values for your organization. The following are pre-populated based on similar values in the original Azure Lab:
Save/Cancel Labs When Last Lab Client Heartbeat Exceeds:
Azure’s Shutdown virtual machines when users disconnectSave/Cancel Labs When Last Activity Exceeds:
Azure’s Shutdown idle virtual machinesActivity Required to Enable Auto-Save:
Azure’s Shutdown virtual machines when users do not connect
Learn more about Cost Controls for Cloud Labs.
Publish to Organization Template Gallery
Advanced
Enable this setting to make the lab a template that appears in the template gallery to function as a quicker starting point for other lab developers.
NOTE: Only Lab Administrators can enable or disable this option.
When your lab is configured properly, Save your changes.
Configure Datacenter & Cloud Subscription Pool
Make sure to configure the Datacenter & Cloud Subscription Pool on every lab you import, otherwise they will fail to launch.
Virtual Machine Profile Configuration
Once your Lab Profile is properly configured, you should validate that the Virtual Machine Profile is also configured correct.
From the Lab Profile details page, scroll down to the Virtual Machines section and select the VM.
Open the provided AllLabs.csv file.
Edit the VM Profile and configure the following settings on the Basic Information tab:
Setting
Description
Description
Optionally provide a detailed description of what makes this VM unique.
Machine Type
Select the Azure VM SKU that best fits your needs. The import process tried to pick an appropriate one based on your Azure lab configuration but may not be exactly the same or there may be other sizes your organization prefers.
Disk Type
By default, to keep costs low all labs are imported on Standard HDDs. If you would like faster launch times or other operations, you may change this to one of the SSD options, this will result in added costs to the VM deployment. Learn more about Azure Disk Types.
Use Image Library
If your VM is going to use an image in the Compute Gallery, select this option.
The original setting can be identified in the CSV.
Machine Image
If your VM is using the Compute Gallery, specify the Image Definition and Image Version. The original image can be identified in the CSV.
Use Azure Marketplace Image
If your VM is going to use an image from Azure Marketplace, select this option.
The original setting can be identified in the CSV.Marketplace Image Details
If your VM is using the Azure Marketplace, specify the Publisher ID, Product ID, and Plan ID. The original image information can be identified in the CSV. If this information is missing or you wish to use a different image, identify this information in Azure.
Operating System
Select the Operating System that best aligns with the machine image you are using. This ensures Skillable Studio uses the correct connection type. For example, if you select Windows and the VM is Linux - there may be issues connecting.
Username & Password
Specify the username and password you would like presented to the student.
NOTE: While Azure Labs supported both admin and non-admin credentials (both are provided in the CSV), only a single set of credentials can be specified in Skillable Studio. If you would like to provide non-Admin credentials to the student, but keep Admin Credentials documented for other developers, use the Internal Notes tab on the VM profile.
Screen Width & Height
Change this if you want the default screen size to be different on lab launch.
NOTE: We recommend leaving this at 1024Ă—768 to account for smaller screens, after launch users can easily resize the VM to match their screen.Redirect Clipboard
Leave this enabled to allow users to freely copy/paste between the virtual machine and their local computer. Disable if you do not want users to copy/paste to or from the virtual machine.
Allow Desktop Wallpaper
Enable this to properly display the VM’s configured desktop wallpaper. If this is disabled, the wallpaper will appear solid black. For users with an already poor connection, this can further impact their connection quality to the VM.
When your VM is configured properly, Save your changes.
To test that your lab is functioning properly, return to the lab profile the VM belongs and Launch.
Manual Import
If you have trouble with the automated import on any labs, are using lab accounts, or just prefer to manually import your labs, the below process will assist with your migration to Skillable. Just as with the Automated Import, this process will result in a single Lab Profile and Virtual Machine Profile per Azure lab. However, if multiple labs need to use the exact same underlying environment - you can use a single virtual machine profile in multiple labs, leaving you less things to manage in the system.
Virtual Machine Configuration
Before creating a Lab Profile, we will make sure we have a virtual machine to add to the lab profile once complete.
Ensure you are logged into both the Azure Portal and Skillable Studio.
In the Azure Portal, navigate to one of the VM Images you’d like to use.
In Skillable Studio, if your Azure Lab Services Imports Lab Series already exists, navigate to it and skip to step 7.
If your Imports Lab Series does not exist, navigate to the Admin screen.
Find and select Create Lab Series.
Name the Lab Series Azure Lab Services Imports, do not worry about configuring any other settings yet.
From the Lab Series screen, select + Create Virtual Machine Profile and configure the following settings on the Basic Information tab:
Setting
Description
Name
Provide the Virtual Machine a descriptive name.
Description
Optionally provide a detailed description of what makes this VM unique.
Machine Type
Select the Azure VM SKU that best fits your needs.
Disk Type
By default, to keep costs low all labs use Standard HDDs. If you would like faster launch times or other operations, you may change this to one of the SSD options, this will result in added costs to the VM deployment. Learn more about Azure Disk Types.
Use Image Library
If your VM is going to use an image in the Compute Gallery, select this option.
Machine Image
If your VM is using the Compute Gallery, specify the Image Definition and Image Version.
Use Azure Marketplace Image
If your VM is going to use an image from Azure Marketplace, select this option.
Marketplace Image Details
If your VM was using the Azure Marketplace, specify the Publisher ID, Product ID, and Plan ID. Use the Azure Portal to identify this information.
Operating System
Select the Operating System that best aligns with the machine image you are using. This ensures Skillable Studio uses the correct connection type. For example, if you select Windows and the VM is Linux - there may be issues connecting.
Username & Password
Specify the username and password you would like presented to the student.
NOTE: While Azure Labs supported both admin and non-admin credentials, only a single set of credentials can be specified in Skillable Studio. If you would like to provide non-Admin credentials to the student, but keep Admin Credentials documented for other developers, use the Internal Notes tab on the VM profile.
Screen Width & Height
Change this if you want the default screen size to be different on lab launch.
NOTE: We recommend leaving this at 1024Ă—768 to account for smaller screens, after launch users can easily resize the VM to match their screen.Redirect Clipboard
Enable this to allow users to freely copy/paste between the virtual machine and their local computer. Leave disabled if you do not want users to copy/paste to or from the virtual machine.
Allow Desktop Wallpaper
Enable this to properly display the VM’s configured desktop wallpaper. If this is disabled, the wallpaper will appear solid black. This can impact the connection quality between a user and the VM.
Enable Font Smoothing
Enable this to make the font within the virtual machine clearer for the user (recommended). For users with an already poor connection, this can further impact their connection quality to the VM, the impact is typically minimal and outweighed by the positive impact for most users.
Enable Dynamic Screen Resizing
Enable this to allow the virtual machine to resize to the available space within the lab window (recommended). If this is disabled, users must manually modify the VM size to make it bigger or smaller for their screens.
On the Network Adapters tab, create at least one Network Adapter.
When your VM is configured properly, Save your changes.
Best Practice: Reuse VM Profiles
If you will be making multiple labs with the same VM image and settings, you can reuse any VM profile multiple times rather than making a new one for every lab.
Lab Profile Configuration
Ensure you are logged into both the Azure Portal and Skillable Studio.
In the Azure Portal, navigate to one of the labs you’d like to transition.
In Skillable Studio, navigate to your Azure Lab Services Imports Lab Series.
From the Lab Series screen, select + Create Lab Profile and configure the following settings:
Setting
Location
Azure Equivalent
Description
Number
Basic Information
N/A
Configure this to anything you’d like. This is often viewed as the “lab code” and represents a short hand way reference to the lab other than it’s name.
Example: If your lab is “Azure 101” you may make the number “AZ-101”
Name
Basic Information
Name
The name of your lab.
Duration
Basic Information
Quota
This is the value billing is based on and that controls how long a user is allowed to be in the lab environment. Ensure this is set to the appropriate desired, especially if you have enabled Prompt User to Extend Time.
Prompt User to Extend Time
Basic Information
N/A
If you leave this setting enabled, consider the # Minutes and Minutes Remaining values for this setting. Make sure they align with your intended use case.
Description
Basic Information
Description
Optional Metadata that can be added (and also retrieved over API) to provide added context about the lab.
Owner Name & Email
Basic Information
N/A
This associates the lab with a specific person as the Owner and provides contact information for either Skillable Support or other internal peers if an issue is identified with the lab.
Deployment Failure
Cloud
N/A
This option determines what happens if your lab fails to deploy for any reason. For production labs, we recommend this is set to Terminate Lab to avoid learners entering an experience with issues. While a lab is in development, other options can assist with troubleshooting.
Datacenter Availability
(Do Not Skip)
Cloud
Enabled Regions
Configure whatever regions you would like this lab to be able to be delivered in. This enables the labs to use Geolocation so they deploy in the region closest to the user.
NOTE: Compute Gallery images must be replicated in all selected regions.Subscription Pool
(Do Not Skip)Cloud
Tenant or Subscription
Select the subscription pool associated with your organization for these labs to deploy in.
Resource Group
(Do Not Skip)Cloud
Resource Group
When Skillable deploys user virtual machines, they will be in a resource group with a format of {prefix}-#####. You must create at least one. When created, a default prefix is defined, but this can be changed to a value of your choosing.
NOTE: You do not need to add any permissions, templates, or policies.Network
(Do Not Skip)
Networks
Network
Create a network, this is required for your virtual machine. You can leave the CIDR default or customize it if you would like.
User Save & Cancel Options
Advanced
See Description
Ensure these settings align with the desired values for your organization. The following have similar values in the Azure Labs, as specified:
Save/Cancel Labs When Last Lab Client Heartbeat Exceeds:
Azure’s Shutdown virtual machines when users disconnectSave/Cancel Labs When Last Activity Exceeds:
Azure’s Shutdown idle virtual machinesActivity Required to Enable Auto-Save:
Azure’s Shutdown virtual machines when users do not connect
Learn more about Cost Controls for Cloud Labs.
Publish to Organization Template Gallery
Advanced
Template
Enable this setting to make the lab a template that appears in the template gallery to function as a quicker starting point for other lab developers or migrating additional labs.
NOTE: Only Lab Administrators can enable or disable this option.On the Virtual Machines tab, select + Add Virtual Machine and add the VM you created previously.
When your Lab Profile is configured properly, Save your changes.
To test that your lab is functioning properly, Launch it from the Lab Profile details page.
Best Practice: Create a Template
If you have many more labs & VMs to make that will have similar settings, strongly consider making this lab profile an official template. This will expedite your migration process as well as new lab creation later.
Next Steps
Repeat any part of this process as many times as needed. Now that you have transitioned your existing labs, it is time to start Delivering Labs!