I'm trying to create an ARM Template for SQL Server 2016. Upon inspecting SQL Server ARM templates from the official Azure Github repo (and there are only SQL Server 2014 templates) I found out that their logic is consistent with how SQL Server 2014 being deployed via Marketplace Web Interface that is: 1. Deploy SQL Server 2014 image 2. Deploy nested template https://sqlvmgroup.blob.core.windows.net/singlevm/preparingSqlServerSa.json 3. Execute DSC https://sqlvmgroup.blob.core.windows.net/singlevm/PrepareSqlServer.ps1.zip This process is not very well documented (if any). And only explanation for this that I was able to find is an ARM template readme made by Microsoft Employee and a couple of blogposts from a Japanese MVP (Google Translate works well on these posts): Create a new SSRS Server with a SQL catalog (2 Machines) [JAP]Understand the deployment flow of Azure's deployment of SQL Server installed virtual machines [JAP]Use the ARM template to perform SQL Server preparation tasks However when I try to use the same steps for SQL Server 2016 I get DSC error:
"VM has reported a failure when processing extension 'dscExtension'. Error message: "DSC Configuration 'PrepareSqlServerSa' completed with error(s). Following are the first few: Cannot validate argument on parameter 'StorageSubSystemUniqueId'. The argument is null. Provide a valid value for the argument, and then try running the command again. No MSFT_StoragePool objects found with property 'FriendlyName' equal to 'SqlVMStoragePoll'. Verify the value of the property and retry. No MSFT_VirtualDisk objects found with property 'FriendlyName' equal to 'SqlVMDataDisk'. Verify the value of the property and retry.
My guess is DSC code from SQL Server 2014 is not compatible with SQL Server 2016. So, I have 2 questions. How Azure Marketplace deploys SQL Server 2016 and how can I replicate it reliably with ARM Templates?