When you deploy a Service Fabric Cluster as an ARM template you have the option of specify Windows Version (OS) of the Virtual Machine via the VmImageSku parameter. It is per default set to "2012-R2-Datacenter". I have not been able to find any examples of other values for this.
My real question is can a Service Fabric Cluster be deployed to a Server Core?
"vmImagePublisher": {
"type": "string",
"defaultValue": "MicrosoftWindowsServer",
"metadata": {
"description": "VM image Publisher"
}
},
"vmImageOffer": {
"type": "string",
"defaultValue": "WindowsServer",
"metadata": {
"description": "VM image offer"
}
},
"vmImageSku": {
"type": "string",
"defaultValue": "2012-R2-Datacenter",
"metadata": {
"description": "VM image SKU"
}
},
"vmImageVersion": {
"type": "string",
"defaultValue": "latest",
"metadata": {
"description": "VM image version"
}
}
usage:
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "[variables('vmNodeType0Name')]",
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
"storageProfile": {
"imageReference": {
"publisher": "[parameters('vmImagePublisher')]",
"offer": "[parameters('vmImageOffer')]",
"sku": "[parameters('vmImageSku')]",
"version": "[parameters('vmImageVersion')]"
}
When Microsoft added Windows Server 2016 images they included a new option called Nano Server:
A remotely administered server operating system optimized for private clouds and datacenters... similar to Windows Server in Server Core mode.
Nano Server does not provide the ability to logon locally so you will have to rely on remote administration tools.
You can read more about it at https://azure.microsoft.com/en-us/marketplace/partners/microsoft/windowsserver2016nanoserver/.
You can use these values in your ARM template to use the Nano Server image:
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2016-Nano-Server",
"version": "latest"
}
In the future you can get a list of all of the VM image publishers, offers, and skus using the Azure-CLI. To find the image sku for the nano server I used this sequence of commands (eventually choosing the MicrosoftWindowsServer publisher and WindowsServer offer):
azure login
azure vm image list-publishers westus
azure vm image list-offers westus MicrosoftWindowsServer
azure vm image list-skus westus MicrosoftWindowsServer WindowsServer
It looks like there are two Windows Server 2016 Datacenter - Server Core images available now: 2016-Datacenter-Server-Core and 2016-Datacenter-Server-Core-smalldisk. You can select these images using this in your ARM template:
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2016-Datacenter-Server-Core",
"version": "latest"
}
or
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2016-Datacenter-Server-Core-smalldisk",
"version": "latest"
}