If you are planning to add Linux Images to your Azure Stack deployment, first I would recommend reading through the documentation on the Azure Stack pages for Adding a VM Image and Using Custom Linux Images. From there you can get the base images and the process for adding the images to Azure Stack. What they don’t include is the Azure Cloud information for the various images, and if you would like to be able to use a JSON template against both Azure and Azure Stack without changing the image information, then you will want the publisher, offer, sku, and version to match. In this post I will walk through the basics of adding one Linux image, how to get the necessary information from Azure Cloud, and the current information for the images you may want to run.
All of these commands will be run from the Mas-Con01 VM in Azure Stack. You can run it from your local workstation if you set up a P2S VPN tunnel, but that’s a topic for another post. I am also running this on Azure Stack TP3, so if you are on a previous version your results may vary. Finally, I bump the Mas-Con01 VM up to 8GB of memory and turn off Windows Defender. That’s a personal choice; however, I think you’ll find that it speeds up anything you are planning to run on Mas-Con01 tremendously.
From an Administrative PowerShell session run the following:
For this example I will be finding the VM Image information for Ubuntu Server 16.04 LTS. The first step is to log into Azure via PowerShell using Login-AzureRMAccount. Then the following commands will retrieve the information you would want.
Once the commands are finished running, you should get output that looks roughly like this:
Now you have all the necessary values to add the Ubuntu image to your local Azure Stack installation. The next thing to do is download the images from the Deploy Linux virtual machines on Azure Stack page I linked before. Keeping with the theme of Ubuntu, I am downloading the 16.04 LTS image linked on the page. Right now that link is broken, so you can use this one instead if Microsoft hasn’t fixed it yet. The file will be compressed, and so you’ll need to extract it. The VHD is ~30GB in size, so I recommend copying it to the infrastructure file share created during the Azure Stack install, which should be \\SU1fileserver\SU1_Infrastructure_1. That way you won’t run out of room on Mas-Con01 as you download and add more images.
Once the VHD file has been extracted, make a note of the location and run the following to add the VM Image.
You’ll be prompted for your Azure Stack credentials, and you’ll need to change the tenant to match whatever you used when installing Azure Stack. In the end you will now have a new VM Image in the marketplace.
Here is a table with all the current images linked on the Microsoft page:
PublisherName | Offer | Sku | Version | Title | Location |
OpenLogic | CentOS | 6.8 | 6.8.20170105 | CentOS-based 6.8 | Local |
OpenLogic | CentOS | 7.2 | 7.2.20170105 | CentOS-based 7.2 | Local |
CoreOS | CoreOS | Stable | 1298.6.0 | CoreOS Linux (Stable) | Local |
SuSE | SLES | 12-SP1 |
| SLES 12 SP1 | Local |
Canonical | UbuntuServer | 16.04-LTS | 16.04.201703270 | Ubuntu Server 16.04 LTS | Local |
Canonical | UbuntuServer | 14.04.5-LTS | 14.04.201703230 | Ubuntu Server 14.04 LTS | Local |
Note that the version numbers are subject to change, so you may want to verify what version you have downloaded. Regardless, the latest version is automatically selected if you specify “latest” in your ARM template.
A word about the Sku property. The current version of the Add-VMImage cmdlet in the AzureStack.ComputeAdmin module does not allow for a “.” in the Sku parameter. You can either avoid using a “.” or alter the validation criteria for the parameter by changing the expression from “[a-zA-Z0-9-]{3,}” to “[a-zA-Z0-9-\.]{3,}” in the Add-VMImage function. Doing so does not seem to affect the deployment of new images.
What's New in the AzureRM Provider Version 4?
August 27, 2024
Debugging the AzureRM Provider with VSCode
August 20, 2024
State Encryption with OpenTofu
August 1, 2024
July 24, 2024