|
|
@ -0,0 +1,289 @@ |
|
|
|
{ |
|
|
|
"$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" |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
"variables": { |
|
|
|
"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", |
|
|
|
"name": "[parameters('newStorageAccountName')]", |
|
|
|
"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": { |
|
|
|
"domainNameLabel": "[tolower(parameters('dnsNameForPublicIP'))]" |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
"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": [ |
|
|
|
"[concat('Microsoft.Storage/storageAccounts/', parameters('newStorageAccountName'))]", |
|
|
|
"[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": { |
|
|
|
"uri": "[concat(reference(concat('Microsoft.Storage/storageAccounts/', parameters('newStorageAccountName')), variables('apiVersion')).primaryEndpoints.blob, variables('vmStorageAccountContainerName'),'/',variables('OSDiskName'),'.vhd')]" |
|
|
|
}, |
|
|
|
"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'))]" |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
] |
|
|
|
} |
|
|
|
] |
|
|
|
} |