Create Virtual Machines with Azure DevTest Lab

by Dec 19, 2019

A while ago I had to give a training. Normally I would roll out a number of virtual machines in Azure. Until someone brought my attention to an Azure Service, Azure DevTest Labs. With this Azure service you can easily create a basic image and use this image to roll out a series of virtual machines with even the option to automatically clean them up after a training or test period. This way you can also optimally save costs. You have to go through a number of steps and I thought it would be useful to share these steps with you.

Table of Content

  1. Configuration in Azure
  2. Create Master Virtual Machine
  3. Starting the Virtual Machine
  4. Creating Base Image
  5. Create Training Virtual Machines

Configuration in Azure

Create a Resource Group in which you want to install the Azure DevTest lab. Search for the Azure Service DevTest Labs and click Create.

Lab name:
The DevTest Lab name

Western Europe or other desired Region

Indicate who the Owner is. 

Shut down the machine automatically every day to save costs. Don’t forget to select the correct time zone.
Then click Create to start building the DevTest lab.

After the DevTest lab has been created, the following resources are also created. 

StorageAccount: Storage location for your Artifacts

KeyVault: Securely store your DevTest Lab passwords

An important step before we create these Virtual machines is that we must indicate in which Resource Group these Virtual machines will be created later. If we don’t do this, a Resource Group will be created automatically with a name that most likely does not comply with various naming conventions in your company.

To do this, go to Configuration and Policies.

Click on Lab settings and check the box next to “All Virtual machines in one Resource group“, create a new Resource Group as in the example above. Finally save these settings.


Create Master Virtual Machine

If we want to make in a later stadium several training machines, we will first have to make a Base Image. For this we first have to create a Virtual machine.
Go to the newly created DevTest Lab environment and click Add.

Select a basic Image that you want to use. In this case I have selected a Windows 10 Image.

Virtual machine name:
Give the Virtual Machine a name, the 001 is not necessary for the Master. Note that the name may not be longer than 15 characters.

User Name:
Admin account to log in to the Virtual machine

A default password, check the box next to Save as default Password. The Password is now stored in the Azure Keyvault that was created

Disk and Size:
Select the Size of the Virtual machine here and choose from a Premium SSD, Standard SSD or Standard HDD disk type

During the creation of the Virtual Machine, we can immediately perform a number of installations so that they are available in the default Image to be created. Below I have selected to add SSMS.

Then click on Advanced settings.

Set the ip-address to Public. 

Go back to Basic Settings and click on Create to create the Virtual Machine

Starting the Virtual Machine

After the machine is started up, create 2 users which can be used during the training. Add this to the Remote Desktop user group, you can also add them to the Administrator group so that the student has all rights to this machine.

Install the Software that you want to use.

In this situation I have installed Power Desktop from the Windows Store, so that it always stays up to date.

In addition, I have installed SQL Server 2017 Developer Edition with a WorldWIdeImporters database.

It is important that you add the above created users as Admin users during the installation of eg Analysis services so that a student has sufficient rights to follow his training.

Then log in with 1 of the created users and check if everything works.

Then shutdown the Virtual Machine.


Creating Base Image

Select the Master Virtual Machine:

Click Create custom Image:

Give the image a name that you recognize it later and click on Create.


Create Training Virtual Machines

To create the Training Virtual Machines, we do actually the same as with the master.

We are adding a new one, only now we select as Base the Image we just made.

Give the machine a name, do not use numbers at the end as specified by default. These numbers will be added automatically when creating multiple machines.

Disk and Size:
Select the Size of the Virtual machine here and choose from a disk type Premium SSD, Standard SSD or Standard HDD. Useful here is to use the same Disk Type that you used with the Master.

If you want to add another Artifact, you can do that here, but in principle we already have it in our Base Image.

Virtual Machine expiration:
As it concerns training machines, we also want them to be removed automatically after the training.
Then go back to the Basic Settings and click on Create.

Number of instances:
Define how many training machines you would like to create.

Go back to the Tab Basic Settings and click on Create.

The number of machines you have selected are immediately created with an increasing number. After the creation is complete, Students can now log into this Virtual Machines from their own laptop or desktop at with the User1 account, which we created in an earlier stage.

Feel free to leave a comment


Submit a Comment

Your email address will not be published.

fifteen + four =

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Create an Azure Synapse Analytics SQL Pool

Adding a new SQL Pool There are 2 options to create a SQL Pool. Go to your Synapse Workspace in de Azure Portal and add a new SQL Pool. Or go to the Management Tab in your Azure Synapse Workspace and add a new Pool. Creating a new SQL Pool SQL Pool Name (SQL pool name...

Migrate Azure Storage to Azure Data Lake Gen2

Migrate Azure Storage to Storage Account with Azure Data Lake Gen2 capabilities Does it sometimes happen that you come across a Storage Account where the Hierarchical namespace is not enabled or that you still have a Storage Account V1? In the tutorial below I...

Azure DevOps and Azure Feature Pack for Integration Services

Azure Feature Pack for Integration ServicesAzure Blob Storage A great addition for SSIS is using extra connectors like  Azure Blob Storage or Azure Data Lake Store which are added by the Azure Feature Pack. This Pack needs to be installed on your local machine. Are...

Azure Data Factory Let’s get started

Creating an Azure Data Factory Instance, let's get started Many blogs nowadays are about which functionalities we can use within Azure Data Factory. But how do we create an Azure Data Factory instance in Azure for the first time and what should you take into account? ...

Azure Synapse Pause and Resume SQL Pool

Pause or Resume your Dedicated SQL Pool in Azure Synapse Analytics Azure Synapse Analytics went GA in beginning of December 2020, with Azure Synapse we can now also create a Dedicated SQL Pool(formerly Azure SQL DW). Please read this document to learn what a Dedicated...

Azure Purview Pricing example

Azure Purview pricing? Note: Billing for Azure Purview will commence November 1, 2021. Updated October 31st, 2021 Pricing for Elastic Data Map and Scanning for Other Sources are changed and updated in the blog below. Since my last post on Azure Purview announcements...

Exploring Azure Synapse Analytics Studio

Azure Synapse Workspace Settings In my previous article, I walked you through "how to create your Azure Synapse Analytics Workspace". It's now time to explore the brand new Synapse Studio. Most configuration and settings can be done through the Synapse Studio. In your...

Azure Data Factory: Generate Pipeline from the new Template Gallery

Last week I mentioned that we could save a Pipeline to GIT. But today I found out that you can also create a Pipeline from a predefined Solution Template.Template Gallery These template will make it easier to start with Azure Data Factory and it will reduce...

Get control of data loads in Azure Synapse

Load Source data to DataLake There are several ways to extract data from a source in Azure Synapse Analytics or in Azure Data Factory. In this article I'm going to use a metadata-driven approach by using a control table in Azure SQL in which we configure the...

Azure SQL Data Warehouse: How to setup Reserved Capacity

Purchase your Azure SQL Datawarehouse Reservation   Since a few weeks you can buy Reserved Capacity for an Azure SQL Datawarehouse (SQLDW). This Reservation can save you up to 65% on the normal Pay as You go rates with a 3 year pre-commit. A pre-commit of 1 year...