|
|
- {
- "$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": {
- "newStorageAccountName": "[take(concat(parameters('newStorageAccountName'), uniqueString(resourceGroup().id)), 23)]",
- "dnsNameForPublicIP": "[concat(parameters('dnsNameForPublicIP'), uniqueString(resourceGroup().id))]",
- "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": "[variables('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(variables('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/', variables('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/', variables('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'))]"
- }
- }
- }
- ]
- }
- ]
- }
|