Skip to content

Instantly share code, notes, and snippets.

@bernadinm
Created July 26, 2018 12:33
Show Gist options
  • Save bernadinm/adea143c5844916424958827fce8de0f to your computer and use it in GitHub Desktop.
Save bernadinm/adea143c5844916424958827fce8de0f to your computer and use it in GitHub Desktop.
{
"outputs": {
"masterFQDN": {
"value": "[reference(concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))).dnsSettings.fqdn]",
"type": "string"
},
"diagnosticsStorageAccountUri": {
"value": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]",
"type": "string"
},
"agentFQDN": {
"value": "[reference(concat('Microsoft.Network/publicIPAddresses/', variables('agentPublicIPAddressName'))).dnsSettings.fqdn]",
"type": "string"
},
"jumpboxFQDN": {
"value": "",
"type": "string"
}
},
"parameters": {
"linuxOffer": {
"metadata": {
"description": "This is the offer of the image used by the linux cluster"
},
"defaultValue": "UbuntuServer",
"type": "string"
},
"windowsJumpboxPublisher": {
"metadata": {
"description": "This is the windows publisher used by the windows"
},
"defaultValue": "MicrosoftVisualStudio",
"type": "string"
},
"windowsAdminPassword": {
"metadata": {
"description": "Password for the Windows Virtual Machine."
},
"defaultValue": "",
"type": "securestring"
},
"vmsPerStorageAccount": {
"metadata": {
"description": "This specifies the number of VMs per storage accounts"
},
"defaultValue": 5,
"type": "int"
},
"linuxAdminPassword": {
"metadata": {
"description": "Password for the Linux Virtual Machine. Not Required. If not set, you must provide a SSH key."
},
"defaultValue": "",
"type": "securestring"
},
"masterCount": {
"allowedValues": [
1,
3,
5
],
"defaultValue": 1,
"type": "int",
"metadata": {
"description": "The number of Mesos masters for the cluster."
}
},
"enableVMDiagnostics": {
"metadata": {
"description": "Allows user to enable/disable boot & vm diagnostics."
},
"defaultValue": true,
"type": "bool"
},
"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"
},
"linuxVersion": {
"metadata": {
"description": "This is the linux version used by the linux cluster"
},
"defaultValue": "16.04.201606270",
"type": "string"
},
"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"
},
"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."
}
},
"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"
},
"oauthEnabled": {
"allowedValues": [
"true",
"false"
],
"defaultValue": "false",
"type": "string",
"metadata": {
"description": "Enable OAuth authentication"
}
},
"linuxPublisher": {
"metadata": {
"description": "This is the publisher of the image used by the linux cluster"
},
"defaultValue": "Canonical",
"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"
},
"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"
},
"isValidation": {
"allowedValues": [
0,
1
],
"defaultValue": 0,
"type": "int",
"metadata": {
"description": "This is testing in the validation region"
}
},
"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"
},
"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."
}
},
"agentCount": {
"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
],
"metadata": {
"description": "The number of Mesos agents for the cluster. This value can be from 1 to 100"
},
"defaultValue": 1,
"type": "int"
},
"windowsAdminUsername": {
"metadata": {
"description": "User name for the Windows Virtual Machine (Password Only Supported)."
},
"defaultValue": "azureuser",
"type": "string"
},
"linuxAdminUsername": {
"metadata": {
"description": "User name for the Linux Virtual Machines (SSH or Password)."
},
"defaultValue": "azureuser",
"type": "string"
},
"windowsJumpboxSku": {
"metadata": {
"description": "This is the windows sku used by the windows"
},
"defaultValue": "VS-2015-Enterprise-AzureSDK-2.7-WS2012R2",
"type": "string"
},
"windowsJumpboxOffer": {
"metadata": {
"description": "This is the windows offer used by the windows"
},
"defaultValue": "VisualStudio",
"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"
},
"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"
},
"linuxSku": {
"metadata": {
"description": "This is the linux sku used by the linux cluster"
},
"defaultValue": "16.04-LTS",
"type": "string"
}
},
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "[variables('masterStorageAccountName')]",
"apiVersion": "[variables('apiVersionStorage')]",
"type": "Microsoft.Storage/storageAccounts",
"properties": {
"accountType": "[variables('vmSizesMap')[variables('masterVMSize')].storageAccountType]"
},
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"location": "[variables('storageLocation')]"
},
{
"name": "[variables('masterStorageAccountExhibitorName')]",
"apiVersion": "[variables('apiVersionStorage')]",
"type": "Microsoft.Storage/storageAccounts",
"properties": {
"accountType": "Standard_LRS"
},
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"location": "[variables('storageLocation')]"
},
{
"name": "[variables('diagnosticsStorageAccountName')]",
"apiVersion": "[variables('apiVersionStorage')]",
"type": "Microsoft.Storage/storageAccounts",
"properties": {
"accountType": "Standard_LRS"
},
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"location": "[variables('storageLocation')]"
},
{
"name": "[variables('virtualNetworkName')]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/virtualNetworks",
"properties": {
"subnets": [
{
"properties": {
"addressPrefix": "[variables('masterAddressPrefix')]"
},
"name": "[variables('masterSubnetName')]"
},
{
"properties": {
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('agentPublicNSGName'))]"
},
"addressPrefix": "[variables('agentPublicAddressPrefix')]"
},
"name": "[variables('agentPublicSubnetName')]"
},
{
"properties": {
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('agentPrivateNSGName'))]"
},
"addressPrefix": "[variables('agentPrivateAddressPrefix')]"
},
"name": "[variables('agentPrivateSubnetName')]"
}
],
"addressSpace": {
"addressPrefixes": [
"[variables('masterAddressPrefix')]",
"[variables('agentAddressPrefix')]"
]
}
},
"dependsOn": [
"[concat('Microsoft.Network/networkSecurityGroups/', variables('agentPublicNSGName'))]",
"[concat('Microsoft.Network/networkSecurityGroups/', variables('agentPrivateNSGName'))]"
],
"location": "[resourceGroup().location]"
},
{
"properties": {},
"name": "[variables('masterAvailabilitySet')]",
"apiVersion": "[variables('apiVersionDefault')]",
"location": "[resourceGroup().location]",
"type": "Microsoft.Compute/availabilitySets"
},
{
"properties": {
"dnsSettings": {
"domainNameLabel": "[variables('masterEndpointDNSNamePrefix')]"
},
"publicIPAllocationMethod": "Dynamic"
},
"name": "[variables('masterPublicIPAddressName')]",
"apiVersion": "[variables('apiVersionDefault')]",
"location": "[resourceGroup().location]",
"type": "Microsoft.Network/publicIPAddresses"
},
{
"name": "[variables('masterLbName')]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/loadBalancers",
"properties": {
"frontendIPConfigurations": [
{
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('masterPublicIPAddressName'))]"
}
},
"name": "[variables('masterLbIPConfigName')]"
}
],
"backendAddressPools": [
{
"name": "[variables('masterLbBackendPoolName')]"
}
]
},
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"location": "[resourceGroup().location]"
},
{
"copy": {
"name": "masterLbLoopNode",
"count": "[variables('masterCount')]"
},
"name": "[concat(variables('masterLbName'), '/', 'SSH-', variables('masterVMNamePrefix'), copyIndex())]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/loadBalancers/inboundNatRules",
"properties": {
"enableFloatingIP": false,
"backendPort": 22,
"protocol": "tcp",
"frontendIPConfiguration": {
"id": "[variables('masterLbIPConfigID')]"
},
"frontendPort": "[copyIndex(2200)]"
},
"dependsOn": [
"[variables('masterLbID')]"
],
"location": "[resourceGroup().location]"
},
{
"name": "[variables('masterSshPort22InboundNatRuleName')]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/loadBalancers/inboundNatRules",
"properties": {
"enableFloatingIP": false,
"backendPort": 2222,
"frontendPort": 22,
"frontendIPConfiguration": {
"id": "[variables('masterLbIPConfigID')]"
},
"protocol": "tcp"
},
"dependsOn": [
"[variables('masterLbID')]"
],
"location": "[resourceGroup().location]"
},
{
"properties": {
"securityRules": [
{
"properties": {
"direction": "Inbound",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"protocol": "Tcp",
"priority": 200,
"access": "Allow",
"description": "Allow SSH",
"destinationPortRange": 22,
"sourcePortRange": "*"
},
"name": "ssh"
},
{
"properties": {
"direction": "Inbound",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"protocol": "Tcp",
"priority": 201,
"access": "Allow",
"description": "Allow SSH",
"destinationPortRange": 2222,
"sourcePortRange": "*"
},
"name": "sshPort22"
},
{
"properties": {
"direction": "Inbound",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"protocol": "Tcp",
"priority": 202,
"access": "[variables('allowMasterHttp')[variables('oauthEnabled')]]",
"description": "HTTP Port 80",
"destinationPortRange": 80,
"sourcePortRange": "*"
},
"name": "httpPort80"
},
{
"properties": {
"direction": "Inbound",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"protocol": "Tcp",
"priority": 203,
"access": "[variables('allowMasterHttp')[variables('oauthEnabled')]]",
"description": "HTTPS Port 443",
"destinationPortRange": 443,
"sourcePortRange": "*"
},
"name": "httpsPort443"
}
]
},
"name": "[variables('masterNSGName')]",
"apiVersion": "[variables('apiVersionDefault')]",
"location": "[resourceGroup().location]",
"type": "Microsoft.Network/networkSecurityGroups"
},
{
"name": "[variables('masterHttpPort80InboundNatRuleName')]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/loadBalancers/inboundNatRules",
"properties": {
"enableFloatingIP": false,
"backendPort": 80,
"frontendPort": 80,
"frontendIPConfiguration": {
"id": "[variables('masterLbIPConfigID')]"
},
"protocol": "tcp"
},
"dependsOn": [
"[variables('masterLbID')]"
],
"location": "[resourceGroup().location]"
},
{
"name": "[variables('masterHttpsPort443InboundNatRuleName')]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/loadBalancers/inboundNatRules",
"properties": {
"enableFloatingIP": false,
"backendPort": 443,
"frontendPort": 443,
"frontendIPConfiguration": {
"id": "[variables('masterLbIPConfigID')]"
},
"protocol": "tcp"
},
"dependsOn": [
"[variables('masterLbID')]"
],
"location": "[resourceGroup().location]"
},
{
"name": "[variables('agentPrivateNSGName')]",
"apiVersion": "[variables('apiVersionDefault')]",
"location": "[resourceGroup().location]",
"type": "Microsoft.Network/networkSecurityGroups"
},
{
"properties": {
"securityRules": [
{
"properties": {
"direction": "Inbound",
"sourceAddressPrefix": "Internet",
"destinationAddressPrefix": "*",
"protocol": "*",
"priority": 200,
"access": "Allow",
"description": "Allow HTTP traffic from the Internet to Public Agents",
"destinationPortRange": 80,
"sourcePortRange": "*"
},
"name": "Allow_HTTP"
},
{
"properties": {
"direction": "Inbound",
"sourceAddressPrefix": "Internet",
"destinationAddressPrefix": "*",
"protocol": "*",
"priority": 300,
"access": "Allow",
"description": "Allow HTTPS traffic from the Internet to Public Agents",
"destinationPortRange": 443,
"sourcePortRange": "*"
},
"name": "Allow_HTTPS"
},
{
"properties": {
"direction": "Inbound",
"sourceAddressPrefix": "Internet",
"destinationAddressPrefix": "*",
"protocol": "*",
"priority": 400,
"access": "Allow",
"description": "Allow 8080 traffic from the Internet to Public Agents",
"destinationPortRange": 8080,
"sourcePortRange": "*"
},
"name": "Allow_8080"
}
]
},
"name": "[variables('agentPublicNSGName')]",
"apiVersion": "[variables('apiVersionDefault')]",
"location": "[resourceGroup().location]",
"type": "Microsoft.Network/networkSecurityGroups"
},
{
"copy": {
"name": "nicLoopNode",
"count": "[variables('masterCount')]"
},
"name": "[concat(variables('masterVMNamePrefix'), 'nic-', copyIndex())]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/networkInterfaces",
"properties": {
"networkSecurityGroup": {
"id": "[variables('masterNSGID')]"
},
"ipConfigurations": [
{
"properties": {
"privateIPAllocationMethod": "Static",
"subnet": {
"id": "[variables('masterSubnetRef')]"
},
"privateIPAddress": "[concat(split(variables('masterAddressPrefix'),'0/24')[0], copyIndex(variables('masterFirstAddr')))]",
"loadBalancerInboundNatRules": "[variables('masterLbInboundNatRules')[copyIndex()]]",
"loadBalancerBackendAddressPools": [
{
"id": "[concat(variables('masterLbID'), '/backendAddressPools/', variables('masterLbBackendPoolName'))]"
}
]
},
"name": "ipConfigNode"
}
]
},
"dependsOn": [
"[variables('vnetID')]",
"[concat(variables('masterLbID'),'/inboundNatRules/SSH-',variables('masterVMNamePrefix'),copyIndex())]",
"[variables('masterSshPort22InboundNatRuleId')]",
"[variables('masterHttpPort80InboundNatRuleId')]",
"[variables('masterHttpsPort443InboundNatRuleId')]",
"[variables('masterNSGID')]"
],
"location": "[resourceGroup().location]"
},
{
"copy": {
"name": "vmLoopNode",
"count": "[variables('masterCount')]"
},
"name": "[concat(variables('masterVMNamePrefix'), copyIndex())]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Compute/virtualMachines",
"properties": {
"hardwareProfile": {
"vmSize": "[variables('masterVMSize')]"
},
"storageProfile": {
"imageReference": {
"publisher": "[variables('osImagePublisher')]",
"version": "[variables('osImageVersion')]",
"sku": "[variables('osImageSKU')]",
"offer": "[variables('osImageOffer')]"
},
"osDisk": {
"name": "[concat(variables('masterVMNamePrefix'), copyIndex(),'-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"
}
},
"osProfile": {
"adminPassword": "[variables('adminPassword')]",
"linuxConfiguration": "[variables('linuxConfiguration')]",
"computername": "[concat(variables('masterVMNamePrefix'), copyIndex())]",
"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\": \"https://dcosio.azureedge.net/dcos/stable\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/repository-url\", \"permissions\": \"0644\"}, {\"content\": \"03460d442fa522fd6c58b32d5c5d96737725e000\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/cluster-package-list\", \"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, '\\\", \\\"', reference(variables('masterVMNic')[1]).ipConfigurations[0].properties.privateIPAddress, '\\\", \\\"', reference(variables('masterVMNic')[2]).ipConfigurations[0].properties.privateIPAddress, '\\\"]\\n \\\"oauth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n\\\"late_bound_package_id\\\": |-\\n dcos-provider-050b05d5bdd9c54cf0dfc1226627af6e15dac749-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/active/\\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 https://dcosio.azureedge.net/dcos/stable/bootstrap/6a177efb1f3c1358110fc434910b5310f504c169.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\"}]}'))]"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"storageUri": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]",
"enabled": "[variables('enableVMDiagnostics')]"
}
},
"availabilitySet": {
"id": "[resourceId('Microsoft.Compute/availabilitySets',variables('masterAvailabilitySet'))]"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('masterVMNamePrefix'), 'nic-', copyIndex()))]"
}
]
}
},
"dependsOn": [
"[concat('Microsoft.Network/networkInterfaces/', variables('masterVMNamePrefix'), 'nic-', copyIndex())]",
"[concat('Microsoft.Compute/availabilitySets/',variables('masterAvailabilitySet'))]",
"[variables('masterStorageAccountName')]",
"[variables('masterStorageAccountExhibitorName')]",
"[variables('diagnosticsStorageAccountName')]"
],
"location": "[resourceGroup().location]"
},
{
"name": "[concat(variables('masterVMNamePrefix'), sub(variables('masterCount'), 1), '/waitforleader')]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"properties": {
"settings": {
"commandToExecute": "sh -c 'until ping -c1 leader.mesos;do echo waiting for leader.mesos;sleep 15;done;echo leader.mesos up'"
},
"publisher": "Microsoft.OSTCExtensions",
"typeHandlerVersion": "1.4",
"type": "CustomScriptForLinux",
"autoUpgradeMinorVersion": true
},
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', variables('masterVMNamePrefix'), sub(variables('masterCount'), 1))]"
],
"location": "[resourceGroup().location]"
},
{
"copy": {
"name": "vmLoopNode",
"count": "[variables('masterCount')]"
},
"name": "[concat(variables('masterVMNamePrefix'), copyIndex(), '/linuxdiagnostic')]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"properties": {
"publisher": "Microsoft.OSTCExtensions",
"type": "LinuxDiagnostic",
"autoUpgradeMinorVersion": true,
"settings": {
"xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('masterVMNamePrefix'), copyIndex(), variables('wadcfgxend')))]",
"StorageAccount": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]"
},
"typeHandlerVersion": "2.3",
"protectedSettings": {
"storageAccountName": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]",
"storageAccountKey": "[listKeys(variables('accountid'),variables('apiVersionStorage')).key1]"
}
},
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', concat(variables('masterVMNamePrefix'), copyIndex()))]"
],
"location": "[resourceGroup().location]"
},
{
"name": "[variables('agentStoragePublicAccountName')]",
"apiVersion": "[variables('apiVersionStorage')]",
"type": "Microsoft.Storage/storageAccounts",
"properties": {
"accountType": "[variables('vmSizesMap')[variables('agentVMSize')].storageAccountType]"
},
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"location": "[variables('storageLocation')]"
},
{
"properties": {
"dnsSettings": {
"domainNameLabel": "[variables('agentEndpointDNSNamePrefix')]"
},
"publicIPAllocationMethod": "Dynamic"
},
"name": "[variables('agentPublicIPAddressName')]",
"apiVersion": "[variables('apiVersionDefault')]",
"location": "[resourceGroup().location]",
"type": "Microsoft.Network/publicIPAddresses"
},
{
"name": "[variables('agentsPublicLbName')]",
"apiVersion": "[variables('apiVersionDefault')]",
"type": "Microsoft.Network/loadBalancers",
"properties": {
"frontendIPConfigurations": [
{
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('agentPublicIPAddressName'))]"
}
},
"name": "[variables('agentsPublicLbIPConfigName')]"
}
],
"backendAddressPools": [
{
"name": "[variables('agentsPublicLbBackendPoolName')]"
}
],
"probes": [
{
"properties": {
"numberOfProbes": "2",
"port": 80,
"protocol": "tcp",
"intervalInSeconds": "5"
},
"name": "tcpHTTPProbe"
},
{
"properties": {
"numberOfProbes": "2",
"port": 443,
"protocol": "tcp",
"intervalInSeconds": "5"
},
"name": "tcpHTTPSProbe"
},
{
"properties": {
"numberOfProbes": "2",
"port": 8080,
"protocol": "tcp",
"intervalInSeconds": "5"
},
"name": "tcpPort8080Probe"
}
],
"loadBalancingRules": [
{
"properties": {
"enableFloatingIP": false,
"protocol": "tcp",
"idleTimeoutInMinutes": 5,
"backendAddressPool": {
"id": "[concat(variables('agentsPublicLbID'), '/backendAddressPools/', variables('agentsPublicLbBackendPoolName'))]"
},
"loadDistribution": "Default",
"backendPort": 80,
"frontendPort": 80,
"frontendIPConfiguration": {
"id": "[variables('agentsPublicLbIPConfigID')]"
},
"probe": {
"id": "[concat(variables('agentsPublicLbID'),'/probes/tcpHTTPProbe')]"
}
},
"name": "LBRuleHTTP"
},
{
"properties": {
"enableFloatingIP": false,
"protocol": "tcp",
"idleTimeoutInMinutes": 5,
"backendAddressPool": {
"id": "[concat(variables('agentsPublicLbID'), '/backendAddressPools/', variables('agentsPublicLbBackendPoolName'))]"
},
"loadDistribution": "Default",
"backendPort": 443,
"frontendPort": 443,
"frontendIPConfiguration": {
"id": "[variables('agentsPublicLbIPConfigID')]"
},
"probe": {
"id": "[concat(variables('agentsPublicLbID'),'/probes/tcpHTTPSProbe')]"
}
},
"name": "LBRuleHTTPS"
},
{
"properties": {
"enableFloatingIP": false,
"protocol": "tcp",
"idleTimeoutInMinutes": 5,
"backendAddressPool": {
"id": "[concat(variables('agentsPublicLbID'), '/backendAddressPools/', variables('agentsPublicLbBackendPoolName'))]"
},
"loadDistribution": "Default",
"backendPort": 8080,
"frontendPort": 8080,
"frontendIPConfiguration": {
"id": "[variables('agentsPublicLbIPConfigID')]"
},
"probe": {
"id": "[concat(variables('agentsPublicLbID'),'/probes/tcpPort8080Probe')]"
}
},
"name": "LBRulePort8080"
}
],
"inboundNatRules": []
},
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('agentPublicIPAddressName'))]"
],
"location": "[resourceGroup().location]"
},
{
"copy": {
"name": "masterLbLoopNode",
"count": "[variables('agentPublicVMSSCount')]"
},
"name": "[concat(variables('agentPublicVMNamePrefix'), '-vmss', copyIndex())]",
"apiVersion": "[variables('apiVersionDefault')]",
"sku": {
"tier": "Standard",
"name": "[variables('agentVMSize')]",
"capacity": "[variables('agentPublicCount')]"
},
"type": "Microsoft.Compute/virtualMachineScaleSets",
"properties": {
"virtualMachineProfile": {
"osProfile": {
"computerNamePrefix": "[variables('agentPublicVMNamePrefix')]",
"linuxConfiguration": {
"ssh": {
"publicKeys": [
{
"keyData": "[parameters('sshRSAPublicKey')]",
"path": "[variables('sshKeyPath')]"
}
]
},
"disablePasswordAuthentication": "true"
},
"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\": \"https://dcosio.azureedge.net/dcos/stable\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/repository-url\", \"permissions\": \"0644\"}, {\"content\": \"03460d442fa522fd6c58b32d5c5d96737725e000\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/cluster-package-list\", \"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, '\\\", \\\"', reference(variables('masterVMNic')[1]).ipConfigurations[0].properties.privateIPAddress, '\\\", \\\"', reference(variables('masterVMNic')[2]).ipConfigurations[0].properties.privateIPAddress, '\\\"]\\n \\\"oauth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n\\\"late_bound_package_id\\\": |-\\n dcos-provider-050b05d5bdd9c54cf0dfc1226627af6e15dac749-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/active/\\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 https://dcosio.azureedge.net/dcos/stable/bootstrap/6a177efb1f3c1358110fc434910b5310f504c169.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\"}]}'))]"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"storageUri": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]",
"enabled": "[variables('enableVMDiagnostics')]"
}
},
"storageProfile": {
"imageReference": {
"publisher": "[variables('osImagePublisher')]",
"version": "[variables('osImageVersion')]",
"sku": "[variables('osImageSKU')]",
"offer": "[variables('osImageOffer')]"
},
"osDisk": {
"createOption": "FromImage",
"name": "vmssosdisk",
"vhdContainers": [
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('agentStoragePublicAccountName')),variables('apiVersionStorage')).primaryEndpoints.blob, 'osdisk')]"
],
"caching": "ReadOnly"
}
},
"extensionProfile": {
"extensions": [
{
"properties": {
"publisher": "Microsoft.OSTCExtensions",
"type": "LinuxDiagnostic",
"autoUpgradeMinorVersion": true,
"settings": {
"xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('agentPublicVMNamePrefix'), variables('wadcfgxend')))]",
"StorageAccount": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]"
},
"typeHandlerVersion": "2.3",
"protectedSettings": {
"storageAccountName": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]",
"storageAccountKey": "[listKeys(variables('accountid'),variables('apiVersionStorage')).key1]"
}
},
"name": "LinuxDiagnostic"
}
]
},
"networkProfile": {
"networkInterfaceConfigurations": [
{
"properties": {
"primary": "true",
"ipConfigurations": [
{
"properties": {
"loadBalancerBackendAddressPools": [
{
"id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('agentsPublicLbName'), '/backendAddressPools/',variables('agentsPublicLbBackendPoolName'))]"
}
],
"subnet": {
"id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'), '/subnets/', variables('agentPublicSubnetName'))]"
}
},
"name": "nicipconfig"
}
]
},
"name": "agentNodeNic"
}
]
}
},
"upgradePolicy": {
"mode": "Manual"
}
},
"dependsOn": [
"[concat('Microsoft.Storage/storageAccounts/', variables('agentStoragePublicAccountName'))]",
"[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]",
"[concat('Microsoft.Network/loadBalancers/', variables('agentsPublicLbName'))]",
"[variables('diagnosticsStorageAccountName')]"
],
"location": "[resourceGroup().location]"
},
{
"copy": {
"name": "agentPrivateLoopNode",
"count": "[variables('agentStorageAccountsCount')]"
},
"name": "[concat(variables('storageAccountPrefixes')[mod(copyIndex(),variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(copyIndex(),variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),copyIndex())]",
"apiVersion": "[variables('apiVersionStorage')]",
"type": "Microsoft.Storage/storageAccounts",
"properties": {
"accountType": "[variables('vmSizesMap')[variables('agentVMSize')].storageAccountType]"
},
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"location": "[variables('storageLocation')]"
},
{
"copy": {
"name": "masterLbLoopNode",
"count": "[variables('agentPrivateVMSSCount')]"
},
"name": "[concat(variables('agentPrivateVMNamePrefix'), '-vmss', copyIndex())]",
"apiVersion": "[variables('apiVersionDefault')]",
"sku": {
"tier": "Standard",
"name": "[variables('agentVMSize')]",
"capacity": "[variables('agentPrivateCount')]"
},
"type": "Microsoft.Compute/virtualMachineScaleSets",
"properties": {
"virtualMachineProfile": {
"osProfile": {
"computerNamePrefix": "[variables('agentPrivateVMNamePrefix')]",
"linuxConfiguration": {
"ssh": {
"publicKeys": [
{
"keyData": "[parameters('sshRSAPublicKey')]",
"path": "[variables('sshKeyPath')]"
}
]
},
"disablePasswordAuthentication": "true"
},
"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\": \"https://dcosio.azureedge.net/dcos/stable\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/repository-url\", \"permissions\": \"0644\"}, {\"content\": \"03460d442fa522fd6c58b32d5c5d96737725e000\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/cluster-package-list\", \"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, '\\\", \\\"', reference(variables('masterVMNic')[1]).ipConfigurations[0].properties.privateIPAddress, '\\\", \\\"', reference(variables('masterVMNic')[2]).ipConfigurations[0].properties.privateIPAddress, '\\\"]\\n \\\"oauth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n\\\"late_bound_package_id\\\": |-\\n dcos-provider-050b05d5bdd9c54cf0dfc1226627af6e15dac749-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/active/\\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 https://dcosio.azureedge.net/dcos/stable/bootstrap/6a177efb1f3c1358110fc434910b5310f504c169.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\"}]}'))]"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"storageUri": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]",
"enabled": "[variables('enableVMDiagnostics')]"
}
},
"storageProfile": {
"imageReference": {
"publisher": "[variables('osImagePublisher')]",
"version": "[variables('osImageVersion')]",
"sku": "[variables('osImageSKU')]",
"offer": "[variables('osImageOffer')]"
},
"osDisk": {
"createOption": "FromImage",
"name": "vmssosdisk",
"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')]"
],
"caching": "ReadOnly"
}
},
"extensionProfile": {
"extensions": [
{
"properties": {
"publisher": "Microsoft.OSTCExtensions",
"type": "LinuxDiagnostic",
"autoUpgradeMinorVersion": true,
"settings": {
"xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('agentPrivateVMNamePrefix'), variables('wadcfgxend')))]",
"StorageAccount": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]"
},
"typeHandlerVersion": "2.3",
"protectedSettings": {
"storageAccountName": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]",
"storageAccountKey": "[listKeys(variables('accountid'),variables('apiVersionStorage')).key1]"
}
},
"name": "LinuxDiagnostic"
}
]
},
"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"
}
]
}
},
"upgradePolicy": {
"mode": "Manual"
}
},
"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')]"
],
"location": "[resourceGroup().location]"
}
],
"variables": {
"diagnosticsStorageAccountName-true": "[variables('diagnosticsStorageAccountName')]",
"masterPublicIPAddressName": "[concat(variables('orchestratorName'), '-master-ip-', variables('masterEndpointDNSNamePrefix'), '-', variables('nameSuffix'))]",
"diagnosticsStorageAccountName": "[concat(variables('storageAccountBaseName'), 'diag', '0')]",
"agentPrivateSubnetName": "[concat(variables('orchestratorName'), '-agentPrivateSubnet')]",
"masterHttpPort80InboundNatRuleName": "[concat(variables('masterLbName'),'/HTTPPort80-',variables('masterVMNamePrefix'),'0')]",
"masterAddressPrefix": "172.16.0.0/24",
"wadlogs": "<WadCfg><DiagnosticMonitorConfiguration>",
"chronosEnabled": true,
"linuxSku": "[parameters('linuxSku')]",
"masterLbIPConfigName": "[concat(variables('orchestratorName'), '-master-lbFrontEnd-', variables('nameSuffix'))]",
"diagnosticsStorageAccountName-false": "",
"masterVMSize": "[variables('masterSizes')[variables('isValidation')]]",
"masterSubnetName": "[concat(variables('orchestratorName'), '-masterSubnet')]",
"agentsPublicLbName": "[concat(variables('orchestratorName'), '-agent-lb-', variables('nameSuffix'))]",
"masterNSGID": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('masterNSGName'))]",
"oauthEnabled": "[parameters('oauthEnabled')]",
"omsStorageAccount": "none",
"osImageOffer": "[variables('linuxOffer')]",
"adminUsername": "[parameters('linuxAdminUsername')]",
"agentPrivateVMSSCount": 1,
"masterLbIPConfigID": "[concat(variables('masterLbID'),'/frontendIPConfigurations/', variables('masterLbIPConfigName'))]",
"clusterInstallParameters": "[concat(variables('masterCount'), ' ',variables('masterVMNamePrefix'), ' ',variables('masterFirstAddr'), ' ',variables('swarmEnabled'),' ',variables('marathonEnabled'),' ',variables('chronosEnabled'),' ',variables('omsStorageAccount'),' ',variables('omsStorageAccountKey'),' ', variables('adminUsername'),' ',variables('postInstallScriptURI'))]",
"isValidation": "[parameters('isValidation')]",
"linuxConfiguration": "[variables('linuxConfigurations')[variables('setLinuxConfigurationForVMCreate')]]",
"masterLbBackendPoolName": "[concat(variables('orchestratorName'), '-master-pool-', variables('nameSuffix'))]",
"vmsPerStorageAccount": "[parameters('vmsPerStorageAccount')]",
"orchestratorName": "dcos",
"masterHttpsPort443InboundNatRuleName": "[concat(variables('masterLbName'),'/HTTPSPort443-',variables('masterVMNamePrefix'),'0')]",
"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://\"",
"enableNewStorageAccountNaming": "[parameters('enableNewStorageAccountNaming')]",
"linuxOffer": "[parameters('linuxOffer')]",
"windowsAdminPassword": "[parameters('windowsAdminPassword')]",
"agentAddressPrefix": "10.0.0.0/8",
"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')]"
}
]
],
"sshKeyPath": "[concat('/home/', variables('adminUsername'), '/.ssh/authorized_keys')]",
"agentPublicVMNamePrefix": "[concat(variables('orchestratorName'), '-agent-public-', variables('nameSuffix'))]",
"setBrowserFirstTabDefaultSuffix": "0:5050",
"agentsPerIPv4Octet": 200,
"agentPublicCount": "[variables('agentPublicCountPerMasterCount')[string(variables('masterCount'))]]",
"agentStorageAccountsCount": 5,
"masterLbID": "[resourceId('Microsoft.Network/loadBalancers',variables('masterLbName'))]",
"sshRSAPublicKey": "[parameters('sshRSAPublicKey')]",
"windowsAdminUsername": "[parameters('windowsAdminUsername')]",
"osImageVersion": "[variables('linuxVersion')]",
"agentPrivateNSGName": "[concat(variables('orchestratorName'), '-agent-private-nsg-', variables('nameSuffix'))]",
"agentEndpointDNSNamePrefix": "[tolower(parameters('agentEndpointDNSNamePrefix'))]",
"agentAvailabilitySet": "[concat(variables('orchestratorName'), '-agent-availabilitySet-', variables('nameSuffix'))]",
"masterSshInboundNatRuleNamePrefix": "[concat(variables('masterLbName'),'/SSH-',variables('masterVMNamePrefix'))]",
"agentPrivateCount": "[parameters('agentCount')]",
"agentPrivateVMNamePrefix": "[concat(variables('orchestratorName'), '-agent-private-', variables('nameSuffix'))]",
"masterAvailabilitySet": "[concat(variables('orchestratorName'), '-master-availabilitySet-', variables('nameSuffix'))]",
"postInstallScriptURI": "[parameters('postInstallScriptURI')]",
"agentsPublicLbID": "[resourceId('Microsoft.Network/loadBalancers',variables('agentsPublicLbName'))]",
"masterVMNamePrefix": "[concat(variables('orchestratorName'), '-master-', variables('nameSuffix'), '-')]",
"virtualNetworkName": "[concat(variables('orchestratorName'), '-vnet-', variables('nameSuffix'))]",
"masterLbName": "[concat(variables('orchestratorName'), '-master-lb-', variables('nameSuffix'))]",
"agentPublicSubnetName": "[concat(variables('orchestratorName'), '-agentPublicSubnet')]",
"enableVMDiagnostics": "[parameters('enableVMDiagnostics')]",
"agentPrivateAddressPrefix": "10.32.0.0/11",
"agentPublicIPAddressName": "[concat(variables('orchestratorName'), '-agent-ip-', variables('agentEndpointDNSNamePrefix'), '-', variables('nameSuffix'))]",
"storageAccountBaseNameNewSuffix-true": "[resourceGroup().location]",
"wadperfcounters1-false": "",
"masterEndpointDNSNamePrefix": "[tolower(parameters('masterEndpointDNSNamePrefix'))]",
"masterHttpPort80InboundNatRuleId": "[concat(variables('masterLbID'),'/inboundNatRules/HTTPPort80-',variables('masterVMNamePrefix'),'0')]",
"marathonEnabled": true,
"masterNSGName": "[concat(variables('orchestratorName'), '-master-nsg-', variables('nameSuffix'))]",
"adminPassword": "[parameters('linuxAdminPassword')]",
"agentPublicVMSSCount": 1,
"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>",
"agentStoragePublicAccountName": "[concat(variables('storageAccountBaseName'), 'agntpub')]",
"apiVersionStorage": "2015-06-15",
"linuxVersion": "[parameters('linuxVersion')]",
"swarmEnabled": false,
"masterSshPort22InboundNatRuleId": "[concat(variables('masterLbID'),'/inboundNatRules/SSHPort22-',variables('masterVMNamePrefix'),'0')]",
"agentStoragePrivateAccountName": "[concat(variables('storageAccountBaseName'), 'agntpri')]",
"wadcfgxstart": "[concat(variables('wadlogs'),variables(concat('wadperfcounters1','-',variables('enableVMDiagnostics'))),variables(concat('wadperfcounters2','-',variables('enableVMDiagnostics'))),'<Metrics resourceId=\"')]",
"agentPublicAddressPrefix": "10.0.0.0/11",
"masterStorageAccountExhibitorName": "[concat(variables('storageAccountBaseName'), 'exhb0')]",
"accountid": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',variables('diagnosticsStorageAccountResourceGroup'),'/providers/','Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName'))]",
"omsStorageAccountKey": "none",
"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"
],
"agentPublicNSGID": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('agentPublicNSGName'))]",
"wadperfcounters2-false": "",
"agentVMSize": "[parameters('agentVMSize')]",
"wadcfgxend": "[concat('\"><MetricAggregation scheduledTransferPeriod=\"PT1H\"/><MetricAggregation scheduledTransferPeriod=\"PT1M\"/></Metrics></DiagnosticMonitorConfiguration></WadCfg>')]",
"masterHttpsPort443InboundNatRuleId": "[concat(variables('masterLbID'),'/inboundNatRules/HTTPSPort443-',variables('masterVMNamePrefix'),'0')]",
"storageAccountPrefixesCount": "[length(variables('storageAccountPrefixes'))]",
"vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
"allowMasterHttp": {
"false": "Deny",
"true": "Allow"
},
"apiVersionDefault": "2016-03-30",
"DcosImageCommit": "96f364a598e5f06371794ebb7c40fff65d0c289f",
"linuxPublisher": "[parameters('linuxPublisher')]",
"agentPublicCountPerMasterCount": {
"1": 1,
"3": 3,
"5": 3
},
"masterCount": 3,
"agentFirstAddr": 20,
"masterSubnetRef": "[concat(variables('vnetID'),'/subnets/',variables('masterSubnetName'))]",
"masterStorageAccountName": "[concat(variables('storageAccountBaseName'), 'mstr0')]",
"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')]"
],
"agentPublicNSGName": "[concat(variables('orchestratorName'), '-agent-public-nsg-', variables('nameSuffix'))]",
"osImagePublisher": "[variables('linuxPublisher')]",
"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>",
"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 &\" &')]",
"diagnosticsStorageAccountResourceGroup": "[resourceGroup().name]",
"setLinuxConfigurationForVMCreate": "[parameters('setLinuxConfigurationForVMCreate')]",
"osImageSKU": "[variables('linuxSku')]",
"vmSizesMap": {
"Standard_A9": {
"storageAccountType": "Standard_LRS"
},
"Standard_D12_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_A7": {
"storageAccountType": "Standard_LRS"
},
"Standard_D3": {
"storageAccountType": "Standard_LRS"
},
"Standard_D2_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS14": {
"storageAccountType": "Premium_LRS"
},
"Standard_GS4": {
"storageAccountType": "Premium_LRS"
},
"Standard_GS3": {
"storageAccountType": "Premium_LRS"
},
"Standard_G3": {
"storageAccountType": "Standard_LRS"
},
"Standard_D14": {
"storageAccountType": "Standard_LRS"
},
"Standard_A3": {
"storageAccountType": "Standard_LRS"
},
"Standard_GS1": {
"storageAccountType": "Premium_LRS"
},
"Standard_DS11": {
"storageAccountType": "Premium_LRS"
},
"Standard_D2": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS4": {
"storageAccountType": "Premium_LRS"
},
"Standard_D1": {
"storageAccountType": "Standard_LRS"
},
"Standard_D12": {
"storageAccountType": "Standard_LRS"
},
"Standard_D4_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS3": {
"storageAccountType": "Premium_LRS"
},
"Standard_D1_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_G1": {
"storageAccountType": "Standard_LRS"
},
"Standard_GS2": {
"storageAccountType": "Premium_LRS"
},
"Standard_D3_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_G5": {
"storageAccountType": "Standard_LRS"
},
"Standard_D4": {
"storageAccountType": "Standard_LRS"
},
"Standard_G4": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS12": {
"storageAccountType": "Premium_LRS"
},
"Standard_A11": {
"storageAccountType": "Standard_LRS"
},
"Standard_D11_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_D13_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_D13": {
"storageAccountType": "Standard_LRS"
},
"Standard_A8": {
"storageAccountType": "Standard_LRS"
},
"Standard_GS5": {
"storageAccountType": "Premium_LRS"
},
"Standard_A4": {
"storageAccountType": "Standard_LRS"
},
"Standard_A10": {
"storageAccountType": "Standard_LRS"
},
"Standard_D11": {
"storageAccountType": "Standard_LRS"
},
"Standard_D14_v2": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS2": {
"storageAccountType": "Premium_LRS"
},
"Standard_A2": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS1": {
"storageAccountType": "Premium_LRS"
},
"Standard_A5": {
"storageAccountType": "Standard_LRS"
},
"Standard_DS13": {
"storageAccountType": "Premium_LRS"
},
"Standard_A6": {
"storageAccountType": "Standard_LRS"
},
"Standard_G2": {
"storageAccountType": "Standard_LRS"
},
"Standard_D5_v2": {
"storageAccountType": "Standard_LRS"
}
},
"storageLocation": "[variables('storageLocations')[variables('isValidation')]]",
"masterSshPort22InboundNatRuleName": "[concat(variables('masterLbName'),'/SSHPort22-',variables('masterVMNamePrefix'),'0')]",
"masterCustomScript": "[concat('/bin/bash -c \"/bin/bash /opt/azure/containers/configure-mesos-cluster.sh ',variables('clusterInstallParameters'),' >> /var/log/azure/cluster-bootstrap.log 2>&1\"')]",
"agentsPublicLbBackendPoolName": "[concat(variables('orchestratorName'), '-agent-pool-', variables('nameSuffix'))]",
"nameSuffix": "[parameters('nameSuffix')]",
"masterSshInboundNatRuleIdPrefix": "[concat(variables('masterLbID'),'/inboundNatRules/SSH-',variables('masterVMNamePrefix'))]",
"storageAccountBaseNameNewSuffix-false": "",
"TemplateGenerationDate": "2018-06-26 21:21:20.569626",
"storageLocations": [
"[resourceGroup().location]",
"East US 2 (Stage)"
],
"storageAccountBaseName": "[uniqueString(concat(variables('masterEndpointDNSNamePrefix'),variables(concat('storageAccountBaseNameNewSuffix', '-', variables('enableNewStorageAccountNaming'))), variables('orchestratorName')))]",
"masterSizes": [
"Standard_D2_v2",
"Standard_A2"
],
"agentsPublicLbIPConfigName": "[concat(variables('orchestratorName'), '-agent-lbFrontEnd-', variables('nameSuffix'))]",
"linuxConfigurations": [
{},
{
"ssh": {
"publicKeys": [
{
"keyData": "[variables('sshRSAPublicKey')]",
"path": "[variables('sshKeyPath')]"
}
]
},
"disablePasswordAuthentication": "[variables('disablePasswordAuthentication')]"
}
],
"disablePasswordAuthentication": "[parameters('disablePasswordAuthentication')]",
"masterFirstAddr": 5,
"agentsPublicLbIPConfigID": "[concat(variables('agentsPublicLbID'),'/frontendIPConfigurations/', variables('agentsPublicLbIPConfigName'))]",
"agentPrivateNSGID": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('agentPrivateNSGName'))]"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment