Transition Lab Definitions
    • 13 Sep 2024
    • 17 Minutes to read

    Transition Lab Definitions


    Article summary

    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

    1. Login to the Azure Portal.

    2. Confirm you are in the tenant you would like to transition labs from.

    3. Open Azure Cloud Shell.

    4. If this is your first time opening Cloud Shell, you may have some one-time setup to do - configure this to your choosing.

    5. 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.

      PowerShell mode in classic Cloud Shell

      PowerShell mode in new Cloud Shell

    Run Lab Export Script

    1. 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'))
    2. As the script processes it will prompt you for the following responses:

      1. 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.

      2. 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.

      3. 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.

    3. 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.

    1. Navigate to the Labs_Export.zip file you downloaded from Azure and extract it.

    2. 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.

    3. Login to Skillable Studio and navigate to the Admin screen.

    4. Find and select Create Lab Series.

    5. Name the Lab Series Azure Lab Services Imports, do not worry about configuring any other settings yet.

    6. For each lab zip file in your Labs_Export folder, perform the following steps:

      1. On the Lab Series page, select Import Lab Profile.

      2. Using the file picker, navigate to and select the lab zip file, then select Import.

      3. 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.

      4. 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 disconnect

        • Save/Cancel Labs When Last Activity Exceeds:
          Azure’s Shutdown idle virtual machines

        • Activity 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.

    7. 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.

    1. From the Lab Profile details page, scroll down to the Virtual Machines section and select the VM.

    2. Open the provided AllLabs.csv file.

    3. 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.

    4. When your VM is configured properly, Save your changes.

    5. 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.

    1. Ensure you are logged into both the Azure Portal and Skillable Studio.

    2. In the Azure Portal, navigate to one of the VM Images you’d like to use.

    3. In Skillable Studio, if your Azure Lab Services Imports Lab Series already exists, navigate to it and skip to step 7.

    4. If your Imports Lab Series does not exist, navigate to the Admin screen.

    5. Find and select Create Lab Series.

      image(112)

    6. Name the Lab Series Azure Lab Services Imports, do not worry about configuring any other settings yet.

    7. 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.

    8. On the Network Adapters tab, create at least one Network Adapter.

    9. 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

    1. Ensure you are logged into both the Azure Portal and Skillable Studio.

    2. In the Azure Portal, navigate to one of the labs you’d like to transition.

    3. In Skillable Studio, navigate to your Azure Lab Services Imports Lab Series.

    4. 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 disconnect

      • Save/Cancel Labs When Last Activity Exceeds:
        Azure’s Shutdown idle virtual machines

      • Activity 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.

    5. On the Virtual Machines tab, select + Add Virtual Machine and add the VM you created previously.

    6. When your Lab Profile is configured properly, Save your changes.

    7. 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!


    Was this article helpful?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.