2017-04-25 12:28:07 +02:00
{
"$schema" : "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#" ,
"contentVersion" : "1.0.0.0" ,
"parameters" : {
"VMName" : {
"type" : "string" ,
"metadata" : {
"description" : "This name will also be used to prefix the network security group, storage, virtual network, network card, subnet and public IP address name."
}
} ,
"adminUsername" : {
"type" : "string" ,
"metadata" : {
"description" : "Username for the Virtual Machine."
}
} ,
"adminPassword" : {
"type" : "securestring" ,
"metadata" : {
"description" : "Password for the Virtual Machine."
}
} ,
"dnsNameForPublicIP" : {
"type" : "string" ,
"metadata" : {
"description" : "Unique DNS Name for the Public IP used to access the Virtual Machine."
}
} ,
"newStorageAccountName" : {
"type" : "string" ,
"metadata" : {
"description" : "Storage name for the Virtual Machine."
}
} ,
"vmSize" : {
"type" : "string" ,
"defaultValue" : "Standard_D1" ,
"metadata" : {
"description" : "VM Size"
}
2017-05-19 11:27:32 +02:00
}
2017-04-25 12:28:07 +02:00
} ,
"variables" : {
2017-05-19 11:27:32 +02:00
"newStorageAccountName" : "[take(concat(parameters('newStorageAccountName'), uniqueString(resourceGroup().id)), 23)]" ,
"dnsNameForPublicIP" : "[concat(parameters('dnsNameForPublicIP'), uniqueString(resourceGroup().id))]" ,
2017-04-25 12:28:07 +02:00
"windowsOSVersion" : "2016-Datacenter" ,
"imagePublisher" : "MicrosoftWindowsServer" ,
"imageOffer" : "WindowsServer" ,
"OSDiskName" : "[concat(parameters('VMName'),'_osdisk')]" ,
"nicName" : "[concat(parameters('VMName'),'_nic')]" ,
"addressPrefix" : "10.0.0.0/16" ,
"subnetName" : "[concat(parameters('VMName'),'_subnet')]" ,
"subnetPrefix" : "10.0.0.0/24" ,
"networkSecurityGroupName" : "[concat(parameters('VMName'),'_nsg')]" ,
"storageAccountType" : "Standard_LRS" ,
"publicIPAddressName" : "[concat(parameters('VMName'),'_pubip')]" ,
"publicIPAddressType" : "Dynamic" ,
"vmStorageAccountContainerName" : "vhds" ,
"apiVersion" : "2015-05-01-preview" ,
"virtualNetworkName" : "[concat(parameters('VMName'),'_vnet')]" ,
"vnetID" : "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]" ,
"subnetRef" : "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]"
} ,
"resources" : [
{
"type" : "Microsoft.Network/networkSecurityGroups" ,
"name" : "[variables('networkSecurityGroupName')]" ,
"apiVersion" : "[variables('apiVersion')]" ,
"location" : "[resourceGroup().location]" ,
"properties" : {
"securityRules" : [
{
"name" : "HTTP" ,
"properties" : {
"description" : "HTTP" ,
"protocol" : "Tcp" ,
"sourcePortRange" : "*" ,
"destinationPortRange" : "80" ,
"sourceAddressPrefix" : "*" ,
"destinationAddressPrefix" : "*" ,
"access" : "Allow" ,
"priority" : 100 ,
"direction" : "Inbound"
}
} ,
{
"name" : "RDP" ,
"properties" : {
"description" : "RDP" ,
"protocol" : "Tcp" ,
"sourcePortRange" : "*" ,
"destinationPortRange" : "3389" ,
"sourceAddressPrefix" : "*" ,
"destinationAddressPrefix" : "*" ,
"access" : "Allow" ,
"priority" : 200 ,
"direction" : "Inbound"
}
} ,
{
"name" : "Docker" ,
"properties" : {
"description" : "Docker" ,
"protocol" : "Tcp" ,
"sourcePortRange" : "*" ,
"destinationPortRange" : "2375" ,
"sourceAddressPrefix" : "*" ,
"destinationAddressPrefix" : "*" ,
"access" : "Allow" ,
"priority" : 300 ,
"direction" : "Inbound"
}
}
]
}
} ,
{
"type" : "Microsoft.Storage/storageAccounts" ,
2017-05-19 11:27:32 +02:00
"name" : "[variables('newStorageAccountName')]" ,
2017-04-25 12:28:07 +02:00
"apiVersion" : "[variables('apiVersion')]" ,
"location" : "[resourceGroup().location]" ,
"tags" : {
"displayName" : "StorageAccount"
} ,
"properties" : {
"accountType" : "[variables('storageAccountType')]"
}
} ,
{
"apiVersion" : "[variables('apiVersion')]" ,
"type" : "Microsoft.Network/publicIPAddresses" ,
"name" : "[variables('publicIPAddressName')]" ,
"location" : "[resourceGroup().location]" ,
"tags" : {
"displayName" : "PublicIPAddress"
} ,
"properties" : {
"publicIPAllocationMethod" : "[variables('publicIPAddressType')]" ,
"dnsSettings" : {
2017-05-19 11:27:32 +02:00
"domainNameLabel" : "[tolower(variables('dnsNameForPublicIP'))]"
2017-04-25 12:28:07 +02:00
}
}
} ,
{
"apiVersion" : "[variables('apiVersion')]" ,
"type" : "Microsoft.Network/virtualNetworks" ,
"name" : "[variables('virtualNetworkName')]" ,
"location" : "[resourceGroup().location]" ,
"dependsOn" : [
"[concat('Microsoft.Network/networkSecurityGroups/', variables('networkSecurityGroupName'))]"
] ,
"tags" : {
"displayName" : "VirtualNetwork"
} ,
"properties" : {
"addressSpace" : {
"addressPrefixes" : [
"[variables('addressPrefix')]"
]
} ,
"subnets" : [
{
"name" : "[variables('subnetName')]" ,
"properties" : {
"addressPrefix" : "[variables('subnetPrefix')]" ,
"networkSecurityGroup" : {
"id" : "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
}
}
}
]
}
} ,
{
"apiVersion" : "[variables('apiVersion')]" ,
"type" : "Microsoft.Network/networkInterfaces" ,
"name" : "[variables('nicName')]" ,
"location" : "[resourceGroup().location]" ,
"tags" : {
"displayName" : "NetworkInterface"
} ,
"dependsOn" : [
"[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]" ,
"[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"
] ,
"properties" : {
"ipConfigurations" : [
{
"name" : "ipconfig1" ,
"properties" : {
"privateIPAllocationMethod" : "Dynamic" ,
"publicIPAddress" : {
"id" : "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]"
} ,
"subnet" : {
"id" : "[variables('subnetRef')]"
}
}
}
]
}
} ,
{
"apiVersion" : "[variables('apiVersion')]" ,
"type" : "Microsoft.Compute/virtualMachines" ,
"name" : "[parameters('VMName')]" ,
"location" : "[resourceGroup().location]" ,
"tags" : {
"displayName" : "VirtualMachine"
} ,
"dependsOn" : [
2017-05-19 11:27:32 +02:00
"[concat('Microsoft.Storage/storageAccounts/', variables('newStorageAccountName'))]" ,
2017-04-25 12:28:07 +02:00
"[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
] ,
"properties" : {
"hardwareProfile" : {
"vmSize" : "[parameters('vmSize')]"
} ,
"osProfile" : {
"computername" : "[parameters('VMName')]" ,
"adminUsername" : "[parameters('adminUsername')]" ,
"adminPassword" : "[parameters('adminPassword')]"
} ,
"storageProfile" : {
"imageReference" : {
"publisher" : "[variables('imagePublisher')]" ,
"offer" : "[variables('imageOffer')]" ,
"sku" : "[variables('windowsOSVersion')]" ,
"version" : "latest"
} ,
"osDisk" : {
"name" : "osdisk" ,
"vhd" : {
2017-05-19 11:27:32 +02:00
"uri" : "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('newStorageAccountName')), variables('apiVersion')).primaryEndpoints.blob, variables('vmStorageAccountContainerName'),'/',variables('OSDiskName'),'.vhd')]"
2017-04-25 12:28:07 +02:00
} ,
"caching" : "ReadWrite" ,
"createOption" : "FromImage"
}
} ,
"networkProfile" : {
"networkInterfaces" : [
{
"id" : "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"
}
]
}
} ,
"resources" : [
{
"name" : "containerConfiguration" ,
"type" : "extensions" ,
"location" : "[resourceGroup().location]" ,
"apiVersion" : "2015-06-15" ,
"dependsOn" : [
"[concat('Microsoft.Compute/virtualMachines/', parameters('VMName'))]"
] ,
"tags" : {
"displayName" : "containerConfiguration"
} ,
"properties" : {
"publisher" : "Microsoft.Compute" ,
"type" : "CustomScriptExtension" ,
"typeHandlerVersion" : "1.2" ,
"autoUpgradeMinorVersion" : true ,
"settings" : {
"fileUris" : [
"https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/windows-server-containers-preview/azure-containers.ps1"
] ,
"commandToExecute" : "[concat('powershell.exe -ExecutionPolicy Unrestricted -File azure-containers.ps1 -adminuser ',parameters('adminUsername'))]"
}
}
}
]
}
]
}