Skip to content

Instantly share code, notes, and snippets.

@dzeyelid
Last active October 31, 2017 00:22
Show Gist options
  • Save dzeyelid/876c49c2fc38f311b36a43118769856d to your computer and use it in GitHub Desktop.
Save dzeyelid/876c49c2fc38f311b36a43118769856d to your computer and use it in GitHub Desktop.
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"virtualMachineSize": {
"type": "string",
"defaultValue": "Standard_F1",
"allowedValues": [
"Standard_A0",
"Standard_A1",
"Standard_A2",
"Standard_A3",
"Standard_A5",
"Standard_A4",
"Standard_A6",
"Standard_A7",
"Basic_A0",
"Basic_A1",
"Basic_A2",
"Basic_A3",
"Basic_A4",
"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_D15_v2",
"Standard_D2_v2_Promo",
"Standard_D3_v2_Promo",
"Standard_D4_v2_Promo",
"Standard_D5_v2_Promo",
"Standard_D11_v2_Promo",
"Standard_D12_v2_Promo",
"Standard_D13_v2_Promo",
"Standard_D14_v2_Promo",
"Standard_F1",
"Standard_F2",
"Standard_F4",
"Standard_F8",
"Standard_F16",
"Standard_A1_v2",
"Standard_A2m_v2",
"Standard_A2_v2",
"Standard_A4m_v2",
"Standard_A4_v2",
"Standard_A8m_v2",
"Standard_A8_v2",
"Standard_DS1_v2",
"Standard_DS2_v2",
"Standard_DS3_v2",
"Standard_DS4_v2",
"Standard_DS5_v2",
"Standard_DS11_v2",
"Standard_DS12_v2",
"Standard_DS13-2_v2",
"Standard_DS13-4_v2",
"Standard_DS13_v2",
"Standard_DS14-4_v2",
"Standard_DS14-8_v2",
"Standard_DS14_v2",
"Standard_DS15_v2",
"Standard_DS2_v2_Promo",
"Standard_DS3_v2_Promo",
"Standard_DS4_v2_Promo",
"Standard_DS5_v2_Promo",
"Standard_DS11_v2_Promo",
"Standard_DS12_v2_Promo",
"Standard_DS13_v2_Promo",
"Standard_DS14_v2_Promo",
"Standard_F1s",
"Standard_F2s",
"Standard_F4s",
"Standard_F8s",
"Standard_F16s",
"Standard_H8",
"Standard_H16",
"Standard_H8m",
"Standard_H16m",
"Standard_H16r",
"Standard_H16mr",
"Standard_NV6",
"Standard_NV12",
"Standard_NV24",
"Standard_D1",
"Standard_D2",
"Standard_D3",
"Standard_D4",
"Standard_D11",
"Standard_D12",
"Standard_D13",
"Standard_D14",
"Standard_DS1",
"Standard_DS2",
"Standard_DS3",
"Standard_DS4",
"Standard_DS11",
"Standard_DS12",
"Standard_DS13",
"Standard_DS14",
"Standard_A8",
"Standard_A9",
"Standard_A10",
"Standard_A11",
"Standard_G1",
"Standard_G2",
"Standard_G3",
"Standard_G4",
"Standard_G5",
"Standard_GS1",
"Standard_GS2",
"Standard_GS3",
"Standard_GS4",
"Standard_GS4-4",
"Standard_GS4-8",
"Standard_GS5",
"Standard_GS5-8",
"Standard_GS5-16",
"Standard_L4s",
"Standard_L8s",
"Standard_L16s",
"Standard_L32s"
]
},
"virtualMachineSizeDb": {
"type": "string",
"defaultValue": "Standard_F2",
"allowedValues": [
"Standard_A2",
"Standard_A3",
"Standard_A5",
"Standard_A4",
"Standard_A6",
"Standard_A7",
"Basic_A2",
"Basic_A3",
"Basic_A4",
"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_D15_v2",
"Standard_D2_v2_Promo",
"Standard_D3_v2_Promo",
"Standard_D4_v2_Promo",
"Standard_D5_v2_Promo",
"Standard_D11_v2_Promo",
"Standard_D12_v2_Promo",
"Standard_D13_v2_Promo",
"Standard_D14_v2_Promo",
"Standard_F2",
"Standard_F4",
"Standard_F8",
"Standard_F16",
"Standard_A2m_v2",
"Standard_A2_v2",
"Standard_A4m_v2",
"Standard_A4_v2",
"Standard_A8m_v2",
"Standard_A8_v2",
"Standard_DS1_v2",
"Standard_DS2_v2",
"Standard_DS3_v2",
"Standard_DS4_v2",
"Standard_DS5_v2",
"Standard_DS11_v2",
"Standard_DS12_v2",
"Standard_DS13-2_v2",
"Standard_DS13-4_v2",
"Standard_DS13_v2",
"Standard_DS14-4_v2",
"Standard_DS14-8_v2",
"Standard_DS14_v2",
"Standard_DS15_v2",
"Standard_DS2_v2_Promo",
"Standard_DS3_v2_Promo",
"Standard_DS4_v2_Promo",
"Standard_DS5_v2_Promo",
"Standard_DS11_v2_Promo",
"Standard_DS12_v2_Promo",
"Standard_DS13_v2_Promo",
"Standard_DS14_v2_Promo",
"Standard_F2s",
"Standard_F4s",
"Standard_F8s",
"Standard_F16s",
"Standard_H8",
"Standard_H16",
"Standard_H8m",
"Standard_H16m",
"Standard_H16r",
"Standard_H16mr",
"Standard_NV6",
"Standard_NV12",
"Standard_NV24",
"Standard_D1",
"Standard_D2",
"Standard_D3",
"Standard_D4",
"Standard_D11",
"Standard_D12",
"Standard_D13",
"Standard_D14",
"Standard_DS1",
"Standard_DS2",
"Standard_DS3",
"Standard_DS4",
"Standard_DS11",
"Standard_DS12",
"Standard_DS13",
"Standard_DS14",
"Standard_A8",
"Standard_A9",
"Standard_A10",
"Standard_A11",
"Standard_G1",
"Standard_G2",
"Standard_G3",
"Standard_G4",
"Standard_G5",
"Standard_GS1",
"Standard_GS2",
"Standard_GS3",
"Standard_GS4",
"Standard_GS4-4",
"Standard_GS4-8",
"Standard_GS5",
"Standard_GS5-8",
"Standard_GS5-16",
"Standard_L4s",
"Standard_L8s",
"Standard_L16s",
"Standard_L32s"
]
},
"adminUsername": {
"type": "string",
"defaultValue": "isucon"
},
"adminPublicKey": {
"type": "securestring"
},
"customDataWeb": {
"type": "string",
"defaultValue": "IyEvYmluL2Jhc2gKCnNldCAtZXgKCmFwdCBpbnN0YWxsIC15IFwKICAgIGF1dG9jb25mIFwKICAgIGF1dG9tYWtlIFwKICAgIGJpc29uIFwKICAgIGJ1aWxkLWVzc2VudGlhbCBcCiAgICBjdXJsIFwKICAgIGdldHRleHQgXAogICAgZ2l0IFwKICAgIGxpYmJ6Mi1kZXYgXAogICAgbGliY3VybDQtb3BlbnNzbC1kZXYgXAogICAgbGliZ2QtZGV2IFwKICAgIGxpYmdldHRleHRwby1kZXYgXAogICAgbGliaWN1LWRldiBcCiAgICBsaWJtY3J5cHQtZGV2IFwKCWxpYm1oYXNoLWRldiBcCiAgICBsaWJteXNxbGNsaWVudC1kZXYgXAogICAgbGlicmVhZGxpbmUtZGV2IFwKICAgIGxpYnNzbC1kZXYgXAogICAgbGlidGlkeS1kZXYgXAogICAgbGlieG1sMi1kZXYgXAogICAgbGlieHNsdDEtZGV2IFwKICAgIG5naW54IFwKICAgIG9wZW5qZGstOC1qZGstaGVhZGxlc3MgXAogICAgcGtnLWNvbmZpZyBcCiAgICBweXRob24zIFwKICAgIHB5dGhvbjMtZGV2IFwKICAgIHB5dGhvbjMtdmVudiBcCiAgICByZTJjCgpzdWRvIHN1IC0gaXN1Y29uIC1jICIKICAgIGNkIC9ob21lL2lzdWNvbgogICAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9pc3Vjb24vaXN1Y29uNy1xdWFsaWZ5LmdpdCBpc3ViYXRhCiAgICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3RhZ29tb3Jpcy94YnVpbGQuZ2l0CgogICAgbWtkaXIgbG9jYWwKICAgIHhidWlsZC9ydWJ5LWluc3RhbGwgICAtZiAyLjQuMiAgIC9ob21lL2lzdWNvbi9sb2NhbC9ydWJ5CiAgICB4YnVpbGQvcGVybC1pbnN0YWxsICAgLWYgNS4yNi4xICAvaG9tZS9pc3Vjb24vbG9jYWwvcGVybAogICAgeGJ1aWxkL25vZGUtaW5zdGFsbCAgIC1mIHY2LjExLjQgL2hvbWUvaXN1Y29uL2xvY2FsL25vZGUKICAgIHhidWlsZC9nby1pbnN0YWxsICAgICAtZiAxLjkgICAgIC9ob21lL2lzdWNvbi9sb2NhbC9nbwogICAgeGJ1aWxkL3B5dGhvbi1pbnN0YWxsIC1mIDMuNi4yICAgL2hvbWUvaXN1Y29uL2xvY2FsL3B5dGhvbgogICAgeGJ1aWxkL3BocC1pbnN0YWxsICAgIC1mIDcuMS45ICAgL2hvbWUvaXN1Y29uL2xvY2FsL3BocCAtLSAtLWRpc2FibGUtcGhhciAtLXdpdGgtcGNyZS1yZWdleCAtLXdpdGgtemxpYiAtLWVuYWJsZS1mcG0gLS1lbmFibGUtcGRvIC0td2l0aC1teXNxbGk9bXlzcWxuZCAtLXdpdGgtcGRvLW15c3FsPW15c3FsbmQgLS13aXRoLW9wZW5zc2wgLS13aXRoLXBjcmUtcmVnZXggLS13aXRoLXBjcmUtZGlyIC0td2l0aC1saWJ4bWwtZGlyIC0tZW5hYmxlLW9wY2FjaGUgLS1lbmFibGUtYmNtYXRoIC0td2l0aC1iejIgLS1lbmFibGUtY2FsZW5kYXIgLS1lbmFibGUtY2xpIC0tZW5hYmxlLXNobW9wIC0tZW5hYmxlLXN5c3ZzZW0gLS1lbmFibGUtc3lzdnNobSAtLWVuYWJsZS1zeXN2bXNnIC0tZW5hYmxlLW1icmVnZXggLS1lbmFibGUtbWJzdHJpbmcgLS13aXRoLW1jcnlwdCAtLWVuYWJsZS1wY250bCAtLWVuYWJsZS1zb2NrZXRzIC0td2l0aC1jdXJsIC0tZW5hYmxlLXppcCAtLXdpdGgtcGVhcgoKICAgIGNkIC9ob21lL2lzdWNvbgogICAgZWNobyBcImV4cG9ydCBQQVRIPS9ob21lL2lzdWNvbi9sb2NhbC9ydWJ5L2JpbjpcJFBBVEhcIiA+PiAvaG9tZS9pc3Vjb24vLmJhc2hyYwogICAgZWNobyBcImV4cG9ydCBQQVRIPS9ob21lL2lzdWNvbi9sb2NhbC9wZXJsL2JpbjpcJFBBVEhcIiA+PiAvaG9tZS9pc3Vjb24vLmJhc2hyYwogICAgZWNobyBcImV4cG9ydCBQQVRIPS9ob21lL2lzdWNvbi9sb2NhbC9ub2RlL2JpbjpcJFBBVEhcIiA+PiAvaG9tZS9pc3Vjb24vLmJhc2hyYwogICAgZWNobyBcImV4cG9ydCBQQVRIPS9ob21lL2lzdWNvbi9sb2NhbC9nby9iaW46L2hvbWUvaXN1Y29uL2dvL2JpbjpcJFBBVEhcIiA+PiAvaG9tZS9pc3Vjb24vLmJhc2hyYwogICAgZWNobyBcImV4cG9ydCBQQVRIPS9ob21lL2lzdWNvbi9sb2NhbC9weXRob24vYmluOlwkUEFUSFwiID4+IC9ob21lL2lzdWNvbi8uYmFzaHJjCiAgICBlY2hvIFwiZXhwb3J0IFBBVEg9L2hvbWUvaXN1Y29uL2xvY2FsL3BocC9iaW46XCRQQVRIXCIgPj4gL2hvbWUvaXN1Y29uLy5iYXNocmMKICAgIGVjaG8gXCJleHBvcnQgR09ST09UPS9ob21lL2lzdWNvbi9sb2NhbC9nb1wiID4+IC9ob21lL2lzdWNvbi8uYmFzaHJjCgogICAgZWNobyBcImV4cG9ydCBJU1VCQVRBX0RCX0hPU1Q9ZGJcIiA+PiAvaG9tZS9pc3Vjb24vLmJhc2hyYwogICAgZWNobyBcImV4cG9ydCBJU1VCQVRBX0RCX1VTRVI9aXN1Y29uXCIgPj4gL2hvbWUvaXN1Y29uLy5iYXNocmMKICAgIGVjaG8gXCJleHBvcnQgSVNVQkFUQV9EQl9QQVNTV09SRD1pc3Vjb25cIiA+PiAvaG9tZS9pc3Vjb24vLmJhc2hyYwoKICAgIHNlZCAtaSAtZSBcInMvXlwoSVNVQkFUQV9EQl9IT1NUPVwpL1wxZGIvZ1wiIC9ob21lL2lzdWNvbi9pc3ViYXRhL2ZpbGVzL2FwcC9lbnYuc2gKCiAgICBlY2hvIFwiU3RyaWN0SG9zdEtleUNoZWNraW5nIG5vXCIgPj4gL2hvbWUvaXN1Y29uLy5zc2gvY29uZmlnIgoKY3AgL2hvbWUvaXN1Y29uL2lzdWJhdGEvZmlsZXMvYXBwL25naW54LiogL2V0Yy9uZ2lueC9zaXRlcy1hdmFpbGFibGUKY2QgL2V0Yy9uZ2lueC9zaXRlcy1lbmFibGVkCnVubGluayBkZWZhdWx0CmxuIC1zIC4uL3NpdGVzLWF2YWlsYWJsZS9uZ2lueC5jb25mICAjIHBocCDjga7loLTlkIjjga8gbmdpbngucGhwLmNvbmYKc3lzdGVtY3RsIHJlc3RhcnQgbmdpbngKCnN1ZG8gc3UgLSBpc3Vjb24gLWMgIgogICAgY2QgL2hvbWUvaXN1Y29uL2lzdWJhdGEvd2ViYXBwL3B5dGhvbgogICAgc2ggLi9zZXR1cC5zaAoKICAgIGV4cG9ydCBJU1VCQVRBX0RCX0hPU1Q9ZGIKICAgIGV4cG9ydCBJU1VCQVRBX0RCX1VTRVI9aXN1Y29uCiAgICBleHBvcnQgSVNVQkFUQV9EQl9QQVNTV09SRD1pc3Vjb24KICAgIC4vdmVudi9iaW4vZ3VuaWNvcm4gLS13b3JrZXJzPTEwIC1iICcxMjcuMC4wLjE6NTAwMCcgYXBwOmFwcCAmIgoKc3VkbyAtdSBpc3Vjb24gZGF0ZSA+IC9ob21lL2lzdWNvbi9TRVRVUF9DT01QTEVURUQKCnNldCArZXgKCmV4aXQgMAo="
},
"customDataDb": {
"type": "string",
"defaultValue": "IyEvYmluL2Jhc2gKCnNldCAtZXgKCk1ZU1FMX1JPT1RfUEFTU1dPUkQ9IiIKZGViY29uZi1zZXQtc2VsZWN0aW9ucyA8PDwgIm15c3FsLXNlcnZlciBteXNxbC1zZXJ2ZXIvcm9vdF9wYXNzd29yZCBwYXNzd29yZCAke01ZU1FMX1JPT1RfUEFTU1dPUkR9IgpkZWJjb25mLXNldC1zZWxlY3Rpb25zIDw8PCAibXlzcWwtc2VydmVyIG15c3FsLXNlcnZlci9yb290X3Bhc3N3b3JkX2FnYWluIHBhc3N3b3JkICR7TVlTUUxfUk9PVF9QQVNTV09SRH0iCkRFQklBTl9GUk9OVEVORD1ub25pbnRlcmFjdGl2ZSBhcHQgLXkgaW5zdGFsbCBteXNxbC1zZXJ2ZXIKCmFwdCBpbnN0YWxsIC15IFwKICAgIGF1dG9jb25mIFwKICAgIGF1dG9tYWtlIFwKICAgIGJpc29uIFwKICAgIGJ1aWxkLWVzc2VudGlhbCBcCiAgICBjdXJsIFwKICAgIGdldHRleHQgXAogICAgZ2l0IFwKICAgIGxpYmJ6Mi1kZXYgXAogICAgbGliY3VybDQtb3BlbnNzbC1kZXYgXAogICAgbGliZ2QtZGV2IFwKICAgIGxpYmdldHRleHRwby1kZXYgXAogICAgbGliaWN1LWRldiBcCiAgICBsaWJtY3J5cHQtZGV2IFwKCWxpYm1oYXNoLWRldiBcCiAgICBsaWJteXNxbGNsaWVudC1kZXYgXAogICAgbGlicmVhZGxpbmUtZGV2IFwKICAgIGxpYnNzbC1kZXYgXAogICAgbGlidGlkeS1kZXYgXAogICAgbGlieG1sMi1kZXYgXAogICAgbGlieHNsdDEtZGV2IFwKICAgIG9wZW5qZGstOC1qZGstaGVhZGxlc3MgXAogICAgcGtnLWNvbmZpZyBcCiAgICBweXRob24zIFwKICAgIHB5dGhvbjMtZGV2IFwKICAgIHB5dGhvbjMtdmVudiBcCiAgICByZTJjCgpzdWRvIHN1IC0gaXN1Y29uIC1jICIKICAgIGNkIC9ob21lL2lzdWNvbgogICAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9pc3Vjb24vaXN1Y29uNy1xdWFsaWZ5LmdpdCBpc3ViYXRhCiAgICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3RhZ29tb3Jpcy94YnVpbGQuZ2l0CgogICAgbWtkaXIgbG9jYWwKICAgIHhidWlsZC9nby1pbnN0YWxsICAgICAtZiAxLjkgICAgIC9ob21lL2lzdWNvbi9sb2NhbC9nbwoKICAgIGNkIC9ob21lL2lzdWNvbgogICAgZWNobyBcImV4cG9ydCBQQVRIPS9ob21lL2lzdWNvbi9sb2NhbC9nby9iaW46L2hvbWUvaXN1Y29uL2dvL2JpbjpcJFBBVEhcIiA+PiAvaG9tZS9pc3Vjb24vLmJhc2hyYwogICAgZWNobyBcImV4cG9ydCBHT1JPT1Q9L2hvbWUvaXN1Y29uL2xvY2FsL2dvXCIgPj4gL2hvbWUvaXN1Y29uLy5iYXNocmMKCiAgICBlY2hvIFwiZXhwb3J0IElTVUJBVEFfREJfSE9TVD1kYlwiID4+IC9ob21lL2lzdWNvbi8uYmFzaHJjCiAgICBlY2hvIFwiZXhwb3J0IElTVUJBVEFfREJfVVNFUj1pc3Vjb25cIiA+PiAvaG9tZS9pc3Vjb24vLmJhc2hyYwogICAgZWNobyBcImV4cG9ydCBJU1VCQVRBX0RCX1BBU1NXT1JEPWlzdWNvblwiID4+IC9ob21lL2lzdWNvbi8uYmFzaHJjCgogICAgc2VkIC1pIC1lIFwicy9eXChJU1VCQVRBX0RCX0hPU1Q9XCkvXDFkYi9nXCIgL2hvbWUvaXN1Y29uL2lzdWJhdGEvZmlsZXMvYXBwL2Vudi5zaAoKICAgIGNkIC9ob21lL2lzdWNvbi9pc3ViYXRhL2JlbmNoCiAgICBleHBvcnQgUEFUSD0vaG9tZS9pc3Vjb24vbG9jYWwvZ28vYmluOi9ob21lL2lzdWNvbi9nby9iaW46XCRQQVRICiAgICBnbyBnZXQgZ2l0aHViLmNvbS9jb25zdGFidWxhcnkvZ2IvLi4uCiAgICBnYiB2ZW5kb3IgcmVzdG9yZQogICAgbWFrZSIKCnN1ZG8gc3UgLSBpc3Vjb24gLWMgIgogICAgY2QgL2hvbWUvaXN1Y29uL2lzdWJhdGEvYmVuY2gKICAgIC4vYmluL2dlbi1pbml0aWFsLWRhdGFzZXQiCgpjZCAvaG9tZS9pc3Vjb24vaXN1YmF0YQpzaCAuL2RiL2luaXQuc2gKbXlzcWwgLXVyb290IC1lICJDUkVBVEUgVVNFUiBpc3Vjb25AJyUnIElERU5USUZJRUQgQlkgJ2lzdWNvbic7IEdSQU5UIEFMTCBvbiAqLiogVE8gaXN1Y29uQCclJzsiCm15c3FsIC11cm9vdCAtZSAiQ1JFQVRFIFVTRVIgaXN1Y29uQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgJ2lzdWNvbic7IEdSQU5UIEFMTCBvbiAqLiogVE8gaXN1Y29uQCdsb2NhbGhvc3QnOyIKCnN1ZG8gc3UgLSBpc3Vjb24gLWMgInpjYXQgL2hvbWUvaXN1Y29uL2lzdWJhdGEvYmVuY2gvaXN1Y29uN3EtaW5pdGlhbC1kYXRhc2V0LnNxbC5neiB8IHN1ZG8gbXlzcWwgLS1kZWZhdWx0LWNoYXJhY3Rlci1zZXQ9dXRmOCBpc3ViYXRhIgoKY3AgL2V0Yy9teXNxbC9teXNxbC5jb25mLmQvbXlzcWxkLmNuZiAvZXRjL215c3FsL215c3FsLmNvbmYuZC9teXNxbGQuY25mLmJrCnNlZCAtaSAtZSAicy9eXChiaW5kLWFkZHJlc3MuKj1cKSAxMjdcLjBcLjBcLjEkL1wxIDBcLjBcLjBcLjAvZyIgL2V0Yy9teXNxbC9teXNxbC5jb25mLmQvbXlzcWxkLmNuZgoKc3lzdGVtY3RsIHJlc3RhcnQgbXlzcWwKCnN1ZG8gLXUgaXN1Y29uIGRhdGUgPiAvaG9tZS9pc3Vjb24vU0VUVVBfQ09NUExFVEVECgpzZXQgK2V4CgpleGl0IDAK"
},
"customDataBench": {
"type": "string",
"defaultValue": "IyEvYmluL2Jhc2gKCnNldCAtZXgKCmFwdCBpbnN0YWxsIC15IFwKICAgIGF1dG9jb25mIFwKICAgIGF1dG9tYWtlIFwKICAgIGJpc29uIFwKICAgIGJ1aWxkLWVzc2VudGlhbCBcCiAgICBjdXJsIFwKICAgIGdldHRleHQgXAogICAgZ2l0IFwKICAgIGxpYmJ6Mi1kZXYgXAogICAgbGliY3VybDQtb3BlbnNzbC1kZXYgXAogICAgbGliZ2QtZGV2IFwKICAgIGxpYmdldHRleHRwby1kZXYgXAogICAgbGliaWN1LWRldiBcCiAgICBsaWJtY3J5cHQtZGV2IFwKCWxpYm1oYXNoLWRldiBcCiAgICBsaWJteXNxbGNsaWVudC1kZXYgXAogICAgbGlicmVhZGxpbmUtZGV2IFwKICAgIGxpYnNzbC1kZXYgXAogICAgbGlidGlkeS1kZXYgXAogICAgbGlieG1sMi1kZXYgXAogICAgbGlieHNsdDEtZGV2IFwKICAgIG5naW54IFwKICAgIG9wZW5qZGstOC1qZGstaGVhZGxlc3MgXAogICAgcGtnLWNvbmZpZyBcCiAgICBweXRob24zIFwKICAgIHB5dGhvbjMtZGV2IFwKICAgIHB5dGhvbjMtdmVudiBcCiAgICByZTJjCgpzdWRvIHN1IC0gaXN1Y29uIC1jICIKICAgIGNkIC9ob21lL2lzdWNvbgogICAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9pc3Vjb24vaXN1Y29uNy1xdWFsaWZ5LmdpdCBpc3ViYXRhCiAgICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3RhZ29tb3Jpcy94YnVpbGQuZ2l0CgogICAgbWtkaXIgbG9jYWwKICAgIHhidWlsZC9nby1pbnN0YWxsICAgICAtZiAxLjkgICAgIC9ob21lL2lzdWNvbi9sb2NhbC9nbwoKICAgIGNkIC9ob21lL2lzdWNvbgogICAgZWNobyBcImV4cG9ydCBQQVRIPS9ob21lL2lzdWNvbi9sb2NhbC9nby9iaW46L2hvbWUvaXN1Y29uL2dvL2JpbjpcJFBBVEhcIiA+PiAvaG9tZS9pc3Vjb24vLmJhc2hyYwogICAgZWNobyBcImV4cG9ydCBHT1JPT1Q9L2hvbWUvaXN1Y29uL2xvY2FsL2dvXCIgPj4gL2hvbWUvaXN1Y29uLy5iYXNocmMKCiAgICBlY2hvIFwiZXhwb3J0IElTVUJBVEFfREJfSE9TVD1kYlwiID4+IC9ob21lL2lzdWNvbi8uYmFzaHJjCiAgICBlY2hvIFwiZXhwb3J0IElTVUJBVEFfREJfVVNFUj1pc3Vjb25cIiA+PiAvaG9tZS9pc3Vjb24vLmJhc2hyYwogICAgZWNobyBcImV4cG9ydCBJU1VCQVRBX0RCX1BBU1NXT1JEPWlzdWNvblwiID4+IC9ob21lL2lzdWNvbi8uYmFzaHJjCgogICAgc2VkIC1pIC1lIFwicy9eXChJU1VCQVRBX0RCX0hPU1Q9XCkvXDFkYi9nXCIgL2hvbWUvaXN1Y29uL2lzdWJhdGEvZmlsZXMvYXBwL2Vudi5zaAoKICAgIGNkIC9ob21lL2lzdWNvbi9pc3ViYXRhL2JlbmNoCiAgICBleHBvcnQgUEFUSD0vaG9tZS9pc3Vjb24vbG9jYWwvZ28vYmluOi9ob21lL2lzdWNvbi9nby9iaW46XCRQQVRICiAgICBnbyBnZXQgZ2l0aHViLmNvbS9jb25zdGFidWxhcnkvZ2IvLi4uCiAgICBnYiB2ZW5kb3IgcmVzdG9yZQogICAgbWFrZSIKCnN1ZG8gLXUgaXN1Y29uIGRhdGUgPiAvaG9tZS9pc3Vjb24vU0VUVVBfQ09NUExFVEVECgpzZXQgK2V4CgpleGl0IDAK"
},
"diagnosticsStorageAccountSku": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS"
]
},
"publicIpAddressType": {
"type": "string",
"defaultValue": "Dynamic",
"allowedValues": [
"Dynamic",
"Static"
]
},
"publicIpAddressSku": {
"type": "string",
"defaultValue": "Basic",
"allowedValues": [
"Basic",
"Standard"
]
},
"webServerCount": {
"type": "int",
"defaultValue": 2
}
},
"variables": {
"location": "[resourceGroup().location]",
"identifierWeb": "web",
"identifierDb": "db",
"identifierTarget": "target",
"identifierBench": "bench",
"virtualNetworkName": "[concat(resourceGroup().name, '-vnet')]",
"networkInterfaceName": "[concat(resourceGroup().name, '-nic')]",
"networkSecurityGroupName": "[concat(resourceGroup().name, '-nsg')]",
"diagnosticsStorageAccountName": "[concat('diag', uniqueString(resourceGroup().id))]",
"subnetName": "[concat(resourceGroup().name, '-subnet')]",
"publicIpAddressName": "[concat(resourceGroup().name, '-ip')]",
"vnetId": "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]",
"addressPrefix": "10.0.0.0/16",
"subnetSaffix": "0/24",
"subnetPrefixTarget": "10.0.0.",
"subnetPrefixBench": "10.0.1.",
"firstAddress": 4
},
"resources": [
{
"name": "[concat(variables('identifierWeb'), copyIndex())]",
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2016-04-30-preview",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces', concat(variables('networkInterfaceName'), '-', variables('identifierWeb'), copyIndex()))]",
"[resourceId('Microsoft.Storage/storageAccounts', variables('diagnosticsStorageAccountName'))]"
],
"properties": {
"osProfile": {
"computerName": "[concat(variables('identifierWeb'), copyIndex())]",
"adminUsername": "[parameters('adminUsername')]",
"linuxConfiguration": {
"disablePasswordAuthentication": "true",
"ssh": {
"publicKeys": [
{
"path": "[concat('/home/', parameters('adminUsername'), '/.ssh/authorized_keys')]",
"keyData": "[parameters('adminPublicKey')]"
}
]
}
},
"customData": "[parameters('customDataWeb')]"
},
"hardwareProfile": {
"vmSize": "[parameters('virtualMachineSize')]"
},
"storageProfile": {
"imageReference": {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "16.04-LTS",
"version": "latest"
},
"osDisk": {
"createOption": "fromImage",
"managedDisk": {
"storageAccountType": "Standard_LRS"
}
},
"dataDisks": []
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', concat(variables('networkInterfaceName'), '-', variables('identifierWeb'), copyIndex()))]"
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts', variables('diagnosticsStorageAccountName')), '2015-06-15').primaryEndpoints['blob']]"
}
}
},
"copy": {
"name": "vmCopy",
"count": "[parameters('webServerCount')]"
}
},
{
"name": "[variables('identifierDb')]",
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2016-04-30-preview",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces', concat(variables('networkInterfaceName'), '-', variables('identifierDb')))]",
"[resourceId('Microsoft.Storage/storageAccounts', variables('diagnosticsStorageAccountName'))]"
],
"properties": {
"osProfile": {
"computerName": "[variables('identifierDb')]",
"adminUsername": "[parameters('adminUsername')]",
"linuxConfiguration": {
"disablePasswordAuthentication": "true",
"ssh": {
"publicKeys": [
{
"path": "[concat('/home/', parameters('adminUsername'), '/.ssh/authorized_keys')]",
"keyData": "[parameters('adminPublicKey')]"
}
]
}
},
"customData": "[parameters('customDataDb')]"
},
"hardwareProfile": {
"vmSize": "[parameters('virtualMachineSizeDb')]"
},
"storageProfile": {
"imageReference": {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "16.04-LTS",
"version": "latest"
},
"osDisk": {
"createOption": "fromImage",
"managedDisk": {
"storageAccountType": "Standard_LRS"
}
},
"dataDisks": []
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', concat(variables('networkInterfaceName'), '-', variables('identifierDb')))]"
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts', variables('diagnosticsStorageAccountName')), '2015-06-15').primaryEndpoints['blob']]"
}
}
}
},
{
"name": "[variables('identifierBench')]",
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2016-04-30-preview",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces', concat(variables('networkInterfaceName'), '-', variables('identifierBench')))]",
"[resourceId('Microsoft.Storage/storageAccounts', variables('diagnosticsStorageAccountName'))]"
],
"properties": {
"osProfile": {
"computerName": "[variables('identifierBench')]",
"adminUsername": "[parameters('adminUsername')]",
"linuxConfiguration": {
"disablePasswordAuthentication": "true",
"ssh": {
"publicKeys": [
{
"path": "[concat('/home/', parameters('adminUsername'), '/.ssh/authorized_keys')]",
"keyData": "[parameters('adminPublicKey')]"
}
]
}
},
"customData": "[parameters('customDataBench')]"
},
"hardwareProfile": {
"vmSize": "[parameters('virtualMachineSize')]"
},
"storageProfile": {
"imageReference": {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "16.04-LTS",
"version": "latest"
},
"osDisk": {
"createOption": "fromImage",
"managedDisk": {
"storageAccountType": "Standard_LRS"
}
},
"dataDisks": []
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', concat(variables('networkInterfaceName'), '-', variables('identifierBench')))]"
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts', variables('diagnosticsStorageAccountName')), '2015-06-15').primaryEndpoints['blob']]"
}
}
}
},
{
"name": "[variables('diagnosticsStorageAccountName')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2017-06-01",
"location": "[variables('location')]",
"kind": "Storage",
"sku": {
"name": "[parameters('diagnosticsStorageAccountSku')]"
},
"properties": {}
},
{
"name": "[variables('virtualNetworkName')]",
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2016-12-01",
"location": "[variables('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[variables('addressPrefix')]"
]
},
"subnets": [
{
"name": "[concat(variables('subnetName'), '-', variables('identifierTarget'))]",
"properties": {
"addressPrefix": "[concat(variables('subnetPrefixTarget'), variables('subnetSaffix'))]"
}
},
{
"name": "[concat(variables('subnetName'), '-', variables('identifierBench'))]",
"properties": {
"addressPrefix": "[concat(variables('subnetPrefixBench'), variables('subnetSaffix'))]"
}
}
]
}
},
{
"name": "[concat(variables('networkInterfaceName'), '-', variables('identifierWeb'), copyIndex())]",
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2016-09-01",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]",
"[resourceId('Microsoft.Network/publicIpAddresses', concat(variables('publicIpAddressName'), '-', variables('identifierWeb'), copyIndex()))]",
"[resourceId('Microsoft.Network/networkSecurityGroups', concat(variables('networkSecurityGroupName'), '-', variables('identifierWeb'), copyIndex()))]"
],
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), concat(variables('subnetName'), '-', variables('identifierTarget')))]"
},
"privateIPAllocationMethod": "Static",
"privateIPAddress": "[concat(variables('subnetPrefixTarget'), copyIndex(variables('firstAddress')))]",
"publicIpAddress": {
"id": "[resourceId('Microsoft.Network/publicIpAddresses', concat(variables('publicIpAddressName'), '-', variables('identifierWeb'), copyIndex()))]"
}
}
}
],
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', concat(variables('networkSecurityGroupName'), '-', variables('identifierWeb'), copyIndex()))]"
}
},
"copy": {
"name": "nicCopy",
"count": "[parameters('webServerCount')]"
}
},
{
"name": "[concat(variables('networkInterfaceName'), '-', variables('identifierDb'))]",
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2016-09-01",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]",
"[resourceId('Microsoft.Network/networkSecurityGroups', concat(variables('networkSecurityGroupName'), '-', variables('identifierDb')))]"
],
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), concat(variables('subnetName'), '-', variables('identifierTarget')))]"
},
"privateIPAllocationMethod": "Static",
"privateIPAddress": "[concat(variables('subnetPrefixTarget'), add(variables('firstAddress'), parameters('webServerCount')))]"
}
}
],
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', concat(variables('networkSecurityGroupName'), '-', variables('identifierDb')))]"
}
}
},
{
"name": "[concat(variables('networkInterfaceName'), '-', variables('identifierBench'))]",
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2016-09-01",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]",
"[resourceId('Microsoft.Network/networkSecurityGroups', concat(variables('networkSecurityGroupName'), '-', variables('identifierBench')))]"
],
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), concat(variables('subnetName'), '-', variables('identifierBench')))]"
},
"privateIPAllocationMethod": "Dynamic",
"publicIpAddress": {
"id": "[resourceId('Microsoft.Network/publicIpAddresses', concat(variables('publicIpAddressName'), '-', variables('identifierBench')))]"
}
}
}
],
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', concat(variables('networkSecurityGroupName'), '-', variables('identifierBench')))]"
}
}
},
{
"name": "[concat(variables('publicIpAddressName'), '-', variables('identifierWeb'), copyIndex())]",
"type": "Microsoft.Network/publicIpAddresses",
"apiVersion": "2017-08-01",
"location": "[variables('location')]",
"properties": {
"publicIpAllocationMethod": "[parameters('publicIpAddressType')]"
},
"sku": {
"name": "[parameters('publicIpAddressSku')]"
},
"copy": {
"name": "publicIpCopy",
"count": "[parameters('webServerCount')]"
}
},
{
"name": "[concat(variables('publicIpAddressName'), '-', variables('identifierBench'))]",
"type": "Microsoft.Network/publicIpAddresses",
"apiVersion": "2017-08-01",
"location": "[variables('location')]",
"properties": {
"publicIpAllocationMethod": "[parameters('publicIpAddressType')]"
},
"sku": {
"name": "[parameters('publicIpAddressSku')]"
}
},
{
"name": "[concat(variables('networkSecurityGroupName'), '-', variables('identifierWeb'), copyIndex())]",
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2017-06-01",
"location": "[variables('location')]",
"properties": {
"securityRules": [
{
"name": "default-allow-ssh",
"properties": {
"priority": 1000,
"protocol": "TCP",
"access": "Allow",
"direction": "Inbound",
"sourceAddressPrefix": "*",
"sourcePortRange": "*",
"destinationAddressPrefix": "*",
"destinationPortRange": "22"
}
},
{
"name": "default-allow-web",
"properties": {
"priority": 1100,
"protocol": "TCP",
"access": "Allow",
"direction": "Inbound",
"sourceAddressPrefix": "*",
"sourcePortRange": "*",
"destinationAddressPrefix": "*",
"destinationPortRange": "80"
}
}
]
},
"copy": {
"name": "nsgCopy",
"count": "[parameters('webServerCount')]"
}
},
{
"name": "[concat(variables('networkSecurityGroupName'), '-', variables('identifierDb'))]",
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2017-06-01",
"location": "[variables('location')]",
"properties": {
"securityRules": [
{
"name": "default-allow-ssh",
"properties": {
"priority": 1000,
"protocol": "TCP",
"access": "Allow",
"direction": "Inbound",
"sourceAddressPrefix": "VirtualNetwork",
"sourcePortRange": "*",
"destinationAddressPrefix": "VirtualNetwork",
"destinationPortRange": "22"
}
},
{
"name": "default-allow-mysql",
"properties": {
"priority": 1100,
"protocol": "TCP",
"access": "Allow",
"direction": "Inbound",
"sourceAddressPrefix": "VirtualNetwork",
"sourcePortRange": "*",
"destinationAddressPrefix": "VirtualNetwork",
"destinationPortRange": "3306"
}
}
]
}
},
{
"name": "[concat(variables('networkSecurityGroupName'), '-', variables('identifierBench'))]",
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2017-06-01",
"location": "[variables('location')]",
"properties": {
"securityRules": [
{
"name": "default-allow-ssh",
"properties": {
"priority": 1000,
"protocol": "TCP",
"access": "Allow",
"direction": "Inbound",
"sourceAddressPrefix": "*",
"sourcePortRange": "*",
"destinationAddressPrefix": "*",
"destinationPortRange": "22"
}
}
]
}
}
],
"outputs": {
"adminUsername": {
"type": "string",
"value": "[parameters('adminUsername')]"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment