Skip to content

Instantly share code, notes, and snippets.

@hantuzun
Last active November 2, 2017 13:30
Show Gist options
  • Save hantuzun/2c041732bd888fa3a6d048bbd5b1f375 to your computer and use it in GitHub Desktop.
Save hantuzun/2c041732bd888fa3a6d048bbd5b1f375 to your computer and use it in GitHub Desktop.
dcos-artifacts/testing/root/azure/acs-1master.azuredeploy.json
{
"contentVersion": "1.0.0.0",
"variables": {
"masterStorageAccountName": "[concat(variables('storageAccountBaseName'), 'mstr0')]",
"orchestratorName": "dcos",
"agentEndpointDNSNamePrefix": "[tolower(parameters('agentEndpointDNSNamePrefix'))]",
"agentsPublicLbBackendPoolName": "[concat(variables('orchestratorName'), '-agent-pool-', variables('nameSuffix'))]",
"masterCustomScript": "[concat('/bin/bash -c \"/bin/bash /opt/azure/containers/configure-mesos-cluster.sh ',variables('clusterInstallParameters'),' >> /var/log/azure/cluster-bootstrap.log 2>&1\"')]",
"enableNewStorageAccountNaming": "[parameters('enableNewStorageAccountNaming')]",
"masterSizes": [
"Standard_D2_v2",
"Standard_A2"
],
"vmsPerStorageAccount": "[parameters('vmsPerStorageAccount')]",
"agentPublicVMNamePrefix": "[concat(variables('orchestratorName'), '-agent-public-', variables('nameSuffix'))]",
"agentPublicAddressPrefix": "10.0.0.0/11",
"agentPublicCount": "[variables('agentPublicCountPerMasterCount')[string(variables('masterCount'))]]",
"storageAccountBaseNameNewSuffix-false": "",
"accountid": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',variables('diagnosticsStorageAccountResourceGroup'),'/providers/','Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName'))]",
"agentStoragePrivateAccountName": "[concat(variables('storageAccountBaseName'), 'agntpri')]",
"storageLocations": [
"[resourceGroup().location]",
"East US 2 (Stage)"
],
"agentPrivateCount": "[parameters('agentCount')]",
"agentStoragePublicAccountName": "[concat(variables('storageAccountBaseName'), 'agntpub')]",
"clusterInstallParameters": "[concat(variables('masterCount'), ' ',variables('masterVMNamePrefix'), ' ',variables('masterFirstAddr'), ' ',variables('swarmEnabled'),' ',variables('marathonEnabled'),' ',variables('chronosEnabled'),' ',variables('omsStorageAccount'),' ',variables('omsStorageAccountKey'),' ', variables('adminUsername'),' ',variables('postInstallScriptURI'))]",
"agentCustomScript": "[concat('/usr/bin/nohup /bin/bash -c \"/bin/bash /opt/azure/containers/configure-mesos-cluster.sh ',variables('clusterInstallParameters'),' >> /var/log/azure/cluster-bootstrap.log 2>&1 &\" &')]",
"vmSizesMap": {
"Standard_DS13": {
"storageAccountType": "Premium_LRS"
},
"Standard_D5_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_GS1": {
"storageAccountType": "Premium_LRS"
},
"Standard_DS1": {
"storageAccountType": "Premium_LRS"
},
"Standard_D11": {
"storageAccountType": "Standard_LRS"
},
"Standard_D14": {
"storageAccountType": "Standard_LRS"
},
"Standard_D14_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_A8": {
"storageAccountType": "Standard_LRS"
},
"Standard_D12": {
"storageAccountType": "Standard_LRS"
},
"Standard_D2_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_D1": {
"storageAccountType": "Standard_LRS"
},
"Standard_G4": {
"storageAccountType": "Standard_LRS"
},
"Standard_A9": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS12": {
"storageAccountType": "Premium_LRS"
},
"Standard_GS2": {
"storageAccountType": "Premium_LRS"
},
"Standard_GS3": {
"storageAccountType": "Premium_LRS"
},
"Standard_DS4": {
"storageAccountType": "Premium_LRS"
},
"Standard_D13_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_A2": {
"storageAccountType": "Standard_LRS"
},
"Standard_A5": {
"storageAccountType": "Standard_LRS"
},
"Standard_D11_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS2": {
"storageAccountType": "Premium_LRS"
},
"Standard_A6": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS3": {
"storageAccountType": "Premium_LRS"
},
"Standard_D4": {
"storageAccountType": "Standard_LRS"
},
"Standard_A7": {
"storageAccountType": "Standard_LRS"
},
"Standard_D2": {
"storageAccountType": "Standard_LRS"
},
"Standard_D3_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_G2": {
"storageAccountType": "Standard_LRS"
},
"Standard_A3": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS11": {
"storageAccountType": "Premium_LRS"
},
"Standard_GS5": {
"storageAccountType": "Premium_LRS"
},
"Standard_G5": {
"storageAccountType": "Standard_LRS"
},
"Standard_D12_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_D1_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_A10": {
"storageAccountType": "Standard_LRS"
},
"Standard_D3": {
"storageAccountType": "Standard_LRS"
},
"Standard_D4_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_G1": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS14": {
"storageAccountType": "Premium_LRS"
},
"Standard_GS4": {
"storageAccountType": "Premium_LRS"
},
"Standard_D13": {
"storageAccountType": "Standard_LRS"
},
"Standard_A11": {
"storageAccountType": "Standard_LRS"
},
"Standard_G3": {
"storageAccountType": "Standard_LRS"
},
"Standard_A4": {
"storageAccountType": "Standard_LRS"
}
},
"setBrowserFirstTabDefaultSuffix": "0:5050",
"masterNSGID": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('masterNSGName'))]",
"agentsPublicLbID": "[resourceId('Microsoft.Network/loadBalancers',variables('agentsPublicLbName'))]",
"agentsPublicLbName": "[concat(variables('orchestratorName'), '-agent-lb-', variables('nameSuffix'))]",
"osImageVersion": "[variables('linuxVersion')]",
"swarmEnabled": false,
"wadcfgxend": "[concat('\"><MetricAggregation scheduledTransferPeriod=\"PT1H\"/><MetricAggregation scheduledTransferPeriod=\"PT1M\"/></Metrics></DiagnosticMonitorConfiguration></WadCfg>')]",
"enableVMDiagnostics": "[parameters('enableVMDiagnostics')]",
"storageLocation": "[variables('storageLocations')[variables('isValidation')]]",
"masterVMNic": [
"[concat(variables('masterVMNamePrefix'), 'nic-0')]",
"[concat(variables('masterVMNamePrefix'), 'nic-1')]",
"[concat(variables('masterVMNamePrefix'), 'nic-2')]",
"[concat(variables('masterVMNamePrefix'), 'nic-3')]",
"[concat(variables('masterVMNamePrefix'), 'nic-4')]",
"[concat(variables('masterVMNamePrefix'), 'nic-5')]",
"[concat(variables('masterVMNamePrefix'), 'nic-6')]"
],
"masterAddressPrefix": "172.16.0.0/24",
"vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
"agentPrivateVMSSCount": 1,
"agentPublicCountPerMasterCount": {
"1": 1,
"3": 3,
"5": 3
},
"omsStorageAccount": "none",
"agentsPublicLbIPConfigID": "[concat(variables('agentsPublicLbID'),'/frontendIPConfigurations/', variables('agentsPublicLbIPConfigName'))]",
"agentStorageAccountsCount": 5,
"masterLbID": "[resourceId('Microsoft.Network/loadBalancers',variables('masterLbName'))]",
"linuxPublisher": "[parameters('linuxPublisher')]",
"wadlogs": "<WadCfg><DiagnosticMonitorConfiguration>",
"setBrowserFirstTabDefaultPrefix": "powershell.exe -ExecutionPolicy Unrestricted -command \"New-Item -Path HKLM:'\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer' ; New-Item -Path HKLM:'\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer\\BrowserEmulation' ; New-ItemProperty -Path HKLM:'\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer\\BrowserEmulation' -Name IntranetCompatibilityMode -Value 0 -Type DWord; New-Item -Path HKLM:'\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer\\Main' ; New-ItemProperty -Path HKLM:'\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer\\Main' -Name 'Start Page' -Type String -Value http://\"",
"masterHttpsPort443InboundNatRuleId": "[concat(variables('masterLbID'),'/inboundNatRules/HTTPSPort443-',variables('masterVMNamePrefix'),'0')]",
"virtualNetworkName": "[concat(variables('orchestratorName'), '-vnet-', variables('nameSuffix'))]",
"masterEndpointDNSNamePrefix": "[tolower(parameters('masterEndpointDNSNamePrefix'))]",
"diagnosticsStorageAccountResourceGroup": "[resourceGroup().name]",
"masterLbInboundNatRules": [
[
{
"id": "[concat(variables('masterSshInboundNatRuleIdPrefix'),'0')]"
},
{
"id": "[variables('masterSshPort22InboundNatRuleId')]"
},
{
"id": "[variables('masterHttpPort80InboundNatRuleId')]"
},
{
"id": "[variables('masterHttpsPort443InboundNatRuleId')]"
}
],
[
{
"id": "[concat(variables('masterSshInboundNatRuleIdPrefix'),'1')]"
}
],
[
{
"id": "[concat(variables('masterSshInboundNatRuleIdPrefix'),'2')]"
}
],
[
{
"id": "[concat(variables('masterSshInboundNatRuleIdPrefix'),'3')]"
}
],
[
{
"id": "[concat(variables('masterSshInboundNatRuleIdPrefix'),'4')]"
}
]
],
"storageAccountPrefixes": [
"0",
"6",
"c",
"i",
"o",
"u",
"1",
"7",
"d",
"j",
"p",
"v",
"2",
"8",
"e",
"k",
"q",
"w",
"3",
"9",
"f",
"l",
"r",
"x",
"4",
"a",
"g",
"m",
"s",
"y",
"5",
"b",
"h",
"n",
"t",
"z"
],
"masterPublicIPAddressName": "[concat(variables('orchestratorName'), '-master-ip-', variables('masterEndpointDNSNamePrefix'), '-', variables('nameSuffix'))]",
"isValidation": "[parameters('isValidation')]",
"windowsAdminPassword": "[parameters('windowsAdminPassword')]",
"masterFirstAddr": 5,
"masterSshInboundNatRuleIdPrefix": "[concat(variables('masterLbID'),'/inboundNatRules/SSH-',variables('masterVMNamePrefix'))]",
"wadcfgxstart": "[concat(variables('wadlogs'),variables(concat('wadperfcounters1','-',variables('enableVMDiagnostics'))),variables(concat('wadperfcounters2','-',variables('enableVMDiagnostics'))),'<Metrics resourceId=\"')]",
"agentPrivateVMNamePrefix": "[concat(variables('orchestratorName'), '-agent-private-', variables('nameSuffix'))]",
"agentPrivateSubnetName": "[concat(variables('orchestratorName'), '-agentPrivateSubnet')]",
"wadperfcounters2-true": "<PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\BytesPerSecond\" sampleRate=\"PT15S\" unit=\"BytesPerSecond\"><annotation displayName=\"Disk total bytes\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\ReadBytesPerSecond\" sampleRate=\"PT15S\" unit=\"BytesPerSecond\"><annotation displayName=\"Disk read guest OS\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\WriteBytesPerSecond\" sampleRate=\"PT15S\" unit=\"BytesPerSecond\"><annotation displayName=\"Disk write guest OS\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\TransfersPerSecond\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Disk transfers\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\ReadsPerSecond\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Disk reads\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\WritesPerSecond\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Disk writes\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageReadTime\" sampleRate=\"PT15S\" unit=\"Seconds\"><annotation displayName=\"Disk read time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageWriteTime\" sampleRate=\"PT15S\" unit=\"Seconds\"><annotation displayName=\"Disk write time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageTransferTime\" sampleRate=\"PT15S\" unit=\"Seconds\"><annotation displayName=\"Disk transfer time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageDiskQueueLength\" sampleRate=\"PT15S\" unit=\"Count\"><annotation displayName=\"Disk queue length\" locale=\"en-us\"/></PerformanceCounterConfiguration></PerformanceCounters>",
"storageAccountBaseName": "[uniqueString(concat(variables('masterEndpointDNSNamePrefix'),variables(concat('storageAccountBaseNameNewSuffix', '-', variables('enableNewStorageAccountNaming'))), variables('orchestratorName')))]",
"apiVersionStorage": "2015-06-15",
"linuxConfigurations": [
{},
{
"disablePasswordAuthentication": "[variables('disablePasswordAuthentication')]",
"ssh": {
"publicKeys": [
{
"keyData": "[variables('sshRSAPublicKey')]",
"path": "[variables('sshKeyPath')]"
}
]
}
}
],
"oauthEnabled": "[parameters('oauthEnabled')]",
"masterHttpPort80InboundNatRuleId": "[concat(variables('masterLbID'),'/inboundNatRules/HTTPPort80-',variables('masterVMNamePrefix'),'0')]",
"windowsAdminUsername": "[parameters('windowsAdminUsername')]",
"masterVMNamePrefix": "[concat(variables('orchestratorName'), '-master-', variables('nameSuffix'), '-')]",
"wadperfcounters2-false": "",
"omsStorageAccountKey": "none",
"adminPassword": "[parameters('linuxAdminPassword')]",
"agentPublicNSGID": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('agentPublicNSGName'))]",
"disablePasswordAuthentication": "[parameters('disablePasswordAuthentication')]",
"masterLbName": "[concat(variables('orchestratorName'), '-master-lb-', variables('nameSuffix'))]",
"osImageOffer": "[variables('linuxOffer')]",
"agentPrivateNSGID": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('agentPrivateNSGName'))]",
"linuxConfiguration": "[variables('linuxConfigurations')[variables('setLinuxConfigurationForVMCreate')]]",
"masterSshPort22InboundNatRuleName": "[concat(variables('masterLbName'),'/SSHPort22-',variables('masterVMNamePrefix'),'0')]",
"masterCount": 1,
"masterHttpsPort443InboundNatRuleName": "[concat(variables('masterLbName'),'/HTTPSPort443-',variables('masterVMNamePrefix'),'0')]",
"diagnosticsStorageAccountName-true": "[variables('diagnosticsStorageAccountName')]",
"setLinuxConfigurationForVMCreate": "[parameters('setLinuxConfigurationForVMCreate')]",
"wadperfcounters1-false": "",
"nameSuffix": "[parameters('nameSuffix')]",
"masterSubnetName": "[concat(variables('orchestratorName'), '-masterSubnet')]",
"wadperfcounters1-true": "<PerformanceCounters scheduledTransferPeriod=\"PT1M\"><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\AvailableMemory\" sampleRate=\"PT15S\" unit=\"Bytes\"><annotation displayName=\"Memory available\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PercentAvailableMemory\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Mem. percent available\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\UsedMemory\" sampleRate=\"PT15S\" unit=\"Bytes\"><annotation displayName=\"Memory used\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PercentUsedMemory\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Memory percentage\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PercentUsedByCache\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Mem. used by cache\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentIdleTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU idle time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentUserTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU user time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentProcessorTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU percentage guest OS\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentIOWaitTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU IO wait time\" locale=\"en-us\"/></PerformanceCounterConfiguration>",
"osImageSKU": "[variables('linuxSku')]",
"agentPublicSubnetName": "[concat(variables('orchestratorName'), '-agentPublicSubnet')]",
"agentPrivateNSGName": "[concat(variables('orchestratorName'), '-agent-private-nsg-', variables('nameSuffix'))]",
"storageAccountBaseNameNewSuffix-true": "[resourceGroup().location]",
"masterLbBackendPoolName": "[concat(variables('orchestratorName'), '-master-pool-', variables('nameSuffix'))]",
"TemplateGenerationDate": "2017-11-02 13:12:31.726150",
"postInstallScriptURI": "[parameters('postInstallScriptURI')]",
"agentPublicNSGName": "[concat(variables('orchestratorName'), '-agent-public-nsg-', variables('nameSuffix'))]",
"chronosEnabled": true,
"apiVersionDefault": "2016-03-30",
"masterSshInboundNatRuleNamePrefix": "[concat(variables('masterLbName'),'/SSH-',variables('masterVMNamePrefix'))]",
"linuxSku": "[parameters('linuxSku')]",
"masterVMSize": "[variables('masterSizes')[variables('isValidation')]]",
"agentAvailabilitySet": "[concat(variables('orchestratorName'), '-agent-availabilitySet-', variables('nameSuffix'))]",
"osImagePublisher": "[variables('linuxPublisher')]",
"masterAvailabilitySet": "[concat(variables('orchestratorName'), '-master-availabilitySet-', variables('nameSuffix'))]",
"masterHttpPort80InboundNatRuleName": "[concat(variables('masterLbName'),'/HTTPPort80-',variables('masterVMNamePrefix'),'0')]",
"masterStorageAccountExhibitorName": "[concat(variables('storageAccountBaseName'), 'exhb0')]",
"DcosImageCommit": "fb460ce6c54e36b48a3188aff6fcbe631012f84d",
"masterLbIPConfigID": "[concat(variables('masterLbID'),'/frontendIPConfigurations/', variables('masterLbIPConfigName'))]",
"marathonEnabled": true,
"agentAddressPrefix": "10.0.0.0/8",
"agentsPublicLbIPConfigName": "[concat(variables('orchestratorName'), '-agent-lbFrontEnd-', variables('nameSuffix'))]",
"diagnosticsStorageAccountName": "[concat(variables('storageAccountBaseName'), 'diag', '0')]",
"masterNSGName": "[concat(variables('orchestratorName'), '-master-nsg-', variables('nameSuffix'))]",
"agentFirstAddr": 20,
"storageAccountPrefixesCount": "[length(variables('storageAccountPrefixes'))]",
"agentsPerIPv4Octet": 200,
"masterSshPort22InboundNatRuleId": "[concat(variables('masterLbID'),'/inboundNatRules/SSHPort22-',variables('masterVMNamePrefix'),'0')]",
"agentPrivateAddressPrefix": "10.32.0.0/11",
"sshRSAPublicKey": "[parameters('sshRSAPublicKey')]",
"agentVMSize": "[parameters('agentVMSize')]",
"sshKeyPath": "[concat('/home/', variables('adminUsername'), '/.ssh/authorized_keys')]",
"agentPublicVMSSCount": 1,
"masterLbIPConfigName": "[concat(variables('orchestratorName'), '-master-lbFrontEnd-', variables('nameSuffix'))]",
"adminUsername": "[parameters('linuxAdminUsername')]",
"masterSubnetRef": "[concat(variables('vnetID'),'/subnets/',variables('masterSubnetName'))]",
"linuxVersion": "[parameters('linuxVersion')]",
"allowMasterHttp": {
"true": "Allow",
"false": "Deny"
},
"linuxOffer": "[parameters('linuxOffer')]",
"agentPublicIPAddressName": "[concat(variables('orchestratorName'), '-agent-ip-', variables('agentEndpointDNSNamePrefix'), '-', variables('nameSuffix'))]",
"diagnosticsStorageAccountName-false": ""
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"properties": {
"accountType": "[variables('vmSizesMap')[variables('masterVMSize')].storageAccountType]"
},
"location": "[variables('storageLocation')]",
"apiVersion": "[variables('apiVersionStorage')]",
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"name": "[variables('masterStorageAccountName')]"
},
{
"type": "Microsoft.Storage/storageAccounts",
"properties": {
"accountType": "Standard_LRS"
},
"location": "[variables('storageLocation')]",
"apiVersion": "[variables('apiVersionStorage')]",
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"name": "[variables('masterStorageAccountExhibitorName')]"
},
{
"type": "Microsoft.Storage/storageAccounts",
"properties": {
"accountType": "Standard_LRS"
},
"location": "[variables('storageLocation')]",
"apiVersion": "[variables('apiVersionStorage')]",
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"name": "[variables('diagnosticsStorageAccountName')]"
},
{
"type": "Microsoft.Network/virtualNetworks",
"properties": {
"subnets": [
{
"properties": {
"addressPrefix": "[variables('masterAddressPrefix')]"
},
"name": "[variables('masterSubnetName')]"
},
{
"properties": {
"addressPrefix": "[variables('agentPublicAddressPrefix')]",
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('agentPublicNSGName'))]"
}
},
"name": "[variables('agentPublicSubnetName')]"
},
{
"properties": {
"addressPrefix": "[variables('agentPrivateAddressPrefix')]",
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('agentPrivateNSGName'))]"
}
},
"name": "[variables('agentPrivateSubnetName')]"
}
],
"addressSpace": {
"addressPrefixes": [
"[variables('masterAddressPrefix')]",
"[variables('agentAddressPrefix')]"
]
}
},
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[concat('Microsoft.Network/networkSecurityGroups/', variables('agentPublicNSGName'))]",
"[concat('Microsoft.Network/networkSecurityGroups/', variables('agentPrivateNSGName'))]"
],
"name": "[variables('virtualNetworkName')]"
},
{
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Compute/availabilitySets",
"properties": {},
"name": "[variables('masterAvailabilitySet')]"
},
{
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/publicIPAddresses",
"properties": {
"publicIPAllocationMethod": "Dynamic",
"dnsSettings": {
"domainNameLabel": "[variables('masterEndpointDNSNamePrefix')]"
}
},
"name": "[variables('masterPublicIPAddressName')]"
},
{
"type": "Microsoft.Network/loadBalancers",
"properties": {
"backendAddressPools": [
{
"name": "[variables('masterLbBackendPoolName')]"
}
],
"frontendIPConfigurations": [
{
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('masterPublicIPAddressName'))]"
}
},
"name": "[variables('masterLbIPConfigName')]"
}
]
},
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"name": "[variables('masterLbName')]"
},
{
"type": "Microsoft.Network/loadBalancers/inboundNatRules",
"properties": {
"enableFloatingIP": false,
"frontendIPConfiguration": {
"id": "[variables('masterLbIPConfigID')]"
},
"protocol": "tcp",
"frontendPort": "[copyIndex(2200)]",
"backendPort": 22
},
"location": "[resourceGroup().location]",
"copy": {
"count": "[variables('masterCount')]",
"name": "masterLbLoopNode"
},
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[variables('masterLbID')]"
],
"name": "[concat(variables('masterLbName'), '/', 'SSH-', variables('masterVMNamePrefix'), copyIndex())]"
},
{
"type": "Microsoft.Network/loadBalancers/inboundNatRules",
"properties": {
"frontendIPConfiguration": {
"id": "[variables('masterLbIPConfigID')]"
},
"backendPort": 2222,
"protocol": "tcp",
"frontendPort": 22,
"enableFloatingIP": false
},
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[variables('masterLbID')]"
],
"name": "[variables('masterSshPort22InboundNatRuleName')]"
},
{
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/networkSecurityGroups",
"properties": {
"securityRules": [
{
"properties": {
"sourcePortRange": "*",
"destinationAddressPrefix": "*",
"direction": "Inbound",
"priority": 200,
"destinationPortRange": 22,
"description": "Allow SSH",
"protocol": "Tcp",
"access": "Allow",
"sourceAddressPrefix": "*"
},
"name": "ssh"
},
{
"properties": {
"sourcePortRange": "*",
"destinationAddressPrefix": "*",
"direction": "Inbound",
"priority": 201,
"destinationPortRange": 2222,
"description": "Allow SSH",
"protocol": "Tcp",
"access": "Allow",
"sourceAddressPrefix": "*"
},
"name": "sshPort22"
},
{
"properties": {
"sourcePortRange": "*",
"destinationAddressPrefix": "*",
"direction": "Inbound",
"priority": 202,
"destinationPortRange": 80,
"description": "HTTP Port 80",
"protocol": "Tcp",
"access": "[variables('allowMasterHttp')[variables('oauthEnabled')]]",
"sourceAddressPrefix": "*"
},
"name": "httpPort80"
},
{
"properties": {
"sourcePortRange": "*",
"destinationAddressPrefix": "*",
"direction": "Inbound",
"priority": 203,
"destinationPortRange": 443,
"description": "HTTPS Port 443",
"protocol": "Tcp",
"access": "[variables('allowMasterHttp')[variables('oauthEnabled')]]",
"sourceAddressPrefix": "*"
},
"name": "httpsPort443"
}
]
},
"name": "[variables('masterNSGName')]"
},
{
"type": "Microsoft.Network/loadBalancers/inboundNatRules",
"properties": {
"frontendIPConfiguration": {
"id": "[variables('masterLbIPConfigID')]"
},
"backendPort": 80,
"protocol": "tcp",
"frontendPort": 80,
"enableFloatingIP": false
},
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[variables('masterLbID')]"
],
"name": "[variables('masterHttpPort80InboundNatRuleName')]"
},
{
"type": "Microsoft.Network/loadBalancers/inboundNatRules",
"properties": {
"frontendIPConfiguration": {
"id": "[variables('masterLbIPConfigID')]"
},
"backendPort": 443,
"protocol": "tcp",
"frontendPort": 443,
"enableFloatingIP": false
},
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[variables('masterLbID')]"
],
"name": "[variables('masterHttpsPort443InboundNatRuleName')]"
},
{
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/networkSecurityGroups",
"name": "[variables('agentPrivateNSGName')]"
},
{
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/networkSecurityGroups",
"properties": {
"securityRules": [
{
"properties": {
"sourcePortRange": "*",
"destinationAddressPrefix": "*",
"direction": "Inbound",
"priority": 200,
"destinationPortRange": 80,
"description": "Allow HTTP traffic from the Internet to Public Agents",
"protocol": "*",
"access": "Allow",
"sourceAddressPrefix": "Internet"
},
"name": "Allow_HTTP"
},
{
"properties": {
"sourcePortRange": "*",
"destinationAddressPrefix": "*",
"direction": "Inbound",
"priority": 300,
"destinationPortRange": 443,
"description": "Allow HTTPS traffic from the Internet to Public Agents",
"protocol": "*",
"access": "Allow",
"sourceAddressPrefix": "Internet"
},
"name": "Allow_HTTPS"
},
{
"properties": {
"sourcePortRange": "*",
"destinationAddressPrefix": "*",
"direction": "Inbound",
"priority": 400,
"destinationPortRange": 8080,
"description": "Allow 8080 traffic from the Internet to Public Agents",
"protocol": "*",
"access": "Allow",
"sourceAddressPrefix": "Internet"
},
"name": "Allow_8080"
}
]
},
"name": "[variables('agentPublicNSGName')]"
},
{
"type": "Microsoft.Network/networkInterfaces",
"properties": {
"networkSecurityGroup": {
"id": "[variables('masterNSGID')]"
},
"ipConfigurations": [
{
"properties": {
"privateIPAllocationMethod": "Static",
"loadBalancerInboundNatRules": "[variables('masterLbInboundNatRules')[copyIndex()]]",
"subnet": {
"id": "[variables('masterSubnetRef')]"
},
"loadBalancerBackendAddressPools": [
{
"id": "[concat(variables('masterLbID'), '/backendAddressPools/', variables('masterLbBackendPoolName'))]"
}
],
"privateIPAddress": "[concat(split(variables('masterAddressPrefix'),'0/24')[0], copyIndex(variables('masterFirstAddr')))]"
},
"name": "ipConfigNode"
}
]
},
"location": "[resourceGroup().location]",
"copy": {
"count": "[variables('masterCount')]",
"name": "nicLoopNode"
},
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[variables('vnetID')]",
"[concat(variables('masterLbID'),'/inboundNatRules/SSH-',variables('masterVMNamePrefix'),copyIndex())]",
"[variables('masterSshPort22InboundNatRuleId')]",
"[variables('masterHttpPort80InboundNatRuleId')]",
"[variables('masterHttpsPort443InboundNatRuleId')]",
"[variables('masterNSGID')]"
],
"name": "[concat(variables('masterVMNamePrefix'), 'nic-', copyIndex())]"
},
{
"type": "Microsoft.Compute/virtualMachines",
"properties": {
"diagnosticsProfile": {
"bootDiagnostics": {
"storageUri": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]",
"enabled": "[variables('enableVMDiagnostics')]"
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('masterVMNamePrefix'), 'nic-', copyIndex()))]"
}
]
},
"availabilitySet": {
"id": "[resourceId('Microsoft.Compute/availabilitySets',variables('masterAvailabilitySet'))]"
},
"osProfile": {
"computername": "[concat(variables('masterVMNamePrefix'), copyIndex())]",
"adminPassword": "[variables('adminPassword')]",
"adminUsername": "[variables('adminUsername')]",
"customData": "[base64(concat('#cloud-config\n\n', '{\"bootcmd\": [\"bash -c \\\"if [ ! -f /var/lib/sdb-gpt ];then echo DCOS-5890;parted -s /dev/sdb mklabel gpt;touch /var/lib/sdb-gpt;fi\\\"\"], \"disk_setup\": {\"ephemeral0\": {\"layout\": [45, 45, 10], \"overwrite\": true, \"table_type\": \"gpt\"}}, \"fs_setup\": [{\"device\": \"ephemeral0.1\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.2\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.3\", \"filesystem\": \"ext4\", \"overwrite\": true}], \"mounts\": [[\"ephemeral0.1\", \"/var/lib/mesos\"], [\"ephemeral0.2\", \"/var/lib/docker\"], [\"ephemeral0.3\", \"/var/tmp\"]], \"runcmd\": [[\"ln\", \"-s\", \"/bin/rm\", \"/usr/bin/rm\"], [\"ln\", \"-s\", \"/bin/mkdir\", \"/usr/bin/mkdir\"], [\"ln\", \"-s\", \"/bin/tar\", \"/usr/bin/tar\"], [\"ln\", \"-s\", \"/bin/ln\", \"/usr/bin/ln\"], [\"ln\", \"-s\", \"/bin/cp\", \"/usr/bin/cp\"], [\"ln\", \"-s\", \"/bin/systemctl\", \"/usr/bin/systemctl\"], [\"ln\", \"-s\", \"/bin/mount\", \"/usr/bin/mount\"], [\"ln\", \"-s\", \"/bin/bash\", \"/usr/bin/bash\"], [\"ln\", \"-s\", \"/usr/sbin/useradd\", \"/usr/bin/useradd\"], [\"systemctl\", \"disable\", \"--now\", \"resolvconf.service\"], [\"systemctl\", \"mask\", \"--now\", \"lxc-net.service\"], [\"systemctl\", \"disable\", \"--now\", \"unscd.service\"], [\"systemctl\", \"stop\", \"--now\", \"unscd.service\"], \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/1.deb https://az837203.vo.msecnd.net/dcos-deps/libipset3_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/2.deb https://az837203.vo.msecnd.net/dcos-deps/ipset_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/3.deb https://az837203.vo.msecnd.net/dcos-deps/unzip_6.0-20ubuntu1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/4.deb https://az837203.vo.msecnd.net/dcos-deps/libltdl7_2.4.6-0.1_amd64.deb\", \"sed -i \\\"s/^Port 22$/Port 22\\\\nPort 2222/1\\\" /etc/ssh/sshd_config\", \"service ssh restart\", \"bash -c \\\"try=1;until dpkg -i /var/tmp/{1,2,3,4}.deb || ((try>9));do echo retry \\\\$((try++));sleep \\\\$((try*try));done\\\"\", [\"cp\", \"-p\", \"/etc/resolv.conf\", \"/tmp/resolv.conf\"], [\"rm\", \"-f\", \"/etc/resolv.conf\"], [\"cp\", \"-p\", \"/tmp/resolv.conf\", \"/etc/resolv.conf\"], [\"systemctl\", \"start\", \"dcos-docker-install.service\"], [\"systemctl\", \"start\", \"dcos-config-writer.service\"], [\"systemctl\", \"restart\", \"systemd-journald.service\"], [\"systemctl\", \"restart\", \"docker.service\"], [\"systemctl\", \"start\", \"dcos-link-env.service\"], [\"systemctl\", \"enable\", \"dcos-setup.service\"], [\"systemctl\", \"--no-block\", \"start\", \"dcos-setup.service\"]], \"write_files\": [{\"content\": \"file:///home/han/dcos-artifacts/testing\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/repository-url\", \"permissions\": \"0644\"}, {\"content\": \"[\\\"adminrouter--cbcc783426bfa7590ccbb139e279264d67767fb1\\\", \\\"avro-cpp--eb5e3a5a46ecada8ab9e4f8651cb20577453f86f\\\", \\\"boost-libs--2f88af98c228b53e617a427f5b0f347221d7c840\\\", \\\"bootstrap--d45adc8bfd3bc668de1c0d40a58a4c32a753e53e\\\", \\\"boto--c5e8100235e6303caedf630ccef4bb1b1f8f8431\\\", \\\"check-time--948f15b2663b077ea1db65502eabd44c603be20a\\\", \\\"cni--ad8edf651596cb7f67ea3d73e20f95dd0caba1e5\\\", \\\"cosmos--fa7ab42b9a218cecdd080a26e0549277f1bb3b86\\\", \\\"curl--aa99af9bd6c7dda375e4b78b9b27a8d1752c143c\\\", \\\"dcos-checks--7f40f1d77c90f0dedbb9b68e85e808588c157fc9\\\", \\\"dcos-cni--2b9a1e6dff72c4127ce088638498c9a3d681439d\\\", \\\"dcos-config--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-diagnostics--3a01e8f5336b151b2580327dcd9b6c6e8001e1b8\\\", \\\"dcos-history--d443f70ccccc7ccc9ff624e173e023245ad2b272\\\", \\\"dcos-image--b1ef26af36a630c85b3ea1b72bd9c0b8c11cc716\\\", \\\"dcos-image-deps--9e5cd71881382782919bcf97f0cc83c9431d29e0\\\", \\\"dcos-integration-test--adb128bcc0f75a24894eb7eb1cf8173c7a8d9298\\\", \\\"dcos-log--ccefbe47373e2597121155e86337c01fb8bdda8a\\\", \\\"dcos-metadata--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-metrics--63f96229b73e595c294954b961005bedaf25654f\\\", \\\"dcos-oauth--00d6677bbc0f6a82f83da98614f430aaab42f787\\\", \\\"dcos-signal--2a63143c2b44cc81639bcfa9008d774d86d9faa2\\\", \\\"dcos-test-utils--d551873c0cbfde0ed5e92300a5d0858440cddfad\\\", \\\"dcos-ui--cc2e3d26537ea190efacd6f899dd4cc2210d45b7\\\", \\\"dnspython--0241016f3bf1fdd7e43cde67856d2128c9323fdf\\\", \\\"docker-gc--74a4e6a1cd21833fd1a897d9dacaf36200be2d3f\\\", \\\"dvdcli--ee85411e3cb9f0988ed54b5cc0789172b887f12f\\\", \\\"erlang--0861859fe5fbf2419ea8ea642eb5bd489c8ce8f4\\\", \\\"exhibitor--5c1f80c3f502eb19a7ff34ba1049c835e7c89745\\\", \\\"flask--5f8e4dca26dce54e9694d0d9277c19c354b80089\\\", \\\"java--557408224206ff613ca8edec15adc6bb799a43de\\\", \\\"libevent--278aa5fab41ae40d3570b978648c3db3dc70d3b5\\\", \\\"libffi--d6953b348a0dd1af27dc63e847c34c19dd80fc89\\\", \\\"libsodium--d73b59dd3a3358185b5fea355f99ce811d517b8a\\\", \\\"logrotate--92edcfe65c77d675f96dc1dfae1b176e0399f312\\\", \\\"marathon--13360033dd6b5216d0093ec1150bce6b79d9e7e2\\\", \\\"mesos--8fcb46f072de3c42fb7b7dfd0e1a864b3753dd11\\\", \\\"mesos-dns--600da87080b7634f2380594499004a7ff0b34662\\\", \\\"mesos-modules--9eff953b785f921c4e1419b9d5feb9bbd022e1fb\\\", \\\"metronome--a1915935680f1ac59a6dd823c8b9e4c828529b47\\\", \\\"navstar--28db3ac87dc6dc1b0bd398ef26d19dadff0f06f2\\\", \\\"ncurses--a4d7f789e38cae7507d14073a66746d177540d59\\\", \\\"octarine--4e37c062d2f145f9c2ce01d30dadf72c2aac5c4a\\\", \\\"openssl--68a61d031ffb58932c09c3cb9a263246324c9eda\\\", \\\"pkgpanda-api--dafcee8593f6b727fc41447adb1eebc1d8983a1a\\\", \\\"pkgpanda-role--9d8e5111235ab331698045e9451946a32754df67\\\", \\\"pytest--771e3dbc784cd72812ffbaef726fb07065d56bf7\\\", \\\"python--955da518f02d7cf29d663741fdabb01a1c1996c6\\\", \\\"python-azure-mgmt-resource--1f70b4387fc5122ce485c125af783b690c61577e\\\", \\\"python-cryptography--c63062028a7235a6eb1166856f2a69da223d2d14\\\", \\\"python-dateutil--83a5ffb68a3b1331d428bc4ceec36f5e6c94d9d8\\\", \\\"python-docopt--69d6958de1e08429158ec8351fd4ae81232aaa24\\\", \\\"python-gunicorn--a58ae272e7a51110b14dad6768c2178783362e96\\\", \\\"python-isodate--cf30adec6a7a83dc07c4d9796470a6a9aad38460\\\", \\\"python-jinja2--c0eadbfd2b19dead679d27c46de58545c365935d\\\", \\\"python-kazoo--252c8c7a908b5a634ffbc6df3d3943bf26c879c5\\\", \\\"python-markupsafe--215a21c08e29eb804ecbe7bf61b103a58f30728b\\\", \\\"python-passlib--bc298e4968d738f2f1e6e87d317e7c73de73f471\\\", \\\"python-pyyaml--c12dac01b6cc0f0554a7af660e9b34d4edceea00\\\", \\\"python-requests--8f2c590a86d38aecdda8689585f9a615fe06d7ba\\\", \\\"python-retrying--b564870447691f62ee5e795ceef8476ba6498d43\\\", \\\"python-tox--ed630faec944a7e5a26887b9112f0a3791c7c977\\\", \\\"rexray--da7f17f8a4b772c0bac3f8d289a08abd4ff272b4\\\", \\\"six--070835068ef97ddc1d92a3b38f2771c6ea3a598b\\\", \\\"spartan--071db9b9a6351be51a6ba15db628c1c5476e4da0\\\", \\\"strace--34b42788d979e1a59519090c37554b037c8b2125\\\", \\\"teamcity-messages--b3464920ac571959e3595f09ceda3db47b9cecea\\\", \\\"toybox--97c5d0bbfef600fad9fa41ee8d60d9be9122fd42\\\"]\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/cluster-packages.json\", \"permissions\": \"0644\"}, {\"content\": \"[Journal]\\nMaxLevelConsole=warning\\nRateLimitInterval=1s\\nRateLimitBurst=20000\\n\", \"owner\": \"root\", \"path\": \"/etc/systemd/journald.conf.d/dcos.conf\", \"permissions\": \"0644\"}, {\"content\": \"rexray:\\n loglevel: info\\n modules:\\n default-docker:\\n disabled: true\\n service: vfs\\n\", \"path\": \"/etc/rexray/config.yml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nType=oneshot\\nEnvironment=DEBIAN_FRONTEND=noninteractive\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/d.deb https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.09.0~ce-0~ubuntu_amd64.deb\\nExecStart=/usr/bin/bash -c \\\"try=1;until dpkg -D3 -i /var/tmp/d.deb || ((try>9));do echo retry $((try++));sleep $((try*try));done;systemctl --now start docker;systemctl restart docker.socket\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-docker-install.service\", \"permissions\": \"0644\"}, {\"content\": \"[Service]\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=15\\nExecStartPre=-/sbin/ip link del docker0\\nExecStart=\\nExecStart=/usr/bin/dockerd --storage-driver=overlay\\n\", \"path\": \"/etc/systemd/system/docker.service.d/execstart.conf\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nPartOf=docker.service\\n[Socket]\\nListenStream=/var/run/docker.sock\\nSocketMode=0660\\nSocketUser=root\\nSocketGroup=docker\\nListenStream=2375\\nBindIPv6Only=both\\n[Install]\\nWantedBy=sockets.target\\n\", \"path\": \"/etc/systemd/system/docker.socket\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nRequires=dcos-setup.service\\nAfter=dcos-setup.service\\n[Service]\\nType=oneshot\\nEnvironmentFile=/etc/environment\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/usr/bin/bash -c \\\"echo $(detect_ip) $(hostname) > /etc/hosts\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-config-writer.service\", \"permissions\": \"0644\"}, {\"content\": \"\\\"bound_values\\\":\\n \\\"adminrouter_auth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n \\\"cluster_name\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"exhibitor_azure_account_key\\\": |-\\n ', listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('masterStorageAccountExhibitorName')), '2015-06-15').key1, '\\n \\\"exhibitor_azure_account_name\\\": |-\\n ', variables('masterStorageAccountExhibitorName'), '\\n \\\"exhibitor_azure_prefix\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"master_list\\\": |-\\n [\\\"', reference(variables('masterVMNic')[0]).ipConfigurations[0].properties.privateIPAddress, '\\\"]\\n \\\"oauth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n\\\"late_bound_package_id\\\": |-\\n dcos-provider-09af16449dc7076a197431a3c5130ab7bdf01b22-azure--setup\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/late-config.yaml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nBefore=dcos.target\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/mkdir -p /etc/profile.d\\nExecStart=/usr/bin/ln -sf /opt/mesosphere/bin/add_dcos_path.sh /etc/profile.d/dcos.sh\\n\", \"path\": \"/etc/systemd/system/dcos-link-env.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Download DC/OS to this host.\\nAfter=network-online.target\\nWants=network-online.target\\nConditionPathExists=!/opt/mesosphere/\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl --keepalive-time 2 -fLsSv --retry 20 -Y 100000 -y 60 -o //var/tmp/bootstrap.tar.xz file:///home/han/dcos-artifacts/testing/bootstrap/c4c36e552cfc13589c5d9fbff87aa17bdf3dad0c.bootstrap.tar.xz\\nExecStartPre=/usr/bin/mkdir -p /opt/mesosphere\\nExecStart=/usr/bin/tar -axf //var/tmp/bootstrap.tar.xz -C /opt/mesosphere\\nExecStartPost=-/usr/bin/rm -f //var/tmp/bootstrap.tar.xz\\n\", \"path\": \"/etc/systemd/system/dcos-download.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Specialize DC/OS for this host.\\nRequires=dcos-download.service\\nAfter=dcos-download.service\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/opt/mesosphere/bin/pkgpanda setup --no-block-systemd\\n[Install]\\nWantedBy=multi-user.target\\n\", \"path\": \"/etc/systemd/system/dcos-setup.service\", \"permissions\": \"0644\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/master\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/azure_master\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/azure\"}]}'))]",
"linuxConfiguration": "[variables('linuxConfiguration')]"
},
"hardwareProfile": {
"vmSize": "[variables('masterVMSize')]"
},
"storageProfile": {
"osDisk": {
"createOption": "FromImage",
"vhd": {
"uri": "[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('masterStorageAccountName')),variables('apiVersionStorage')).primaryEndpoints.blob,'vhds/',variables('masterVMNamePrefix'),copyIndex(),'-osdisk.vhd')]"
},
"caching": "ReadWrite",
"name": "[concat(variables('masterVMNamePrefix'), copyIndex(),'-osdisk')]"
},
"imageReference": {
"offer": "[variables('osImageOffer')]",
"version": "[variables('osImageVersion')]",
"publisher": "[variables('osImagePublisher')]",
"sku": "[variables('osImageSKU')]"
}
}
},
"location": "[resourceGroup().location]",
"copy": {
"count": "[variables('masterCount')]",
"name": "vmLoopNode"
},
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[concat('Microsoft.Network/networkInterfaces/', variables('masterVMNamePrefix'), 'nic-', copyIndex())]",
"[concat('Microsoft.Compute/availabilitySets/',variables('masterAvailabilitySet'))]",
"[variables('masterStorageAccountName')]",
"[variables('masterStorageAccountExhibitorName')]",
"[variables('diagnosticsStorageAccountName')]"
],
"name": "[concat(variables('masterVMNamePrefix'), copyIndex())]"
},
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"properties": {
"type": "CustomScriptForLinux",
"typeHandlerVersion": "1.4",
"publisher": "Microsoft.OSTCExtensions",
"settings": {
"commandToExecute": "sh -c 'until ping -c1 leader.mesos;do echo waiting for leader.mesos;sleep 15;done;echo leader.mesos up'"
},
"autoUpgradeMinorVersion": true
},
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', variables('masterVMNamePrefix'), sub(variables('masterCount'), 1))]"
],
"name": "[concat(variables('masterVMNamePrefix'), sub(variables('masterCount'), 1), '/waitforleader')]"
},
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"properties": {
"typeHandlerVersion": "2.3",
"type": "LinuxDiagnostic",
"autoUpgradeMinorVersion": true,
"publisher": "Microsoft.OSTCExtensions",
"settings": {
"xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('masterVMNamePrefix'), copyIndex(), variables('wadcfgxend')))]",
"StorageAccount": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]"
},
"protectedSettings": {
"storageAccountName": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]",
"storageAccountKey": "[listKeys(variables('accountid'),variables('apiVersionStorage')).key1]"
}
},
"location": "[resourceGroup().location]",
"copy": {
"name": "vmLoopNode",
"count": "[variables('masterCount')]"
},
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', concat(variables('masterVMNamePrefix'), copyIndex()))]"
],
"name": "[concat(variables('masterVMNamePrefix'), copyIndex(), '/linuxdiagnostic')]"
},
{
"type": "Microsoft.Storage/storageAccounts",
"properties": {
"accountType": "[variables('vmSizesMap')[variables('agentVMSize')].storageAccountType]"
},
"location": "[variables('storageLocation')]",
"apiVersion": "[variables('apiVersionStorage')]",
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"name": "[variables('agentStoragePublicAccountName')]"
},
{
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/publicIPAddresses",
"properties": {
"publicIPAllocationMethod": "Dynamic",
"dnsSettings": {
"domainNameLabel": "[variables('agentEndpointDNSNamePrefix')]"
}
},
"name": "[variables('agentPublicIPAddressName')]"
},
{
"type": "Microsoft.Network/loadBalancers",
"properties": {
"backendAddressPools": [
{
"name": "[variables('agentsPublicLbBackendPoolName')]"
}
],
"loadBalancingRules": [
{
"properties": {
"frontendIPConfiguration": {
"id": "[variables('agentsPublicLbIPConfigID')]"
},
"frontendPort": 80,
"loadDistribution": "Default",
"backendPort": 80,
"probe": {
"id": "[concat(variables('agentsPublicLbID'),'/probes/tcpHTTPProbe')]"
},
"backendAddressPool": {
"id": "[concat(variables('agentsPublicLbID'), '/backendAddressPools/', variables('agentsPublicLbBackendPoolName'))]"
},
"protocol": "tcp",
"idleTimeoutInMinutes": 5,
"enableFloatingIP": false
},
"name": "LBRuleHTTP"
},
{
"properties": {
"frontendIPConfiguration": {
"id": "[variables('agentsPublicLbIPConfigID')]"
},
"frontendPort": 443,
"loadDistribution": "Default",
"backendPort": 443,
"probe": {
"id": "[concat(variables('agentsPublicLbID'),'/probes/tcpHTTPSProbe')]"
},
"backendAddressPool": {
"id": "[concat(variables('agentsPublicLbID'), '/backendAddressPools/', variables('agentsPublicLbBackendPoolName'))]"
},
"protocol": "tcp",
"idleTimeoutInMinutes": 5,
"enableFloatingIP": false
},
"name": "LBRuleHTTPS"
},
{
"properties": {
"frontendIPConfiguration": {
"id": "[variables('agentsPublicLbIPConfigID')]"
},
"frontendPort": 8080,
"loadDistribution": "Default",
"backendPort": 8080,
"probe": {
"id": "[concat(variables('agentsPublicLbID'),'/probes/tcpPort8080Probe')]"
},
"backendAddressPool": {
"id": "[concat(variables('agentsPublicLbID'), '/backendAddressPools/', variables('agentsPublicLbBackendPoolName'))]"
},
"protocol": "tcp",
"idleTimeoutInMinutes": 5,
"enableFloatingIP": false
},
"name": "LBRulePort8080"
}
],
"inboundNatRules": [],
"frontendIPConfigurations": [
{
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('agentPublicIPAddressName'))]"
}
},
"name": "[variables('agentsPublicLbIPConfigName')]"
}
],
"probes": [
{
"properties": {
"intervalInSeconds": "5",
"port": 80,
"protocol": "tcp",
"numberOfProbes": "2"
},
"name": "tcpHTTPProbe"
},
{
"properties": {
"intervalInSeconds": "5",
"port": 443,
"protocol": "tcp",
"numberOfProbes": "2"
},
"name": "tcpHTTPSProbe"
},
{
"properties": {
"intervalInSeconds": "5",
"port": 8080,
"protocol": "tcp",
"numberOfProbes": "2"
},
"name": "tcpPort8080Probe"
}
]
},
"location": "[resourceGroup().location]",
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('agentPublicIPAddressName'))]"
],
"name": "[variables('agentsPublicLbName')]"
},
{
"sku": {
"capacity": "[variables('agentPublicCount')]",
"tier": "Standard",
"name": "[variables('agentVMSize')]"
},
"type": "Microsoft.Compute/virtualMachineScaleSets",
"properties": {
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"properties": {
"typeHandlerVersion": "2.3",
"type": "LinuxDiagnostic",
"autoUpgradeMinorVersion": true,
"publisher": "Microsoft.OSTCExtensions",
"settings": {
"xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('agentPublicVMNamePrefix'), variables('wadcfgxend')))]",
"StorageAccount": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]"
},
"protectedSettings": {
"storageAccountName": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]",
"storageAccountKey": "[listKeys(variables('accountid'),variables('apiVersionStorage')).key1]"
}
},
"name": "LinuxDiagnostic"
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"storageUri": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]",
"enabled": "[variables('enableVMDiagnostics')]"
}
},
"osProfile": {
"customData": "[base64(concat('#cloud-config\n\n', '{\"bootcmd\": [\"bash -c \\\"if [ ! -f /var/lib/sdb-gpt ];then echo DCOS-5890;parted -s /dev/sdb mklabel gpt;touch /var/lib/sdb-gpt;fi\\\"\"], \"disk_setup\": {\"ephemeral0\": {\"layout\": [45, 45, 10], \"overwrite\": true, \"table_type\": \"gpt\"}}, \"fs_setup\": [{\"device\": \"ephemeral0.1\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.2\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.3\", \"filesystem\": \"ext4\", \"overwrite\": true}], \"mounts\": [[\"ephemeral0.1\", \"/var/lib/mesos\"], [\"ephemeral0.2\", \"/var/lib/docker\"], [\"ephemeral0.3\", \"/var/tmp\"]], \"runcmd\": [[\"ln\", \"-s\", \"/bin/rm\", \"/usr/bin/rm\"], [\"ln\", \"-s\", \"/bin/mkdir\", \"/usr/bin/mkdir\"], [\"ln\", \"-s\", \"/bin/tar\", \"/usr/bin/tar\"], [\"ln\", \"-s\", \"/bin/ln\", \"/usr/bin/ln\"], [\"ln\", \"-s\", \"/bin/cp\", \"/usr/bin/cp\"], [\"ln\", \"-s\", \"/bin/systemctl\", \"/usr/bin/systemctl\"], [\"ln\", \"-s\", \"/bin/mount\", \"/usr/bin/mount\"], [\"ln\", \"-s\", \"/bin/bash\", \"/usr/bin/bash\"], [\"ln\", \"-s\", \"/usr/sbin/useradd\", \"/usr/bin/useradd\"], [\"systemctl\", \"disable\", \"--now\", \"resolvconf.service\"], [\"systemctl\", \"mask\", \"--now\", \"lxc-net.service\"], [\"systemctl\", \"disable\", \"--now\", \"unscd.service\"], [\"systemctl\", \"stop\", \"--now\", \"unscd.service\"], \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/1.deb https://az837203.vo.msecnd.net/dcos-deps/libipset3_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/2.deb https://az837203.vo.msecnd.net/dcos-deps/ipset_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/3.deb https://az837203.vo.msecnd.net/dcos-deps/unzip_6.0-20ubuntu1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/4.deb https://az837203.vo.msecnd.net/dcos-deps/libltdl7_2.4.6-0.1_amd64.deb\", \"sed -i \\\"s/^Port 22$/Port 22\\\\nPort 2222/1\\\" /etc/ssh/sshd_config\", \"service ssh restart\", \"bash -c \\\"try=1;until dpkg -i /var/tmp/{1,2,3,4}.deb || ((try>9));do echo retry \\\\$((try++));sleep \\\\$((try*try));done\\\"\", [\"cp\", \"-p\", \"/etc/resolv.conf\", \"/tmp/resolv.conf\"], [\"rm\", \"-f\", \"/etc/resolv.conf\"], [\"cp\", \"-p\", \"/tmp/resolv.conf\", \"/etc/resolv.conf\"], [\"systemctl\", \"start\", \"dcos-docker-install.service\"], [\"systemctl\", \"start\", \"dcos-config-writer.service\"], [\"systemctl\", \"restart\", \"systemd-journald.service\"], [\"systemctl\", \"restart\", \"docker.service\"], [\"systemctl\", \"start\", \"dcos-link-env.service\"], [\"systemctl\", \"enable\", \"dcos-setup.service\"], [\"systemctl\", \"--no-block\", \"start\", \"dcos-setup.service\"]], \"write_files\": [{\"content\": \"file:///home/han/dcos-artifacts/testing\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/repository-url\", \"permissions\": \"0644\"}, {\"content\": \"[\\\"adminrouter--cbcc783426bfa7590ccbb139e279264d67767fb1\\\", \\\"avro-cpp--eb5e3a5a46ecada8ab9e4f8651cb20577453f86f\\\", \\\"boost-libs--2f88af98c228b53e617a427f5b0f347221d7c840\\\", \\\"bootstrap--d45adc8bfd3bc668de1c0d40a58a4c32a753e53e\\\", \\\"boto--c5e8100235e6303caedf630ccef4bb1b1f8f8431\\\", \\\"check-time--948f15b2663b077ea1db65502eabd44c603be20a\\\", \\\"cni--ad8edf651596cb7f67ea3d73e20f95dd0caba1e5\\\", \\\"cosmos--fa7ab42b9a218cecdd080a26e0549277f1bb3b86\\\", \\\"curl--aa99af9bd6c7dda375e4b78b9b27a8d1752c143c\\\", \\\"dcos-checks--7f40f1d77c90f0dedbb9b68e85e808588c157fc9\\\", \\\"dcos-cni--2b9a1e6dff72c4127ce088638498c9a3d681439d\\\", \\\"dcos-config--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-diagnostics--3a01e8f5336b151b2580327dcd9b6c6e8001e1b8\\\", \\\"dcos-history--d443f70ccccc7ccc9ff624e173e023245ad2b272\\\", \\\"dcos-image--b1ef26af36a630c85b3ea1b72bd9c0b8c11cc716\\\", \\\"dcos-image-deps--9e5cd71881382782919bcf97f0cc83c9431d29e0\\\", \\\"dcos-integration-test--adb128bcc0f75a24894eb7eb1cf8173c7a8d9298\\\", \\\"dcos-log--ccefbe47373e2597121155e86337c01fb8bdda8a\\\", \\\"dcos-metadata--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-metrics--63f96229b73e595c294954b961005bedaf25654f\\\", \\\"dcos-oauth--00d6677bbc0f6a82f83da98614f430aaab42f787\\\", \\\"dcos-signal--2a63143c2b44cc81639bcfa9008d774d86d9faa2\\\", \\\"dcos-test-utils--d551873c0cbfde0ed5e92300a5d0858440cddfad\\\", \\\"dcos-ui--cc2e3d26537ea190efacd6f899dd4cc2210d45b7\\\", \\\"dnspython--0241016f3bf1fdd7e43cde67856d2128c9323fdf\\\", \\\"docker-gc--74a4e6a1cd21833fd1a897d9dacaf36200be2d3f\\\", \\\"dvdcli--ee85411e3cb9f0988ed54b5cc0789172b887f12f\\\", \\\"erlang--0861859fe5fbf2419ea8ea642eb5bd489c8ce8f4\\\", \\\"exhibitor--5c1f80c3f502eb19a7ff34ba1049c835e7c89745\\\", \\\"flask--5f8e4dca26dce54e9694d0d9277c19c354b80089\\\", \\\"java--557408224206ff613ca8edec15adc6bb799a43de\\\", \\\"libevent--278aa5fab41ae40d3570b978648c3db3dc70d3b5\\\", \\\"libffi--d6953b348a0dd1af27dc63e847c34c19dd80fc89\\\", \\\"libsodium--d73b59dd3a3358185b5fea355f99ce811d517b8a\\\", \\\"logrotate--92edcfe65c77d675f96dc1dfae1b176e0399f312\\\", \\\"marathon--13360033dd6b5216d0093ec1150bce6b79d9e7e2\\\", \\\"mesos--8fcb46f072de3c42fb7b7dfd0e1a864b3753dd11\\\", \\\"mesos-dns--600da87080b7634f2380594499004a7ff0b34662\\\", \\\"mesos-modules--9eff953b785f921c4e1419b9d5feb9bbd022e1fb\\\", \\\"metronome--a1915935680f1ac59a6dd823c8b9e4c828529b47\\\", \\\"navstar--28db3ac87dc6dc1b0bd398ef26d19dadff0f06f2\\\", \\\"ncurses--a4d7f789e38cae7507d14073a66746d177540d59\\\", \\\"octarine--4e37c062d2f145f9c2ce01d30dadf72c2aac5c4a\\\", \\\"openssl--68a61d031ffb58932c09c3cb9a263246324c9eda\\\", \\\"pkgpanda-api--dafcee8593f6b727fc41447adb1eebc1d8983a1a\\\", \\\"pkgpanda-role--9d8e5111235ab331698045e9451946a32754df67\\\", \\\"pytest--771e3dbc784cd72812ffbaef726fb07065d56bf7\\\", \\\"python--955da518f02d7cf29d663741fdabb01a1c1996c6\\\", \\\"python-azure-mgmt-resource--1f70b4387fc5122ce485c125af783b690c61577e\\\", \\\"python-cryptography--c63062028a7235a6eb1166856f2a69da223d2d14\\\", \\\"python-dateutil--83a5ffb68a3b1331d428bc4ceec36f5e6c94d9d8\\\", \\\"python-docopt--69d6958de1e08429158ec8351fd4ae81232aaa24\\\", \\\"python-gunicorn--a58ae272e7a51110b14dad6768c2178783362e96\\\", \\\"python-isodate--cf30adec6a7a83dc07c4d9796470a6a9aad38460\\\", \\\"python-jinja2--c0eadbfd2b19dead679d27c46de58545c365935d\\\", \\\"python-kazoo--252c8c7a908b5a634ffbc6df3d3943bf26c879c5\\\", \\\"python-markupsafe--215a21c08e29eb804ecbe7bf61b103a58f30728b\\\", \\\"python-passlib--bc298e4968d738f2f1e6e87d317e7c73de73f471\\\", \\\"python-pyyaml--c12dac01b6cc0f0554a7af660e9b34d4edceea00\\\", \\\"python-requests--8f2c590a86d38aecdda8689585f9a615fe06d7ba\\\", \\\"python-retrying--b564870447691f62ee5e795ceef8476ba6498d43\\\", \\\"python-tox--ed630faec944a7e5a26887b9112f0a3791c7c977\\\", \\\"rexray--da7f17f8a4b772c0bac3f8d289a08abd4ff272b4\\\", \\\"six--070835068ef97ddc1d92a3b38f2771c6ea3a598b\\\", \\\"spartan--071db9b9a6351be51a6ba15db628c1c5476e4da0\\\", \\\"strace--34b42788d979e1a59519090c37554b037c8b2125\\\", \\\"teamcity-messages--b3464920ac571959e3595f09ceda3db47b9cecea\\\", \\\"toybox--97c5d0bbfef600fad9fa41ee8d60d9be9122fd42\\\"]\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/cluster-packages.json\", \"permissions\": \"0644\"}, {\"content\": \"[Journal]\\nMaxLevelConsole=warning\\nRateLimitInterval=1s\\nRateLimitBurst=20000\\n\", \"owner\": \"root\", \"path\": \"/etc/systemd/journald.conf.d/dcos.conf\", \"permissions\": \"0644\"}, {\"content\": \"rexray:\\n loglevel: info\\n modules:\\n default-docker:\\n disabled: true\\n service: vfs\\n\", \"path\": \"/etc/rexray/config.yml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nType=oneshot\\nEnvironment=DEBIAN_FRONTEND=noninteractive\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/d.deb https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.09.0~ce-0~ubuntu_amd64.deb\\nExecStart=/usr/bin/bash -c \\\"try=1;until dpkg -D3 -i /var/tmp/d.deb || ((try>9));do echo retry $((try++));sleep $((try*try));done;systemctl --now start docker;systemctl restart docker.socket\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-docker-install.service\", \"permissions\": \"0644\"}, {\"content\": \"[Service]\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=15\\nExecStartPre=-/sbin/ip link del docker0\\nExecStart=\\nExecStart=/usr/bin/dockerd --storage-driver=overlay\\n\", \"path\": \"/etc/systemd/system/docker.service.d/execstart.conf\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nPartOf=docker.service\\n[Socket]\\nListenStream=/var/run/docker.sock\\nSocketMode=0660\\nSocketUser=root\\nSocketGroup=docker\\nListenStream=2375\\nBindIPv6Only=both\\n[Install]\\nWantedBy=sockets.target\\n\", \"path\": \"/etc/systemd/system/docker.socket\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nRequires=dcos-setup.service\\nAfter=dcos-setup.service\\n[Service]\\nType=oneshot\\nEnvironmentFile=/etc/environment\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/usr/bin/bash -c \\\"echo $(detect_ip) $(hostname) > /etc/hosts\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-config-writer.service\", \"permissions\": \"0644\"}, {\"content\": \"\\\"bound_values\\\":\\n \\\"adminrouter_auth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n \\\"cluster_name\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"exhibitor_azure_account_key\\\": |-\\n ', listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('masterStorageAccountExhibitorName')), '2015-06-15').key1, '\\n \\\"exhibitor_azure_account_name\\\": |-\\n ', variables('masterStorageAccountExhibitorName'), '\\n \\\"exhibitor_azure_prefix\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"master_list\\\": |-\\n [\\\"', reference(variables('masterVMNic')[0]).ipConfigurations[0].properties.privateIPAddress, '\\\"]\\n \\\"oauth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n\\\"late_bound_package_id\\\": |-\\n dcos-provider-09af16449dc7076a197431a3c5130ab7bdf01b22-azure--setup\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/late-config.yaml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nBefore=dcos.target\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/mkdir -p /etc/profile.d\\nExecStart=/usr/bin/ln -sf /opt/mesosphere/bin/add_dcos_path.sh /etc/profile.d/dcos.sh\\n\", \"path\": \"/etc/systemd/system/dcos-link-env.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Download DC/OS to this host.\\nAfter=network-online.target\\nWants=network-online.target\\nConditionPathExists=!/opt/mesosphere/\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl --keepalive-time 2 -fLsSv --retry 20 -Y 100000 -y 60 -o //var/tmp/bootstrap.tar.xz file:///home/han/dcos-artifacts/testing/bootstrap/c4c36e552cfc13589c5d9fbff87aa17bdf3dad0c.bootstrap.tar.xz\\nExecStartPre=/usr/bin/mkdir -p /opt/mesosphere\\nExecStart=/usr/bin/tar -axf //var/tmp/bootstrap.tar.xz -C /opt/mesosphere\\nExecStartPost=-/usr/bin/rm -f //var/tmp/bootstrap.tar.xz\\n\", \"path\": \"/etc/systemd/system/dcos-download.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Specialize DC/OS for this host.\\nRequires=dcos-download.service\\nAfter=dcos-download.service\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/opt/mesosphere/bin/pkgpanda setup --no-block-systemd\\n[Install]\\nWantedBy=multi-user.target\\n\", \"path\": \"/etc/systemd/system/dcos-setup.service\", \"permissions\": \"0644\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/slave_public\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/azure\"}]}'))]",
"computerNamePrefix": "[variables('agentPublicVMNamePrefix')]",
"adminUsername": "[variables('adminUsername')]",
"linuxConfiguration": {
"disablePasswordAuthentication": "true",
"ssh": {
"publicKeys": [
{
"keyData": "[parameters('sshRSAPublicKey')]",
"path": "[variables('sshKeyPath')]"
}
]
}
}
},
"networkProfile": {
"networkInterfaceConfigurations": [
{
"properties": {
"primary": "true",
"ipConfigurations": [
{
"properties": {
"subnet": {
"id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'), '/subnets/', variables('agentPublicSubnetName'))]"
},
"loadBalancerBackendAddressPools": [
{
"id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('agentsPublicLbName'), '/backendAddressPools/',variables('agentsPublicLbBackendPoolName'))]"
}
]
},
"name": "nicipconfig"
}
]
},
"name": "agentNodeNic"
}
]
},
"storageProfile": {
"osDisk": {
"createOption": "FromImage",
"caching": "ReadOnly",
"vhdContainers": [
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('agentStoragePublicAccountName')),variables('apiVersionStorage')).primaryEndpoints.blob, 'osdisk')]"
],
"name": "vmssosdisk"
},
"imageReference": {
"offer": "[variables('osImageOffer')]",
"version": "[variables('osImageVersion')]",
"publisher": "[variables('osImagePublisher')]",
"sku": "[variables('osImageSKU')]"
}
}
},
"upgradePolicy": {
"mode": "Manual"
}
},
"location": "[resourceGroup().location]",
"copy": {
"count": "[variables('agentPublicVMSSCount')]",
"name": "masterLbLoopNode"
},
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[concat('Microsoft.Storage/storageAccounts/', variables('agentStoragePublicAccountName'))]",
"[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]",
"[concat('Microsoft.Network/loadBalancers/', variables('agentsPublicLbName'))]",
"[variables('diagnosticsStorageAccountName')]"
],
"name": "[concat(variables('agentPublicVMNamePrefix'), '-vmss', copyIndex())]"
},
{
"type": "Microsoft.Storage/storageAccounts",
"properties": {
"accountType": "[variables('vmSizesMap')[variables('agentVMSize')].storageAccountType]"
},
"location": "[variables('storageLocation')]",
"copy": {
"count": "[variables('agentStorageAccountsCount')]",
"name": "agentPrivateLoopNode"
},
"apiVersion": "[variables('apiVersionStorage')]",
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"name": "[concat(variables('storageAccountPrefixes')[mod(copyIndex(),variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(copyIndex(),variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),copyIndex())]"
},
{
"sku": {
"capacity": "[variables('agentPrivateCount')]",
"tier": "Standard",
"name": "[variables('agentVMSize')]"
},
"type": "Microsoft.Compute/virtualMachineScaleSets",
"properties": {
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"properties": {
"typeHandlerVersion": "2.3",
"type": "LinuxDiagnostic",
"autoUpgradeMinorVersion": true,
"publisher": "Microsoft.OSTCExtensions",
"settings": {
"xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('agentPrivateVMNamePrefix'), variables('wadcfgxend')))]",
"StorageAccount": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]"
},
"protectedSettings": {
"storageAccountName": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]",
"storageAccountKey": "[listKeys(variables('accountid'),variables('apiVersionStorage')).key1]"
}
},
"name": "LinuxDiagnostic"
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"storageUri": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]",
"enabled": "[variables('enableVMDiagnostics')]"
}
},
"osProfile": {
"customData": "[base64(concat('#cloud-config\n\n', '{\"bootcmd\": [\"bash -c \\\"if [ ! -f /var/lib/sdb-gpt ];then echo DCOS-5890;parted -s /dev/sdb mklabel gpt;touch /var/lib/sdb-gpt;fi\\\"\"], \"disk_setup\": {\"ephemeral0\": {\"layout\": [45, 45, 10], \"overwrite\": true, \"table_type\": \"gpt\"}}, \"fs_setup\": [{\"device\": \"ephemeral0.1\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.2\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.3\", \"filesystem\": \"ext4\", \"overwrite\": true}], \"mounts\": [[\"ephemeral0.1\", \"/var/lib/mesos\"], [\"ephemeral0.2\", \"/var/lib/docker\"], [\"ephemeral0.3\", \"/var/tmp\"]], \"runcmd\": [[\"ln\", \"-s\", \"/bin/rm\", \"/usr/bin/rm\"], [\"ln\", \"-s\", \"/bin/mkdir\", \"/usr/bin/mkdir\"], [\"ln\", \"-s\", \"/bin/tar\", \"/usr/bin/tar\"], [\"ln\", \"-s\", \"/bin/ln\", \"/usr/bin/ln\"], [\"ln\", \"-s\", \"/bin/cp\", \"/usr/bin/cp\"], [\"ln\", \"-s\", \"/bin/systemctl\", \"/usr/bin/systemctl\"], [\"ln\", \"-s\", \"/bin/mount\", \"/usr/bin/mount\"], [\"ln\", \"-s\", \"/bin/bash\", \"/usr/bin/bash\"], [\"ln\", \"-s\", \"/usr/sbin/useradd\", \"/usr/bin/useradd\"], [\"systemctl\", \"disable\", \"--now\", \"resolvconf.service\"], [\"systemctl\", \"mask\", \"--now\", \"lxc-net.service\"], [\"systemctl\", \"disable\", \"--now\", \"unscd.service\"], [\"systemctl\", \"stop\", \"--now\", \"unscd.service\"], \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/1.deb https://az837203.vo.msecnd.net/dcos-deps/libipset3_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/2.deb https://az837203.vo.msecnd.net/dcos-deps/ipset_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/3.deb https://az837203.vo.msecnd.net/dcos-deps/unzip_6.0-20ubuntu1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/4.deb https://az837203.vo.msecnd.net/dcos-deps/libltdl7_2.4.6-0.1_amd64.deb\", \"sed -i \\\"s/^Port 22$/Port 22\\\\nPort 2222/1\\\" /etc/ssh/sshd_config\", \"service ssh restart\", \"bash -c \\\"try=1;until dpkg -i /var/tmp/{1,2,3,4}.deb || ((try>9));do echo retry \\\\$((try++));sleep \\\\$((try*try));done\\\"\", [\"cp\", \"-p\", \"/etc/resolv.conf\", \"/tmp/resolv.conf\"], [\"rm\", \"-f\", \"/etc/resolv.conf\"], [\"cp\", \"-p\", \"/tmp/resolv.conf\", \"/etc/resolv.conf\"], [\"systemctl\", \"start\", \"dcos-docker-install.service\"], [\"systemctl\", \"start\", \"dcos-config-writer.service\"], [\"systemctl\", \"restart\", \"systemd-journald.service\"], [\"systemctl\", \"restart\", \"docker.service\"], [\"systemctl\", \"start\", \"dcos-link-env.service\"], [\"systemctl\", \"enable\", \"dcos-setup.service\"], [\"systemctl\", \"--no-block\", \"start\", \"dcos-setup.service\"]], \"write_files\": [{\"content\": \"file:///home/han/dcos-artifacts/testing\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/repository-url\", \"permissions\": \"0644\"}, {\"content\": \"[\\\"adminrouter--cbcc783426bfa7590ccbb139e279264d67767fb1\\\", \\\"avro-cpp--eb5e3a5a46ecada8ab9e4f8651cb20577453f86f\\\", \\\"boost-libs--2f88af98c228b53e617a427f5b0f347221d7c840\\\", \\\"bootstrap--d45adc8bfd3bc668de1c0d40a58a4c32a753e53e\\\", \\\"boto--c5e8100235e6303caedf630ccef4bb1b1f8f8431\\\", \\\"check-time--948f15b2663b077ea1db65502eabd44c603be20a\\\", \\\"cni--ad8edf651596cb7f67ea3d73e20f95dd0caba1e5\\\", \\\"cosmos--fa7ab42b9a218cecdd080a26e0549277f1bb3b86\\\", \\\"curl--aa99af9bd6c7dda375e4b78b9b27a8d1752c143c\\\", \\\"dcos-checks--7f40f1d77c90f0dedbb9b68e85e808588c157fc9\\\", \\\"dcos-cni--2b9a1e6dff72c4127ce088638498c9a3d681439d\\\", \\\"dcos-config--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-diagnostics--3a01e8f5336b151b2580327dcd9b6c6e8001e1b8\\\", \\\"dcos-history--d443f70ccccc7ccc9ff624e173e023245ad2b272\\\", \\\"dcos-image--b1ef26af36a630c85b3ea1b72bd9c0b8c11cc716\\\", \\\"dcos-image-deps--9e5cd71881382782919bcf97f0cc83c9431d29e0\\\", \\\"dcos-integration-test--adb128bcc0f75a24894eb7eb1cf8173c7a8d9298\\\", \\\"dcos-log--ccefbe47373e2597121155e86337c01fb8bdda8a\\\", \\\"dcos-metadata--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-metrics--63f96229b73e595c294954b961005bedaf25654f\\\", \\\"dcos-oauth--00d6677bbc0f6a82f83da98614f430aaab42f787\\\", \\\"dcos-signal--2a63143c2b44cc81639bcfa9008d774d86d9faa2\\\", \\\"dcos-test-utils--d551873c0cbfde0ed5e92300a5d0858440cddfad\\\", \\\"dcos-ui--cc2e3d26537ea190efacd6f899dd4cc2210d45b7\\\", \\\"dnspython--0241016f3bf1fdd7e43cde67856d2128c9323fdf\\\", \\\"docker-gc--74a4e6a1cd21833fd1a897d9dacaf36200be2d3f\\\", \\\"dvdcli--ee85411e3cb9f0988ed54b5cc0789172b887f12f\\\", \\\"erlang--0861859fe5fbf2419ea8ea642eb5bd489c8ce8f4\\\", \\\"exhibitor--5c1f80c3f502eb19a7ff34ba1049c835e7c89745\\\", \\\"flask--5f8e4dca26dce54e9694d0d9277c19c354b80089\\\", \\\"java--557408224206ff613ca8edec15adc6bb799a43de\\\", \\\"libevent--278aa5fab41ae40d3570b978648c3db3dc70d3b5\\\", \\\"libffi--d6953b348a0dd1af27dc63e847c34c19dd80fc89\\\", \\\"libsodium--d73b59dd3a3358185b5fea355f99ce811d517b8a\\\", \\\"logrotate--92edcfe65c77d675f96dc1dfae1b176e0399f312\\\", \\\"marathon--13360033dd6b5216d0093ec1150bce6b79d9e7e2\\\", \\\"mesos--8fcb46f072de3c42fb7b7dfd0e1a864b3753dd11\\\", \\\"mesos-dns--600da87080b7634f2380594499004a7ff0b34662\\\", \\\"mesos-modules--9eff953b785f921c4e1419b9d5feb9bbd022e1fb\\\", \\\"metronome--a1915935680f1ac59a6dd823c8b9e4c828529b47\\\", \\\"navstar--28db3ac87dc6dc1b0bd398ef26d19dadff0f06f2\\\", \\\"ncurses--a4d7f789e38cae7507d14073a66746d177540d59\\\", \\\"octarine--4e37c062d2f145f9c2ce01d30dadf72c2aac5c4a\\\", \\\"openssl--68a61d031ffb58932c09c3cb9a263246324c9eda\\\", \\\"pkgpanda-api--dafcee8593f6b727fc41447adb1eebc1d8983a1a\\\", \\\"pkgpanda-role--9d8e5111235ab331698045e9451946a32754df67\\\", \\\"pytest--771e3dbc784cd72812ffbaef726fb07065d56bf7\\\", \\\"python--955da518f02d7cf29d663741fdabb01a1c1996c6\\\", \\\"python-azure-mgmt-resource--1f70b4387fc5122ce485c125af783b690c61577e\\\", \\\"python-cryptography--c63062028a7235a6eb1166856f2a69da223d2d14\\\", \\\"python-dateutil--83a5ffb68a3b1331d428bc4ceec36f5e6c94d9d8\\\", \\\"python-docopt--69d6958de1e08429158ec8351fd4ae81232aaa24\\\", \\\"python-gunicorn--a58ae272e7a51110b14dad6768c2178783362e96\\\", \\\"python-isodate--cf30adec6a7a83dc07c4d9796470a6a9aad38460\\\", \\\"python-jinja2--c0eadbfd2b19dead679d27c46de58545c365935d\\\", \\\"python-kazoo--252c8c7a908b5a634ffbc6df3d3943bf26c879c5\\\", \\\"python-markupsafe--215a21c08e29eb804ecbe7bf61b103a58f30728b\\\", \\\"python-passlib--bc298e4968d738f2f1e6e87d317e7c73de73f471\\\", \\\"python-pyyaml--c12dac01b6cc0f0554a7af660e9b34d4edceea00\\\", \\\"python-requests--8f2c590a86d38aecdda8689585f9a615fe06d7ba\\\", \\\"python-retrying--b564870447691f62ee5e795ceef8476ba6498d43\\\", \\\"python-tox--ed630faec944a7e5a26887b9112f0a3791c7c977\\\", \\\"rexray--da7f17f8a4b772c0bac3f8d289a08abd4ff272b4\\\", \\\"six--070835068ef97ddc1d92a3b38f2771c6ea3a598b\\\", \\\"spartan--071db9b9a6351be51a6ba15db628c1c5476e4da0\\\", \\\"strace--34b42788d979e1a59519090c37554b037c8b2125\\\", \\\"teamcity-messages--b3464920ac571959e3595f09ceda3db47b9cecea\\\", \\\"toybox--97c5d0bbfef600fad9fa41ee8d60d9be9122fd42\\\"]\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/cluster-packages.json\", \"permissions\": \"0644\"}, {\"content\": \"[Journal]\\nMaxLevelConsole=warning\\nRateLimitInterval=1s\\nRateLimitBurst=20000\\n\", \"owner\": \"root\", \"path\": \"/etc/systemd/journald.conf.d/dcos.conf\", \"permissions\": \"0644\"}, {\"content\": \"rexray:\\n loglevel: info\\n modules:\\n default-docker:\\n disabled: true\\n service: vfs\\n\", \"path\": \"/etc/rexray/config.yml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nType=oneshot\\nEnvironment=DEBIAN_FRONTEND=noninteractive\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/d.deb https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.09.0~ce-0~ubuntu_amd64.deb\\nExecStart=/usr/bin/bash -c \\\"try=1;until dpkg -D3 -i /var/tmp/d.deb || ((try>9));do echo retry $((try++));sleep $((try*try));done;systemctl --now start docker;systemctl restart docker.socket\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-docker-install.service\", \"permissions\": \"0644\"}, {\"content\": \"[Service]\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=15\\nExecStartPre=-/sbin/ip link del docker0\\nExecStart=\\nExecStart=/usr/bin/dockerd --storage-driver=overlay\\n\", \"path\": \"/etc/systemd/system/docker.service.d/execstart.conf\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nPartOf=docker.service\\n[Socket]\\nListenStream=/var/run/docker.sock\\nSocketMode=0660\\nSocketUser=root\\nSocketGroup=docker\\nListenStream=2375\\nBindIPv6Only=both\\n[Install]\\nWantedBy=sockets.target\\n\", \"path\": \"/etc/systemd/system/docker.socket\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nRequires=dcos-setup.service\\nAfter=dcos-setup.service\\n[Service]\\nType=oneshot\\nEnvironmentFile=/etc/environment\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/usr/bin/bash -c \\\"echo $(detect_ip) $(hostname) > /etc/hosts\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-config-writer.service\", \"permissions\": \"0644\"}, {\"content\": \"\\\"bound_values\\\":\\n \\\"adminrouter_auth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n \\\"cluster_name\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"exhibitor_azure_account_key\\\": |-\\n ', listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('masterStorageAccountExhibitorName')), '2015-06-15').key1, '\\n \\\"exhibitor_azure_account_name\\\": |-\\n ', variables('masterStorageAccountExhibitorName'), '\\n \\\"exhibitor_azure_prefix\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"master_list\\\": |-\\n [\\\"', reference(variables('masterVMNic')[0]).ipConfigurations[0].properties.privateIPAddress, '\\\"]\\n \\\"oauth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n\\\"late_bound_package_id\\\": |-\\n dcos-provider-09af16449dc7076a197431a3c5130ab7bdf01b22-azure--setup\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/late-config.yaml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nBefore=dcos.target\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/mkdir -p /etc/profile.d\\nExecStart=/usr/bin/ln -sf /opt/mesosphere/bin/add_dcos_path.sh /etc/profile.d/dcos.sh\\n\", \"path\": \"/etc/systemd/system/dcos-link-env.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Download DC/OS to this host.\\nAfter=network-online.target\\nWants=network-online.target\\nConditionPathExists=!/opt/mesosphere/\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl --keepalive-time 2 -fLsSv --retry 20 -Y 100000 -y 60 -o //var/tmp/bootstrap.tar.xz file:///home/han/dcos-artifacts/testing/bootstrap/c4c36e552cfc13589c5d9fbff87aa17bdf3dad0c.bootstrap.tar.xz\\nExecStartPre=/usr/bin/mkdir -p /opt/mesosphere\\nExecStart=/usr/bin/tar -axf //var/tmp/bootstrap.tar.xz -C /opt/mesosphere\\nExecStartPost=-/usr/bin/rm -f //var/tmp/bootstrap.tar.xz\\n\", \"path\": \"/etc/systemd/system/dcos-download.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Specialize DC/OS for this host.\\nRequires=dcos-download.service\\nAfter=dcos-download.service\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/opt/mesosphere/bin/pkgpanda setup --no-block-systemd\\n[Install]\\nWantedBy=multi-user.target\\n\", \"path\": \"/etc/systemd/system/dcos-setup.service\", \"permissions\": \"0644\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/slave\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/azure\"}]}'))]",
"computerNamePrefix": "[variables('agentPrivateVMNamePrefix')]",
"adminUsername": "[variables('adminUsername')]",
"linuxConfiguration": {
"disablePasswordAuthentication": "true",
"ssh": {
"publicKeys": [
{
"keyData": "[parameters('sshRSAPublicKey')]",
"path": "[variables('sshKeyPath')]"
}
]
}
}
},
"networkProfile": {
"networkInterfaceConfigurations": [
{
"properties": {
"primary": "true",
"ipConfigurations": [
{
"properties": {
"subnet": {
"id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'), '/subnets/', variables('agentPrivateSubnetName'))]"
}
},
"name": "nicipconfig"
}
]
},
"name": "agentPrivateNodeNic"
}
]
},
"storageProfile": {
"osDisk": {
"createOption": "FromImage",
"caching": "ReadOnly",
"vhdContainers": [
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(0,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(0,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),0),variables('apiVersionStorage')).primaryEndpoints.blob,'osdisk')]",
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(1,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(1,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),1),variables('apiVersionStorage')).primaryEndpoints.blob,'osdisk')]",
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(2,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(2,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),2),variables('apiVersionStorage')).primaryEndpoints.blob,'osdisk')]",
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(3,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(3,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),3),variables('apiVersionStorage')).primaryEndpoints.blob,'osdisk')]",
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(4,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(4,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),4),variables('apiVersionStorage')).primaryEndpoints.blob,'osdisk')]"
],
"name": "vmssosdisk"
},
"imageReference": {
"offer": "[variables('osImageOffer')]",
"version": "[variables('osImageVersion')]",
"publisher": "[variables('osImagePublisher')]",
"sku": "[variables('osImageSKU')]"
}
}
},
"upgradePolicy": {
"mode": "Manual"
}
},
"location": "[resourceGroup().location]",
"copy": {
"count": "[variables('agentPrivateVMSSCount')]",
"name": "masterLbLoopNode"
},
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(0,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(0,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),0)]",
"[concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(1,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(1,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),1)]",
"[concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(2,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(2,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),2)]",
"[concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(3,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(3,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),3)]",
"[concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(4,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(4,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),4)]",
"[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]",
"[variables('diagnosticsStorageAccountName')]"
],
"name": "[concat(variables('agentPrivateVMNamePrefix'), '-vmss', copyIndex())]"
}
],
"outputs": {
"diagnosticsStorageAccountUri": {
"type": "string",
"value": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]"
},
"jumpboxFQDN": {
"type": "string",
"value": ""
},
"masterFQDN": {
"type": "string",
"value": "[reference(concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))).dnsSettings.fqdn]"
},
"agentFQDN": {
"type": "string",
"value": "[reference(concat('Microsoft.Network/publicIPAddresses/', variables('agentPublicIPAddressName'))).dnsSettings.fqdn]"
}
},
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"parameters": {
"jumpboxEndpointDNSNamePrefix": {
"metadata": {
"description": "Sets the Domain name label for the jumpbox. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
},
"defaultValue": "",
"type": "string"
},
"windowsJumpboxPublisher": {
"metadata": {
"description": "This is the windows publisher used by the windows"
},
"defaultValue": "MicrosoftVisualStudio",
"type": "string"
},
"enableVMDiagnostics": {
"metadata": {
"description": "Allows user to enable/disable boot & vm diagnostics."
},
"defaultValue": true,
"type": "bool"
},
"agentEndpointDNSNamePrefix": {
"metadata": {
"description": "Sets the Domain name label for the agent pool IP Address. The concatenation of the domain name label and the regional DNS zone make up the fully qualified domain name associated with the public IP address."
},
"type": "string"
},
"linuxSku": {
"metadata": {
"description": "This is the linux sku used by the linux cluster"
},
"defaultValue": "16.04.0-LTS",
"type": "string"
},
"windowsAdminUsername": {
"metadata": {
"description": "User name for the Windows Virtual Machine (Password Only Supported)."
},
"defaultValue": "azureuser",
"type": "string"
},
"nameSuffix": {
"metadata": {
"description": "A string to include in the names of resources created. Defaults to 0. Can not be blank."
},
"defaultValue": "01234567",
"type": "string"
},
"enableNewStorageAccountNaming": {
"metadata": {
"description": "If true: uses DNS name prefix + Orchestrator name + Region to create storage account name to reduce name collision probability. If false: uses DNS name prefix + Orchestrator name to create storage account name to maintain template idempotency."
},
"defaultValue": true,
"type": "bool"
},
"linuxAdminPassword": {
"metadata": {
"description": "Password for the Linux Virtual Machine. Not Required. If not set, you must provide a SSH key."
},
"defaultValue": "",
"type": "securestring"
},
"disablePasswordAuthentication": {
"metadata": {
"description": "This setting controls whether password auth is disabled for Linux VMs provisioned by this template. Default is true which disables password and makes SSH key required."
},
"defaultValue": true,
"type": "bool"
},
"oauthEnabled": {
"allowedValues": [
"true",
"false"
],
"defaultValue": "false",
"type": "string",
"metadata": {
"description": "Enable OAuth authentication"
}
},
"linuxAdminUsername": {
"metadata": {
"description": "User name for the Linux Virtual Machines (SSH or Password)."
},
"defaultValue": "azureuser",
"type": "string"
},
"agentCount": {
"metadata": {
"description": "The number of Mesos agents for the cluster. This value can be from 1 to 100"
},
"defaultValue": 1,
"type": "int",
"allowedValues": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100
]
},
"linuxPublisher": {
"metadata": {
"description": "This is the publisher of the image used by the linux cluster"
},
"defaultValue": "Canonical",
"type": "string"
},
"agentVMSize": {
"allowedValues": [
"Standard_A2",
"Standard_A3",
"Standard_A4",
"Standard_A5",
"Standard_A6",
"Standard_A7",
"Standard_A8",
"Standard_A9",
"Standard_A10",
"Standard_A11",
"Standard_D1",
"Standard_D2",
"Standard_D3",
"Standard_D4",
"Standard_D11",
"Standard_D12",
"Standard_D13",
"Standard_D14",
"Standard_D1_v2",
"Standard_D2_v2",
"Standard_D3_v2",
"Standard_D4_v2",
"Standard_D5_v2",
"Standard_D11_v2",
"Standard_D12_v2",
"Standard_D13_v2",
"Standard_D14_v2",
"Standard_G1",
"Standard_G2",
"Standard_G3",
"Standard_G4",
"Standard_G5",
"Standard_DS1",
"Standard_DS2",
"Standard_DS3",
"Standard_DS4",
"Standard_DS11",
"Standard_DS12",
"Standard_DS13",
"Standard_DS14",
"Standard_GS1",
"Standard_GS2",
"Standard_GS3",
"Standard_GS4",
"Standard_GS5"
],
"defaultValue": "Standard_D2_v2",
"type": "string",
"metadata": {
"description": "The size of the Virtual Machine."
}
},
"masterCount": {
"allowedValues": [
1,
3,
5
],
"defaultValue": 1,
"type": "int",
"metadata": {
"description": "The number of Mesos masters for the cluster."
}
},
"masterEndpointDNSNamePrefix": {
"metadata": {
"description": "Sets the Domain name label for the master IP Address. The concatenation of the domain name label and the regional DNS zone make up the fully qualified domain name associated with the public IP address."
},
"type": "string"
},
"setLinuxConfigurationForVMCreate": {
"allowedValues": [
0,
1
],
"defaultValue": 1,
"type": "int",
"metadata": {
"description": "This setting controls whether Linux configuration with SSH Key is passed in VM PUT Payload. Defaults to 1. If SSH Key is blank, this must be set to 0."
}
},
"windowsJumpboxSku": {
"metadata": {
"description": "This is the windows sku used by the windows"
},
"defaultValue": "VS-2015-Enterprise-AzureSDK-2.7-WS2012R2",
"type": "string"
},
"sshRSAPublicKey": {
"metadata": {
"description": "SSH public key used for auth to all Linux machines. Not Required. If not set, you must provide a password key."
},
"defaultValue": "",
"type": "string"
},
"postInstallScriptURI": {
"metadata": {
"description": "After installation, this specifies a script to download and install. To disabled, set value to 'disabled'."
},
"defaultValue": "disabled",
"type": "string"
},
"isValidation": {
"allowedValues": [
0,
1
],
"defaultValue": 0,
"type": "int",
"metadata": {
"description": "This is testing in the validation region"
}
},
"windowsAdminPassword": {
"metadata": {
"description": "Password for the Windows Virtual Machine."
},
"defaultValue": "",
"type": "securestring"
},
"linuxVersion": {
"metadata": {
"description": "This is the linux version used by the linux cluster"
},
"defaultValue": "16.04.201606270",
"type": "string"
},
"linuxOffer": {
"metadata": {
"description": "This is the offer of the image used by the linux cluster"
},
"defaultValue": "UbuntuServer",
"type": "string"
},
"windowsJumpboxOffer": {
"metadata": {
"description": "This is the windows offer used by the windows"
},
"defaultValue": "VisualStudio",
"type": "string"
},
"vmsPerStorageAccount": {
"metadata": {
"description": "This specifies the number of VMs per storage accounts"
},
"defaultValue": 5,
"type": "int"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment