Adding SQL IaaS extension into a disconnected Azure Stack

Azure Stack can operate in a connected fashion (meaning with an internet connection with Azure AD as the identity provider) OR can operate in a disconnected fashion with no internet connection but federated via ADFS with an on premises AD. We are talking about the latter scenario here.

So you wanted to create SQL Servers or make available SQL servers in your Azure Stack "Marketplace". The first step to do that would be to find a way to populate the marketplace. This link below gives you the details on how to download the marketplace items from "public" Azure before you can then upload it into the disconnected Azure Stack's marketplace.

Download Marketplace items in a disconnected scenario

Unlike connected scenario, where you just click on the link "Add from Azure", and everything happens automagically,  in the case of disconnected deployments of Azure Stack it is not as easy and straightforward to populate the Azure Stack marketplace.

In this blog we are specifically talking about populating the stack's marketplace for enabling your end users to create SQL Server IaaS VMs. Note that SQL Server requires an extension, before the SQL Server can be provisioned. We are specifically talking about how to get this extension in place, so that SQL Server can be deployed.

In general the BYOL and Pay-As-You-Go images which you downloaded from public Azure marketplace and then uploaded into stack, would show up in the Azure Stack marketplace.

However, the SQL IaaS should not(will not) show up in the marketplace, it is not deployable from the Add Extension UX directly. It can only be deployed from a template or when using one of the marketplace SQL VM offers.

For the specific case of adding this into the Azure Stack marketplace, the offline syndication documentation does not have enough information to lead to a successful upload. 

The below is the correct PowerShell for the current extension. Replace the URI for the storage blob.

Add-AzsVmExtension -VmOsType Windows -ComputeRole IaaS  -Publisher Microsoft.SqlServer.Management -Type SqlIaaSAgent -Version -SourceBlob "<customer’s blob location>"

Ofcourse make sure to have the correct version of PowerShell and as well as to import the Compute Admin module of the powershell before firing the above powershell. Once this is done, you should be able to provision a SQL Server in an Azure Stack subscription.