Last active
February 20, 2016 21:50
-
-
Save turowicz/903ed41103a123c73873 to your computer and use it in GitHub Desktop.
Creating Azure Service Fabric Cluster (https://medium.com/@turowicz/creating-tailored-service-fabric-clusters-9fe5ff4ec210)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json", | |
| "contentVersion": "1.0.0.0", | |
| "parameters": { | |
| "clusterLocation": { | |
| "type": "string", | |
| "metadata": { | |
| "description": "Location of the Cluster" | |
| }, | |
| "defaultValue": "eastus" | |
| }, | |
| "clusterName": { | |
| "type": "string", | |
| "metadata": { | |
| "description": "Name of your cluster - Between 3 and 23 characters. Lowercase letters and numbers" | |
| } | |
| }, | |
| "clusterDataPath": { | |
| "type": "string" | |
| }, | |
| "applicationStartPort": { | |
| "type": "int", | |
| "defaultValue": 20000 | |
| }, | |
| "applicationEndPort": { | |
| "type": "int", | |
| "defaultValue": 30000 | |
| }, | |
| "ephemeralStartPort": { | |
| "type": "int", | |
| "defaultValue": 49152 | |
| }, | |
| "ephemeralEndPort": { | |
| "type": "int", | |
| "defaultValue": 65534 | |
| }, | |
| "fabricTcpGatewayPort": { | |
| "type": "int", | |
| "defaultValue": 19000, | |
| "metadata": { | |
| "description": "TCP Client Connection end point to perform management operations on this cluster" | |
| } | |
| }, | |
| "fabricHttpGatewayPort": { | |
| "type": "int", | |
| "defaultValue": 19080, | |
| "metadata": { | |
| "description": "Http Client Connection end point to perform management operations on this cluster" | |
| } | |
| }, | |
| "computeLocation": { | |
| "type": "string", | |
| "defaultValue": "eastus" | |
| }, | |
| "vmStorageAccountName": { | |
| "type": "string" | |
| }, | |
| "publicIPAddressName": { | |
| "type": "string", | |
| "defaultValue": "PublicIP-VM" | |
| }, | |
| "publicIPAddressType": { | |
| "type": "string", | |
| "allowedValues": [ | |
| "Dynamic" | |
| ], | |
| "defaultValue": "Dynamic" | |
| }, | |
| "vmStorageAccountContainerName": { | |
| "type": "string", | |
| "defaultValue": "vhds" | |
| }, | |
| "adminUserName": { | |
| "type": "string" | |
| }, | |
| "adminPassword": { | |
| "type": "securestring" | |
| }, | |
| "virtualNetworkName": { | |
| "type": "string", | |
| "defaultValue": "VNet" | |
| }, | |
| "addressPrefix": { | |
| "type": "string", | |
| "defaultValue": "10.0.0.0/16" | |
| }, | |
| "subnet1Name": { | |
| "type": "string", | |
| "defaultValue": "Subnet-1" | |
| }, | |
| "subnet2Name": { | |
| "type": "string", | |
| "defaultValue": "Subnet-2" | |
| }, | |
| "subnet1Prefix": { | |
| "type": "string", | |
| "defaultValue": "10.0.0.0/24" | |
| }, | |
| "subnet2Prefix": { | |
| "type": "string", | |
| "defaultValue": "10.0.1.0/24" | |
| }, | |
| "dnsName": { | |
| "type": "string" | |
| }, | |
| "nicName": { | |
| "type": "string", | |
| "defaultValue": "NIC" | |
| }, | |
| "lbName": { | |
| "type": "string", | |
| "defaultValue": "LoadBalancer" | |
| }, | |
| "lbIPName": { | |
| "type": "string", | |
| "defaultValue": "PublicIP-LB-FE" | |
| }, | |
| "availSetName": { | |
| "type": "string", | |
| "defaultValue": "AvailabilitySet" | |
| }, | |
| "vmImagePublisher": { | |
| "type": "string", | |
| "defaultValue": "MicrosoftWindowsServer" | |
| }, | |
| "scriptName": { | |
| "type": "string", | |
| "defaultValue": "createDisk.ps1" | |
| }, | |
| "scriptUrl": { | |
| "type": "string", | |
| "defaultValue": "https://hiveoperations.blob.core.windows.net/public-scripts/createDisk.ps1" | |
| }, | |
| "vmImageOffer": { | |
| "type": "string", | |
| "defaultValue": "WindowsServer" | |
| }, | |
| "vmImageSku": { | |
| "type": "string", | |
| "defaultValue": "2012-R2-Datacenter" | |
| }, | |
| "vmImageVersion": { | |
| "type": "string", | |
| "defaultValue": "latest" | |
| }, | |
| "loadBalancedAppPort1": { | |
| "type": "int", | |
| "defaultValue": 80 | |
| }, | |
| "loadBalancedAppPort2": { | |
| "type": "int", | |
| "defaultValue": 443 | |
| }, | |
| "certificateStoreValue": { | |
| "type": "string", | |
| "allowedValues": [ | |
| "My" | |
| ], | |
| "defaultValue": "My" | |
| }, | |
| "certificateThumbprint": { | |
| "type": "string" | |
| }, | |
| "sourceVaultValue": { | |
| "type": "string" | |
| }, | |
| "certificateUrlValue": { | |
| "type": "string" | |
| }, | |
| "clusterProtectionLevel": { | |
| "type": "string", | |
| "allowedValues": [ | |
| "None", | |
| "Sign", | |
| "EncryptAndSign" | |
| ] | |
| }, | |
| "storageAccountType": { | |
| "type": "string", | |
| "allowedValues": [ | |
| "Premium_LRS", | |
| "Standard_LRS", | |
| "Standard_GRS" | |
| ], | |
| "metadata": { | |
| "description": "Replication option for the VM image storage account" | |
| } | |
| }, | |
| "supportLogStorageAccountType": { | |
| "type": "string", | |
| "allowedValues": [ | |
| "Standard_LRS" | |
| ], | |
| "defaultValue": "Standard_LRS", | |
| "metadata": { | |
| "description": "Replication option for the support log storage account" | |
| } | |
| }, | |
| "supportLogStorageAccountName": { | |
| "type": "string", | |
| "metadata": { | |
| "description": "Name for the storage account that contains support logs from the cluster" | |
| } | |
| }, | |
| "applicationDiagnosticsStorageAccountType": { | |
| "type": "string", | |
| "allowedValues": [ | |
| "Standard_LRS" | |
| ], | |
| "defaultValue": "Standard_LRS", | |
| "metadata": { | |
| "description": "Replication option for the application diagnostics storage account" | |
| } | |
| }, | |
| "applicationDiagnosticsStorageAccountName": { | |
| "type": "string", | |
| "metadata": { | |
| "description": "Name for the storage account that contains application diagnostics data from the cluster" | |
| } | |
| }, | |
| "vmNodeType0Name": { | |
| "type": "string" | |
| }, | |
| "vmNodeType0Size": { | |
| "type": "string" | |
| }, | |
| "vmCount": { | |
| "type": "int" | |
| } | |
| }, | |
| "variables": { | |
| "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',parameters('virtualNetworkName'))]", | |
| "subnet1Ref": "[concat(variables('vnetID'),'/subnets/',parameters('subnet1Name'))]", | |
| "lbID0": "[resourceId('Microsoft.Network/loadBalancers',concat(parameters('lbName'),'-','0'))]", | |
| "lbIPConfig0": "[concat(variables('lbID0'),'/frontendIPConfigurations/LoadBalancerIPConfig')]", | |
| "lbPoolID0": "[concat(variables('lbID0'),'/backendAddressPools/LoadBalancerBEAddressPool')]", | |
| "lbProbeID0": "[concat(variables('lbID0'),'/probes/FabricGatewayProbe')]", | |
| "lbHttpProbeID0": "[concat(variables('lbID0'),'/probes/FabricHttpGatewayProbe')]" | |
| }, | |
| "resources": [ | |
| { | |
| "apiVersion": "2015-05-01-preview", | |
| "type": "Microsoft.Storage/storageAccounts", | |
| "name": "[parameters('vmStorageAccountName')]", | |
| "location": "[parameters('computeLocation')]", | |
| "properties": { | |
| "accountType": "[parameters('storageAccountType')]" | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "apiVersion": "2015-05-01-preview", | |
| "type": "Microsoft.Storage/storageAccounts", | |
| "name": "[parameters('supportLogStorageAccountName')]", | |
| "location": "[parameters('computeLocation')]", | |
| "properties": { | |
| "accountType": "[parameters('supportLogStorageAccountType')]" | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "apiVersion": "2015-05-01-preview", | |
| "type": "Microsoft.Storage/storageAccounts", | |
| "name": "[parameters('applicationDiagnosticsStorageAccountName')]", | |
| "location": "[parameters('computeLocation')]", | |
| "properties": { | |
| "accountType": "[parameters('applicationDiagnosticsStorageAccountType')]" | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "apiVersion": "2015-05-01-preview", | |
| "type": "Microsoft.Network/virtualNetworks", | |
| "name": "[parameters('virtualNetworkName')]", | |
| "location": "[parameters('computeLocation')]", | |
| "properties": { | |
| "addressSpace": { | |
| "addressPrefixes": [ | |
| "[parameters('addressPrefix')]" | |
| ] | |
| }, | |
| "subnets": [ | |
| { | |
| "name": "[parameters('subnet1Name')]", | |
| "properties": { | |
| "addressPrefix": "[parameters('subnet1Prefix')]" | |
| } | |
| }, | |
| { | |
| "name": "[parameters('subnet2Name')]", | |
| "properties": { | |
| "addressPrefix": "[parameters('subnet2Prefix')]" | |
| } | |
| } | |
| ] | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "apiVersion": "2015-05-01-preview", | |
| "type": "Microsoft.Compute/availabilitySets", | |
| "name": "[concat(parameters('availSetName'),'-',0)]", | |
| "location": "[parameters('computeLocation')]", | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "apiVersion": "2015-05-01-preview", | |
| "type": "Microsoft.Network/networkInterfaces", | |
| "name": "[concat(parameters('nicName'),'-',0,'-',copyIndex(0))]", | |
| "location": "[parameters('computeLocation')]", | |
| "dependsOn": [ | |
| "[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]", | |
| "[concat('Microsoft.Network/loadBalancers/', parameters('lbName'),'-','0')]" | |
| ], | |
| "properties": { | |
| "ipConfigurations": [ | |
| { | |
| "name": "IPConfig", | |
| "properties": { | |
| "loadBalancerBackendAddressPools": [ | |
| { | |
| "id": "[variables('lbPoolID0')]" | |
| } | |
| ], | |
| "loadBalancerInboundNatRules": [ | |
| { | |
| "id": "[concat(variables('lbID0'),'/inboundNatRules/RDP-VM-0-',copyIndex(0))]" | |
| } | |
| ], | |
| "privateIPAllocationMethod": "Dynamic", | |
| "subnet": { | |
| "id": "[variables('subnet1Ref')]" | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| "copy": { | |
| "name": "nicLoop", | |
| "count": "[parameters('vmCount')]" | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "apiVersion": "2015-05-01-preview", | |
| "type": "Microsoft.Compute/virtualMachines/extensions", | |
| "name": "[concat(parameters('vmNodeType0Name'),copyIndex(0),'/ServiceFabricNode')]", | |
| "location": "[parameters('computeLocation')]", | |
| "dependsOn": [ | |
| "[concat('Microsoft.Compute/virtualMachines/', parameters('vmNodeType0Name'), copyIndex(0))]", | |
| "[concat('Microsoft.Compute/virtualMachines/', parameters('vmNodeType0Name'), copyIndex(0),'/extensions/CustomScriptExtension')]", | |
| "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]" | |
| ], | |
| "properties": { | |
| "type": "ServiceFabricNode", | |
| "autoUpgradeMinorVersion": false, | |
| "protectedSettings": { | |
| "StorageAccountKey1": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key1]", | |
| "StorageAccountKey2": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key2]" | |
| }, | |
| "publisher": "Microsoft.Azure.ServiceFabric", | |
| "settings": { | |
| "clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]", | |
| "nodeTypeRef": "[parameters('vmNodeType0Name')]", | |
| "dataPath": "[parameters('clusterDataPath')]", | |
| "certificate": { | |
| "thumbprint": "[parameters('certificateThumbprint')]", | |
| "x509StoreName": "[parameters('certificateStoreValue')]" | |
| } | |
| }, | |
| "typeHandlerVersion": "1.0" | |
| }, | |
| "copy": { | |
| "name": "vmExtensionLoop", | |
| "count": "[parameters('vmCount')]" | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "apiVersion": "2015-05-01-preview", | |
| "type": "Microsoft.Compute/virtualMachines/extensions", | |
| "name": "[concat(parameters('vmNodeType0Name'),copyIndex(0),'/Microsoft.Insights.VMDiagnosticsSettings')]", | |
| "location": "[parameters('computeLocation')]", | |
| "dependsOn": [ | |
| "[concat('Microsoft.Compute/virtualMachines/', parameters('vmNodeType0Name'), copyIndex(0))]", | |
| "[concat('Microsoft.Storage/storageAccounts/', parameters('applicationDiagnosticsStorageAccountName'))]", | |
| "[concat('Microsoft.Compute/virtualMachines/',parameters('vmNodeType0Name'),copyIndex(0),'/extensions/ServiceFabricNode')]" | |
| ], | |
| "properties": { | |
| "type": "IaaSDiagnostics", | |
| "autoUpgradeMinorVersion": true, | |
| "protectedSettings": { | |
| "storageAccountName": "[parameters('applicationDiagnosticsStorageAccountName')]", | |
| "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]", | |
| "storageAccountEndPoint": "https://core.windows.net/" | |
| }, | |
| "publisher": "Microsoft.Azure.Diagnostics", | |
| "settings": { | |
| "WadCfg": { | |
| "DiagnosticMonitorConfiguration": { | |
| "overallQuotaInMB": "50000", | |
| "EtwProviders": { | |
| "EtwEventSourceProviderConfiguration": [ | |
| { | |
| "provider": "Microsoft-ServiceFabric-Actors", | |
| "scheduledTransferKeywordFilter": "1", | |
| "scheduledTransferPeriod": "PT5M", | |
| "DefaultEvents": { | |
| "eventDestination": "ServiceFabricReliableActorEventTable" | |
| } | |
| }, | |
| { | |
| "provider": "Microsoft-ServiceFabric-Services", | |
| "scheduledTransferPeriod": "PT5M", | |
| "DefaultEvents": { | |
| "eventDestination": "ServiceFabricReliableServiceEventTable" | |
| } | |
| } | |
| ], | |
| "EtwManifestProviderConfiguration": [ | |
| { | |
| "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8", | |
| "scheduledTransferLogLevelFilter": "Information", | |
| "scheduledTransferKeywordFilter": "4611686018427387904", | |
| "scheduledTransferPeriod": "PT5M", | |
| "DefaultEvents": { | |
| "eventDestination": "ServiceFabricSystemEventTable" | |
| } | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "StorageAccount": "[parameters('applicationDiagnosticsStorageAccountName')]" | |
| }, | |
| "typeHandlerVersion": "1.5" | |
| }, | |
| "copy": { | |
| "name": "vmExtensionLoop", | |
| "count": "[parameters('vmCount')]" | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "apiVersion": "2015-05-01-preview", | |
| "type": "Microsoft.Compute/virtualMachines", | |
| "name": "[concat(parameters('vmNodeType0Name'),copyIndex(0))]", | |
| "location": "[parameters('computeLocation')]", | |
| "dependsOn": [ | |
| "[concat('Microsoft.Compute/availabilitySets/', parameters('availSetName'),'-',0)]", | |
| "[concat('Microsoft.Storage/storageAccounts/', parameters('vmStorageAccountName'))]", | |
| "[concat('Microsoft.Network/networkInterfaces/', concat(parameters('nicName'),'-',0,'-',copyIndex(0)))]" | |
| ], | |
| "properties": { | |
| "availabilitySet": { | |
| "id": "[resourceId('Microsoft.Compute/availabilitySets', concat(parameters('availSetName'),'-',0))]" | |
| }, | |
| "hardwareProfile": { | |
| "vmSize": "[parameters('vmNodeType0Size')]" | |
| }, | |
| "networkProfile": { | |
| "networkInterfaces": [ | |
| { | |
| "id": "[resourceId('Microsoft.Network/networkInterfaces',concat(parameters('nicName'),'-',0,'-',copyIndex(0)))]" | |
| } | |
| ] | |
| }, | |
| "osProfile": { | |
| "adminPassword": "[parameters('adminPassword')]", | |
| "adminUsername": "[parameters('adminUsername')]", | |
| "computername": "[concat(parameters('vmNodeType0Name'),copyIndex(0))]", | |
| "secrets": [ | |
| { | |
| "sourceVault": { | |
| "id": "[parameters('sourceVaultValue')]" | |
| }, | |
| "vaultCertificates": [ | |
| { | |
| "certificateStore": "[parameters('certificateStoreValue')]", | |
| "certificateUrl": "[parameters('certificateUrlValue')]" | |
| } | |
| ] | |
| } | |
| ], | |
| "windowsConfiguration": { | |
| "enableAutomaticUpdates": false, | |
| "provisionVMAgent": true | |
| } | |
| }, | |
| "storageProfile": { | |
| "imageReference": { | |
| "publisher": "[parameters('vmImagePublisher')]", | |
| "offer": "[parameters('vmImageOffer')]", | |
| "sku": "[parameters('vmImageSku')]", | |
| "version": "[parameters('vmImageVersion')]" | |
| }, | |
| "osDisk": { | |
| "name": "osdisk", | |
| "vhd": { | |
| "uri": "[concat('http://',parameters('vmStorageAccountName'),'.blob.core.windows.net/',parameters('vmStorageAccountContainerName'),'/',resourcegroup().name,'-',parameters('vmNodeType0Name'),copyIndex(0),'.vhd')]" | |
| }, | |
| "caching": "ReadWrite", | |
| "createOption": "FromImage" | |
| }, | |
| "dataDisks": [ | |
| { | |
| "lun": 0, | |
| "name": "datadisk", | |
| "diskSizeGB": 1000, | |
| "caching": "ReadOnly", | |
| "createOption": "Empty", | |
| "vhd": { | |
| "Uri": "[concat('http://',parameters('vmStorageAccountName'),'.blob.core.windows.net/',parameters('vmStorageAccountContainerName'),'/',resourcegroup().name,'-',parameters('vmNodeType0Name'),copyIndex(0),'.data.vhd')]" | |
| } | |
| } | |
| ] | |
| } | |
| }, | |
| "copy": { | |
| "name": "vmLoop", | |
| "count": "[parameters('vmCount')]" | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "type": "Microsoft.Compute/virtualMachines/extensions", | |
| "name": "[concat(parameters('vmNodeType0Name'),copyIndex(0),'/CustomScriptExtension')]", | |
| "apiVersion": "2015-05-01-preview", | |
| "location": "[parameters('computeLocation')]", | |
| "dependsOn": [ | |
| "[concat('Microsoft.Compute/virtualMachines/', parameters('vmNodeType0Name'),copyIndex(0))]" | |
| ], | |
| "properties": { | |
| "publisher": "Microsoft.Compute", | |
| "type": "CustomScriptExtension", | |
| "typeHandlerVersion": "1.2", | |
| "settings": { | |
| "fileUris": [ "[parameters('scriptUrl')]" ], | |
| "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -file ',parameters('scriptName'))]" | |
| } | |
| }, | |
| "copy": { | |
| "name": "vmLoop", | |
| "count": "[parameters('vmCount')]" | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "apiVersion": "2015-05-01-preview", | |
| "type": "Microsoft.Network/publicIPAddresses", | |
| "name": "[concat(parameters('lbIPName'),'-','0')]", | |
| "location": "[parameters('computeLocation')]", | |
| "properties": { | |
| "dnsSettings": { | |
| "domainNameLabel": "[parameters('dnsName')]" | |
| }, | |
| "publicIPAllocationMethod": "Dynamic" | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "apiVersion": "2015-05-01-preview", | |
| "type": "Microsoft.Network/loadBalancers", | |
| "name": "[concat(parameters('lbName'),'-','0')]", | |
| "location": "[parameters('computeLocation')]", | |
| "dependsOn": [ | |
| "[concat('Microsoft.Network/publicIPAddresses/',concat(parameters('lbIPName'),'-','0'))]" | |
| ], | |
| "properties": { | |
| "frontendIPConfigurations": [ | |
| { | |
| "name": "LoadBalancerIPConfig", | |
| "properties": { | |
| "publicIPAddress": { | |
| "id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(parameters('lbIPName'),'-','0'))]" | |
| } | |
| } | |
| } | |
| ], | |
| "backendAddressPools": [ | |
| { | |
| "name": "LoadBalancerBEAddressPool", | |
| "properties": {} | |
| } | |
| ], | |
| "inboundNatRules": [ | |
| { | |
| "name": "RDP-VM-0-0", | |
| "properties": { | |
| "backendPort": "3389", | |
| "frontendIPConfiguration": { | |
| "id": "[variables('lbIPConfig0')]" | |
| }, | |
| "frontendPort": "33000", | |
| "protocol": "tcp" | |
| } | |
| }, | |
| { | |
| "name": "RDP-VM-0-1", | |
| "properties": { | |
| "backendPort": "3389", | |
| "frontendIPConfiguration": { | |
| "id": "[variables('lbIPConfig0')]" | |
| }, | |
| "frontendPort": "33001", | |
| "protocol": "tcp" | |
| } | |
| }, | |
| { | |
| "name": "RDP-VM-0-2", | |
| "properties": { | |
| "backendPort": "3389", | |
| "frontendIPConfiguration": { | |
| "id": "[variables('lbIPConfig0')]" | |
| }, | |
| "frontendPort": "33002", | |
| "protocol": "tcp" | |
| } | |
| }, | |
| { | |
| "name": "RDP-VM-0-3", | |
| "properties": { | |
| "backendPort": "3389", | |
| "frontendIPConfiguration": { | |
| "id": "[variables('lbIPConfig0')]" | |
| }, | |
| "frontendPort": "33003", | |
| "protocol": "tcp" | |
| } | |
| }, | |
| { | |
| "name": "RDP-VM-0-4", | |
| "properties": { | |
| "backendPort": "3389", | |
| "frontendIPConfiguration": { | |
| "id": "[variables('lbIPConfig0')]" | |
| }, | |
| "frontendPort": "33004", | |
| "protocol": "tcp" | |
| } | |
| } | |
| ], | |
| "loadBalancingRules": [ | |
| { | |
| "name": "LBRule", | |
| "properties": { | |
| "backendAddressPool": { | |
| "id": "[variables('lbPoolID0')]" | |
| }, | |
| "backendPort": "[parameters('fabricTcpGatewayPort')]", | |
| "enableFloatingIP": "false", | |
| "frontendIPConfiguration": { | |
| "id": "[variables('lbIPConfig0')]" | |
| }, | |
| "frontendPort": "[parameters('fabricTcpGatewayPort')]", | |
| "idleTimeoutInMinutes": "5", | |
| "probe": { | |
| "id": "[variables('lbProbeID0')]" | |
| }, | |
| "protocol": "tcp" | |
| } | |
| }, | |
| { | |
| "name": "LBHttpRule", | |
| "properties": { | |
| "backendAddressPool": { | |
| "id": "[variables('lbPoolID0')]" | |
| }, | |
| "backendPort": "[parameters('fabricHttpGatewayPort')]", | |
| "enableFloatingIP": "false", | |
| "frontendIPConfiguration": { | |
| "id": "[variables('lbIPConfig0')]" | |
| }, | |
| "frontendPort": "[parameters('fabricHttpGatewayPort')]", | |
| "idleTimeoutInMinutes": "5", | |
| "probe": { | |
| "id": "[variables('lbHttpProbeID0')]" | |
| }, | |
| "protocol": "tcp" | |
| } | |
| }, | |
| { | |
| "name": "AppPortLBRule1", | |
| "properties": { | |
| "backendAddressPool": { | |
| "id": "[variables('lbPoolID0')]" | |
| }, | |
| "backendPort": "[parameters('loadBalancedAppPort1')]", | |
| "enableFloatingIP": "false", | |
| "frontendIPConfiguration": { | |
| "id": "[variables('lbIPConfig0')]" | |
| }, | |
| "frontendPort": "[parameters('loadBalancedAppPort1')]", | |
| "idleTimeoutInMinutes": "5", | |
| "probe": { | |
| "id": "[concat(variables('lbID0'),'/probes/AppPortProbe1')]" | |
| }, | |
| "protocol": "tcp" | |
| } | |
| }, | |
| { | |
| "name": "AppPortLBRule2", | |
| "properties": { | |
| "backendAddressPool": { | |
| "id": "[variables('lbPoolID0')]" | |
| }, | |
| "backendPort": "[parameters('loadBalancedAppPort2')]", | |
| "enableFloatingIP": "false", | |
| "frontendIPConfiguration": { | |
| "id": "[variables('lbIPConfig0')]" | |
| }, | |
| "frontendPort": "[parameters('loadBalancedAppPort2')]", | |
| "idleTimeoutInMinutes": "5", | |
| "probe": { | |
| "id": "[concat(variables('lbID0'),'/probes/AppPortProbe2')]" | |
| }, | |
| "protocol": "tcp" | |
| } | |
| } | |
| ], | |
| "probes": [ | |
| { | |
| "name": "FabricGatewayProbe", | |
| "properties": { | |
| "intervalInSeconds": 5, | |
| "numberOfProbes": 2, | |
| "port": "[parameters('fabricTcpGatewayPort')]", | |
| "protocol": "tcp" | |
| } | |
| }, | |
| { | |
| "name": "FabricHttpGatewayProbe", | |
| "properties": { | |
| "intervalInSeconds": 5, | |
| "numberOfProbes": 2, | |
| "port": "[parameters('fabricHttpGatewayPort')]", | |
| "protocol": "tcp" | |
| } | |
| }, | |
| { | |
| "name": "AppPortProbe1", | |
| "properties": { | |
| "intervalInSeconds": 5, | |
| "numberOfProbes": 2, | |
| "port": "[parameters('loadBalancedAppPort1')]", | |
| "protocol": "tcp" | |
| } | |
| }, | |
| { | |
| "name": "AppPortProbe2", | |
| "properties": { | |
| "intervalInSeconds": 5, | |
| "numberOfProbes": 2, | |
| "port": "[parameters('loadBalancedAppPort2')]", | |
| "protocol": "tcp" | |
| } | |
| } | |
| ] | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| }, | |
| { | |
| "apiVersion": "2015-01-01-alpha", | |
| "type": "Microsoft.ServiceFabric/clusters", | |
| "name": "[parameters('clusterName')]", | |
| "location": "[parameters('clusterLocation')]", | |
| "dependsOn": [ | |
| "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]" | |
| ], | |
| "properties": { | |
| "certificate": { | |
| "thumbprint": "[parameters('certificateThumbprint')]", | |
| "x509StoreName": "[parameters('certificateStoreValue')]" | |
| }, | |
| "clientCertificateCommonNames": [], | |
| "clientCertificateThumbprints": [], | |
| "diagnosticsStorageAccountConfig": { | |
| "blobEndpoint": "[concat('https://',parameters('supportLogStorageAccountName'),'.blob.core.windows.net/')]", | |
| "protectedAccountKeyName": "StorageAccountKey1", | |
| "queueEndpoint": "[concat('https://',parameters('supportLogStorageAccountName'),'.queue.core.windows.net/')]", | |
| "storageAccountName": "[parameters('supportLogStorageAccountName')]", | |
| "tableEndpoint": "[concat('https://',parameters('supportLogStorageAccountName'),'.table.core.windows.net/')]" | |
| }, | |
| "expectedVMResources": [ | |
| { | |
| "name": "[parameters('vmNodeType0Name')]", | |
| "nodeTypeRef": "[parameters('vmNodeType0Name')]", | |
| "vmInstanceCount": "[parameters('vmCount')]" | |
| } | |
| ], | |
| "fabricSettings": [ | |
| { | |
| "parameters": [ | |
| { | |
| "name": "ClusterProtectionLevel", | |
| "value": "[parameters('clusterProtectionLevel')]" | |
| } | |
| ], | |
| "name": "Security" | |
| } | |
| ], | |
| "managementEndpoint": "[concat('https://',reference(concat(parameters('lbIPName'),'-','0')).dnsSettings.fqdn,':',parameters('fabricHttpGatewayPort'))]", | |
| "nodeTypes": [ | |
| { | |
| "name": "[parameters('vmNodeType0Name')]", | |
| "applicationPorts": { | |
| "endPort": "[parameters('applicationEndPort')]", | |
| "startPort": "[parameters('applicationStartPort')]" | |
| }, | |
| "clientConnectionEndpointPort": "[parameters('fabricTcpGatewayPort')]", | |
| "ephemeralPorts": { | |
| "endPort": "[parameters('ephemeralEndPort')]", | |
| "startPort": "[parameters('ephemeralStartPort')]" | |
| }, | |
| "httpGatewayEndpointPort": "[parameters('fabricHttpGatewayPort')]", | |
| "isPrimary": true | |
| } | |
| ] | |
| }, | |
| "tags": { | |
| "resourceType": "Service Fabric", | |
| "clusterName": "[parameters('clusterName')]" | |
| } | |
| } | |
| ], | |
| "outputs": { | |
| "clusterProperties": { | |
| "value": "[reference(parameters('clusterName'))]", | |
| "type": "object" | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", | |
| "contentVersion": "1.0.0.1", | |
| "parameters": { | |
| "clusterName": { | |
| "value": "examplecluster-dev" | |
| }, | |
| "clusterDataPath": { | |
| "value": "F:\\SF" | |
| }, | |
| "dnsName": { | |
| "value": "examplecluster-dev" | |
| }, | |
| "vmNodeType0Name": { | |
| "value": "EXAMPLEVM" | |
| }, | |
| "vmCount": { | |
| "value": 3 | |
| }, | |
| "vmNodeType0Size": { | |
| "value": "Standard_DS1" | |
| }, | |
| "storageAccountType": { | |
| "value": "Premium_LRS" | |
| }, | |
| "vmStorageAccountName": { | |
| "value": "exampleclusterdevus" | |
| }, | |
| "supportLogStorageAccountName": { | |
| "value": "exampleclusterdevlogus" | |
| }, | |
| "applicationDiagnosticsStorageAccountName": { | |
| "value": "exampleclusterdevdiagnosticsus" | |
| }, | |
| "adminUserName": { | |
| "value": "<insert value>" | |
| }, | |
| "adminPassword": { | |
| "value": "<insert value>" | |
| }, | |
| "certificateThumbprint": { | |
| "value": "<insert value>" | |
| }, | |
| "sourceVaultValue": { | |
| "value": "<insert value>" | |
| }, | |
| "certificateUrlValue": { | |
| "value": "<insert value>" | |
| }, | |
| "clusterProtectionLevel": { | |
| "value": "EncryptAndSign" | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Get-Disk |` | |
| Where partitionstyle -eq 'raw' |` | |
| Initialize-Disk -PartitionStyle MBR -PassThru |` | |
| New-Partition -AssignDriveLetter -UseMaximumSize |` | |
| Format-Volume -FileSystem NTFS -NewFileSystemLabel "datadisk" -Confirm:$false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment