generator_files/templates/arm.vhd.json.erb in wombat-cli-0.6.1 vs generator_files/templates/arm.vhd.json.erb in wombat-cli-0.6.2

- old
+ new

@@ -1,631 +1,631 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.1", - "parameters": { - - "demoName": { - "metadata": { - "description": "Name of the customer or organization" - }, - "type": "string", - "defaultValue": "<%= @demo %>" - }, - - "storageAccountName": { - "type": "string", - "metadata": { - "description": "Name of the storage account that should be used to store the machine disks" - }, - "defaultValue": "<%= @storage_account %>" - }, - - "adminPassword": { - "type": "string", - "metadata": { - "description": "Password associated with the specified user" - }, - "defaultValue": "<%= @password %>" - }, - - "shortUniqueLength": { - "type": "int", - "metadata": { - "description": "Number of characters to be take from the unique string to make a short unique string" - }, - "defaultValue": 4 - } - - }, - "variables": { - - "unique": "[uniqueString(subscription().subscriptionId, resourceGroup().id, deployment().name)]", - "uniqueShort": "[substring(variables('unique'), 0, parameters('shortUniqueLength'))]", - - "location": "[resourceGroup().location]", - - "sa": { - "name": "[parameters('storageAccountName')]", - "container": "[concat('vhds-', variables('unique'))]", - "type": "Standard_LRS" - }, - - "network": { - "virtual": { - "name": "ChefAutomate-VNET", - "addressPrefix": "172.31.54.0/24" - }, - "subnet": { - "name": "ChefAutomate-Subnet", - "addressPrefix": "172.31.54.0/24" - }, - "ipAddresses": { - "chef": { - "internal": { - "address": "172.31.54.10", - "allocationMethod": "static" - } - }, - "automate": { - "internal": { - "address": "172.31.54.11", - "allocationMethod": "static" - } - }, - "compliance": { - "internal": { - "address": "172.31.54.12", - "allocationMethod": "static" - } - }, - "workstation": { - "internal": { - "addressPrefix": "172.31.54.", - "allocationMethod": "static" - }, - "external": { - "domainNameLabel": "[concat('ws-', variables('uniqueShort'))]", - "allocationMethod": "dynamic" - } - }, - "buildnode": { - "internal": { - "addressPrefix": "172.31.54.", - "allocationMethod": "static" - } - }, - "infranode": { - "internal": { - "addressPrefix": "172.31.54.", - "allocationMethod": "static" - } - } - } - }, - - "customData": "#cloud-config\nmanage_etc_hosts: false\n\npackage_update: false" - }, - "resources": [ - - { - "type": "Microsoft.Network/virtualNetworks", - "name": "[variables('network').virtual.name]", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "properties": { - "addressSpace": { - "addressPrefixes": [ - "[variables('network').virtual.addressPrefix]" - ] - }, - "subnets": [ - { - "name": "[variables('network').subnet.name]", - "properties": { - "addressPrefix": "[variables('network').subnet.addressPrefix]" - } - } - ] - } - }, - - - -<% 1.upto(@workstations) do |i| -%> - - { - "type": "Microsoft.Network/publicIPAddresses", - "name": "Workstation-<%= i.to_s %>-PublicIPAddress", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "properties": { - "publicIPAllocationMethod": "[variables('network').ipAddresses.workstation.external.allocationMethod]", - "dnsSettings": { - "domainNameLabel": "[concat(variables('network').ipAddresses.workstation.external.domainNameLabel, '-', '<%= i.to_s %>')]" - } - } - }, - - { - "type": "Microsoft.Network/networkInterfaces", - "name": "Workstation-<%= i.to_s %>-NIC", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]", - "Microsoft.Network/publicIPAddresses/Workstation-<%= i.to_s %>-PublicIPAddress" - ], - "properties": { - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "privateIPAllocationMethod": "[variables('network').ipAddresses.workstation.internal.allocationMethod]", - "privateIPAddress": "[concat(variables('network').ipAddresses.workstation.internal.addressPrefix, '<%= 200 + i %>')]", - "publicIPAddress": { - "id": "[resourceId('Microsoft.Network/publicIPAddresses', 'Workstation-<%= i.to_s %>-PublicIPAddress')]" - }, - "subnet": { - "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" - } - } - } - ] - } - }, - - { - "type": "Microsoft.Compute/virtualMachines", - "name": "Workstation-<%= i.to_s %>-VM", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "Microsoft.Network/networkInterfaces/Workstation-<%= i.to_s %>-NIC" - ], - "tags": { - "name": "[concat(parameters('demoName'), ' Workstation <%= i.to_s %>')]" - }, - "properties": { - "hardwareProfile": { - "vmSize": "Standard_DS2_v2" - }, - "osProfile": { - "computerName": "[concat(variables('network').ipAddresses.workstation.external.domainNameLabel, '-', '<%= i.to_s %>')]", - "adminUsername": "chef", - "adminPassword": "[parameters('adminPassword')]" - }, - "storageProfile": { - "osDisk": { - "name": "workstation-<%= i.to_s %>-osdisk", - "osType": "windows", - "createOption": "FromImage", - "caching": "ReadWrite", - "image": { - "uri": "<%= @workstation_ami[i] %>" - }, - "vhd": { - "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/workstation-<%= i.to_s %>-osdisk.vhd')]" - } - } - }, - "networkProfile": { - "networkInterfaces": [ - { - "id": "[resourceId('Microsoft.Network/networkInterfaces', 'Workstation-<%= i.to_s %>-NIC')]" - } - ] - } - } - }, - -<% end %> - -<% 1.upto(@build_nodes) do |i| -%> - - { - "type": "Microsoft.Network/networkInterfaces", - "name": "BuildNode-<%= i.to_s %>-NIC", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]" - ], - "properties": { - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "privateIPAllocationMethod": "[variables('network').ipAddresses.buildnode.internal.allocationMethod]", - "privateIPAddress": "[concat(variables('network').ipAddresses.buildnode.internal.addressPrefix, '<%= 50 + i %>')]", - "subnet": { - "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" - } - } - } - ] - } - }, - - { - "type": "Microsoft.Compute/virtualMachines", - "name": "BuildNode-<%= i.to_s %>-VM", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "Microsoft.Network/networkInterfaces/BuildNode-<%= i.to_s %>-NIC" - ], - "tags": { - "name": "[concat(parameters('demoName'), ' Build Node <%= i.to_s %>')]" - }, - "properties": { - "hardwareProfile": { - "vmSize": "Standard_DS2_v2" - }, - "osProfile": { - "computerName": "build-node-<%= i.to_s %>", - "adminUsername": "ubuntu", - "adminPassword": "[parameters('adminPassword')]", - "linuxConfiguration": { - "disablePasswordAuthentication": "true", - "ssh": { - "publicKeys": [ - { - "path": "/home/ubuntu/.ssh/authorized_keys", - "keyData": "<%= @public_key -%>" - } - ] - } - } - }, - "storageProfile": { - "osDisk": { - "name": "buildnode-<%= i.to_s %>-osdisk", - "osType": "linux", - "createOption": "FromImage", - "caching": "ReadWrite", - "image": { - "uri": "<%= @build_node_ami[i] %>" - }, - "vhd": { - "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/buildnode-<%= i.to_s %>-osdisk.vhd')]" - } - } - }, - "networkProfile": { - "networkInterfaces": [ - { - "id": "[resourceId('Microsoft.Network/networkInterfaces', 'BuildNode-<%= i.to_s %>-NIC')]" - } - ] - } - } - }, - -<% end %> - -<% @infra.sort.each do |name, _uri| -%> - - { - "type": "Microsoft.Network/networkInterfaces", - "name": "InfraNode-<%= name %>-NIC", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]" - ], - "properties": { - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "privateIPAllocationMethod": "[variables('network').ipAddresses.infranode.internal.allocationMethod]", - "privateIPAddress": "[concat(variables('network').ipAddresses.infranode.internal.addressPrefix, '<%= 101 + @infra.keys.find_index(name) %>')]", - "subnet": { - "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" - } - } - } - ] - } - }, - - { - "type": "Microsoft.Compute/virtualMachines", - "name": "InfraNode-<%= name %>-VM", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "Microsoft.Network/networkInterfaces/InfraNode-<%= name %>-NIC" - ], - "tags": { - "name": "[concat(parameters('demoName'), ' Infra Node - <%= name %>')]" - }, - "properties": { - "hardwareProfile": { - "vmSize": "Standard_DS2_v2" - }, - "osProfile": { - "computerName": "<%= name %>", - "adminUsername": "ubuntu", - "adminPassword": "[parameters('adminPassword')]", - "linuxConfiguration": { - "disablePasswordAuthentication": "true", - "ssh": { - "publicKeys": [ - { - "path": "/home/ubuntu/.ssh/authorized_keys", - "keyData": "<%= @public_key -%>" - } - ] - } - } - }, - "storageProfile": { - "osDisk": { - "name": "infranode-<%= name %>-osdisk", - "osType": "linux", - "createOption": "FromImage", - "caching": "ReadWrite", - "image": { - "uri": "<%= _uri %>" - }, - "vhd": { - "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/infranode-<%= name %>-osdisk.vhd')]" - } - } - }, - "networkProfile": { - "networkInterfaces": [ - { - "id": "[resourceId('Microsoft.Network/networkInterfaces', 'InfraNode-<%= name %>-NIC')]" - } - ] - } - } - }, - -<% end %> - - { - "type": "Microsoft.Network/networkInterfaces", - "name": "ChefServer-NIC", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]" - ], - "properties": { - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "privateIPAllocationMethod": "[variables('network').ipAddresses.chef.internal.allocationMethod]", - "privateIPAddress": "[variables('network').ipAddresses.chef.internal.address]", - "subnet": { - "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" - } - } - } - ] - } - }, - - { - "type": "Microsoft.Compute/virtualMachines", - "name": "ChefServer-VM", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "Microsoft.Network/networkInterfaces/ChefServer-NIC" - ], - "tags": { - "name": "[concat(parameters('demoName'), ' Chef Server')]" - }, - "properties": { - "hardwareProfile": { - "vmSize": "Standard_F4s" - }, - "osProfile": { - "computerName": "[concat('chef-', variables('uniqueShort'))]", - "customData": "[base64(concat(variables('customData'), '\n\nruncmd:\n - hostnamectl set-hostname chef\n - chef-server-ctl reconfigure'))]", - "adminUsername": "ubuntu", - "adminPassword": "[parameters('adminPassword')]", - "linuxConfiguration": { - "disablePasswordAuthentication": "true", - "ssh": { - "publicKeys": [ - { - "path": "/home/ubuntu/.ssh/authorized_keys", - "keyData": "<%= @public_key -%>" - } - ] - } - } - }, - "storageProfile": { - "osDisk": { - "name": "chefserver-osdisk", - "osType": "linux", - "createOption": "FromImage", - "caching": "ReadWrite", - "image": { - "uri": "<%= @chef_server_uri %>" - }, - "vhd": { - "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/chefserver-osdisk.vhd')]" - } - } - }, - "networkProfile": { - "networkInterfaces": [ - { - "id": "[resourceId('Microsoft.Network/networkInterfaces', 'ChefServer-NIC')]" - } - ] - } - } - }, - - { - "type": "Microsoft.Network/networkInterfaces", - "name": "AutomateServer-NIC", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]" - ], - "properties": { - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "privateIPAllocationMethod": "[variables('network').ipAddresses.automate.internal.allocationMethod]", - "privateIPAddress": "[variables('network').ipAddresses.automate.internal.address]", - "subnet": { - "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" - } - } - } - ] - } - }, - - { - "type": "Microsoft.Compute/virtualMachines", - "name": "AutomateServer-VM", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "Microsoft.Network/networkInterfaces/AutomateServer-NIC" - ], - "tags": { - "name": "[concat(parameters('demoName'), ' Automate Server')]" - }, - "properties": { - "hardwareProfile": { - "vmSize": "Standard_F4s" - }, - "osProfile": { - "computerName": "[concat('chef-', variables('uniqueShort'))]", - "customData": "[base64(concat(variables('customData'), '\n\nruncmd:\n - hostnamectl set-hostname automate\n - chef-server-ctl reconfigure'))]", - "adminUsername": "ubuntu", - "adminPassword": "[parameters('adminPassword')]", - "linuxConfiguration": { - "disablePasswordAuthentication": "true", - "ssh": { - "publicKeys": [ - { - "path": "/home/ubuntu/.ssh/authorized_keys", - "keyData": "<%= @public_key -%>" - } - ] - } - } - }, - "storageProfile": { - "osDisk": { - "name": "automateserver-osdisk", - "osType": "linux", - "createOption": "FromImage", - "caching": "ReadWrite", - "image": { - "uri": "<%= @automate_uri %>" - }, - "vhd": { - "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/automate-osdisk.vhd')]" - } - } - }, - "networkProfile": { - "networkInterfaces": [ - { - "id": "[resourceId('Microsoft.Network/networkInterfaces', 'AutomateServer-NIC')]" - } - ] - } - } - }, - - { - "type": "Microsoft.Network/networkInterfaces", - "name": "ComplianceServer-NIC", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]" - ], - "properties": { - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "privateIPAllocationMethod": "[variables('network').ipAddresses.compliance.internal.allocationMethod]", - "privateIPAddress": "[variables('network').ipAddresses.compliance.internal.address]", - "subnet": { - "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" - } - } - } - ] - } - }, - - { - "type": "Microsoft.Compute/virtualMachines", - "name": "ComplianceServer-VM", - "apiVersion": "2015-06-15", - "location": "[variables('location')]", - "dependsOn": [ - "Microsoft.Network/networkInterfaces/ComplianceServer-NIC" - ], - "tags": { - "name": "[concat(parameters('demoName'), ' Compliance Server')]" - }, - "properties": { - "hardwareProfile": { - "vmSize": "Standard_F4s" - }, - "osProfile": { - "computerName": "[concat('chef-', variables('uniqueShort'))]", - "customData": "[base64(concat(variables('customData'), '\n\nruncmd:\n - hostnamectl set-hostname compliance\n - compliance-ctl reconfigure'))]", - "adminUsername": "ubuntu", - "adminPassword": "[parameters('adminPassword')]", - "linuxConfiguration": { - "disablePasswordAuthentication": "true", - "ssh": { - "publicKeys": [ - { - "path": "/home/ubuntu/.ssh/authorized_keys", - "keyData": "<%= @public_key -%>" - } - ] - } - } - }, - "storageProfile": { - "osDisk": { - "name": "complianceserver-osdisk", - "osType": "linux", - "createOption": "FromImage", - "caching": "ReadWrite", - "image": { - "uri": "<%= @compliance_uri %>" - }, - "vhd": { - "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/compliance-osdisk.vhd')]" - } - } - }, - "networkProfile": { - "networkInterfaces": [ - { - "id": "[resourceId('Microsoft.Network/networkInterfaces', 'ComplianceServer-NIC')]" - } - ] - } - } - } - ], - "outputs": { - - } +{ + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.1", + "parameters": { + + "demoName": { + "metadata": { + "description": "Name of the customer or organization" + }, + "type": "string", + "defaultValue": "<%= @demo %>" + }, + + "storageAccountName": { + "type": "string", + "metadata": { + "description": "Name of the storage account that should be used to store the machine disks" + }, + "defaultValue": "<%= @storage_account %>" + }, + + "adminPassword": { + "type": "string", + "metadata": { + "description": "Password associated with the specified user" + }, + "defaultValue": "<%= @password %>" + }, + + "shortUniqueLength": { + "type": "int", + "metadata": { + "description": "Number of characters to be take from the unique string to make a short unique string" + }, + "defaultValue": 4 + } + + }, + "variables": { + + "unique": "[uniqueString(subscription().subscriptionId, resourceGroup().id, deployment().name)]", + "uniqueShort": "[substring(variables('unique'), 0, parameters('shortUniqueLength'))]", + + "location": "[resourceGroup().location]", + + "sa": { + "name": "[parameters('storageAccountName')]", + "container": "[concat('vhds-', variables('unique'))]", + "type": "Standard_LRS" + }, + + "network": { + "virtual": { + "name": "ChefAutomate-VNET", + "addressPrefix": "172.31.54.0/24" + }, + "subnet": { + "name": "ChefAutomate-Subnet", + "addressPrefix": "172.31.54.0/24" + }, + "ipAddresses": { + "chef": { + "internal": { + "address": "172.31.54.10", + "allocationMethod": "static" + } + }, + "automate": { + "internal": { + "address": "172.31.54.11", + "allocationMethod": "static" + } + }, + "compliance": { + "internal": { + "address": "172.31.54.12", + "allocationMethod": "static" + } + }, + "workstation": { + "internal": { + "addressPrefix": "172.31.54.", + "allocationMethod": "static" + }, + "external": { + "domainNameLabel": "[concat('ws-', variables('uniqueShort'))]", + "allocationMethod": "dynamic" + } + }, + "buildnode": { + "internal": { + "addressPrefix": "172.31.54.", + "allocationMethod": "static" + } + }, + "infranode": { + "internal": { + "addressPrefix": "172.31.54.", + "allocationMethod": "static" + } + } + } + }, + + "customData": "#cloud-config\nmanage_etc_hosts: false\n\npackage_update: false" + }, + "resources": [ + + { + "type": "Microsoft.Network/virtualNetworks", + "name": "[variables('network').virtual.name]", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "properties": { + "addressSpace": { + "addressPrefixes": [ + "[variables('network').virtual.addressPrefix]" + ] + }, + "subnets": [ + { + "name": "[variables('network').subnet.name]", + "properties": { + "addressPrefix": "[variables('network').subnet.addressPrefix]" + } + } + ] + } + }, + + + +<% 1.upto(@workstations) do |i| -%> + + { + "type": "Microsoft.Network/publicIPAddresses", + "name": "Workstation-<%= i.to_s %>-PublicIPAddress", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "properties": { + "publicIPAllocationMethod": "[variables('network').ipAddresses.workstation.external.allocationMethod]", + "dnsSettings": { + "domainNameLabel": "[concat(variables('network').ipAddresses.workstation.external.domainNameLabel, '-', '<%= i.to_s %>')]" + } + } + }, + + { + "type": "Microsoft.Network/networkInterfaces", + "name": "Workstation-<%= i.to_s %>-NIC", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]", + "Microsoft.Network/publicIPAddresses/Workstation-<%= i.to_s %>-PublicIPAddress" + ], + "properties": { + "ipConfigurations": [ + { + "name": "ipconfig1", + "properties": { + "privateIPAllocationMethod": "[variables('network').ipAddresses.workstation.internal.allocationMethod]", + "privateIPAddress": "[concat(variables('network').ipAddresses.workstation.internal.addressPrefix, '<%= 200 + i %>')]", + "publicIPAddress": { + "id": "[resourceId('Microsoft.Network/publicIPAddresses', 'Workstation-<%= i.to_s %>-PublicIPAddress')]" + }, + "subnet": { + "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" + } + } + } + ] + } + }, + + { + "type": "Microsoft.Compute/virtualMachines", + "name": "Workstation-<%= i.to_s %>-VM", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "Microsoft.Network/networkInterfaces/Workstation-<%= i.to_s %>-NIC" + ], + "tags": { + "name": "[concat(parameters('demoName'), ' Workstation <%= i.to_s %>')]" + }, + "properties": { + "hardwareProfile": { + "vmSize": "Standard_DS2_v2" + }, + "osProfile": { + "computerName": "[concat(variables('network').ipAddresses.workstation.external.domainNameLabel, '-', '<%= i.to_s %>')]", + "adminUsername": "chef", + "adminPassword": "[parameters('adminPassword')]" + }, + "storageProfile": { + "osDisk": { + "name": "workstation-<%= i.to_s %>-osdisk", + "osType": "windows", + "createOption": "FromImage", + "caching": "ReadWrite", + "image": { + "uri": "<%= @workstation_ami[i] %>" + }, + "vhd": { + "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/workstation-<%= i.to_s %>-osdisk.vhd')]" + } + } + }, + "networkProfile": { + "networkInterfaces": [ + { + "id": "[resourceId('Microsoft.Network/networkInterfaces', 'Workstation-<%= i.to_s %>-NIC')]" + } + ] + } + } + }, + +<% end %> + +<% 1.upto(@build_nodes) do |i| -%> + + { + "type": "Microsoft.Network/networkInterfaces", + "name": "BuildNode-<%= i.to_s %>-NIC", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]" + ], + "properties": { + "ipConfigurations": [ + { + "name": "ipconfig1", + "properties": { + "privateIPAllocationMethod": "[variables('network').ipAddresses.buildnode.internal.allocationMethod]", + "privateIPAddress": "[concat(variables('network').ipAddresses.buildnode.internal.addressPrefix, '<%= 50 + i %>')]", + "subnet": { + "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" + } + } + } + ] + } + }, + + { + "type": "Microsoft.Compute/virtualMachines", + "name": "BuildNode-<%= i.to_s %>-VM", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "Microsoft.Network/networkInterfaces/BuildNode-<%= i.to_s %>-NIC" + ], + "tags": { + "name": "[concat(parameters('demoName'), ' Build Node <%= i.to_s %>')]" + }, + "properties": { + "hardwareProfile": { + "vmSize": "Standard_DS2_v2" + }, + "osProfile": { + "computerName": "build-node-<%= i.to_s %>", + "adminUsername": "ubuntu", + "adminPassword": "[parameters('adminPassword')]", + "linuxConfiguration": { + "disablePasswordAuthentication": "true", + "ssh": { + "publicKeys": [ + { + "path": "/home/ubuntu/.ssh/authorized_keys", + "keyData": "<%= @public_key -%>" + } + ] + } + } + }, + "storageProfile": { + "osDisk": { + "name": "buildnode-<%= i.to_s %>-osdisk", + "osType": "linux", + "createOption": "FromImage", + "caching": "ReadWrite", + "image": { + "uri": "<%= @build_node_ami[i] %>" + }, + "vhd": { + "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/buildnode-<%= i.to_s %>-osdisk.vhd')]" + } + } + }, + "networkProfile": { + "networkInterfaces": [ + { + "id": "[resourceId('Microsoft.Network/networkInterfaces', 'BuildNode-<%= i.to_s %>-NIC')]" + } + ] + } + } + }, + +<% end %> + +<% @infra.sort.each do |name, _uri| -%> + + { + "type": "Microsoft.Network/networkInterfaces", + "name": "InfraNode-<%= name %>-NIC", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]" + ], + "properties": { + "ipConfigurations": [ + { + "name": "ipconfig1", + "properties": { + "privateIPAllocationMethod": "[variables('network').ipAddresses.infranode.internal.allocationMethod]", + "privateIPAddress": "[concat(variables('network').ipAddresses.infranode.internal.addressPrefix, '<%= 101 + @infra.keys.find_index(name) %>')]", + "subnet": { + "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" + } + } + } + ] + } + }, + + { + "type": "Microsoft.Compute/virtualMachines", + "name": "InfraNode-<%= name %>-VM", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "Microsoft.Network/networkInterfaces/InfraNode-<%= name %>-NIC" + ], + "tags": { + "name": "[concat(parameters('demoName'), ' Infra Node - <%= name %>')]" + }, + "properties": { + "hardwareProfile": { + "vmSize": "Standard_DS2_v2" + }, + "osProfile": { + "computerName": "<%= name %>", + "adminUsername": "ubuntu", + "adminPassword": "[parameters('adminPassword')]", + "linuxConfiguration": { + "disablePasswordAuthentication": "true", + "ssh": { + "publicKeys": [ + { + "path": "/home/ubuntu/.ssh/authorized_keys", + "keyData": "<%= @public_key -%>" + } + ] + } + } + }, + "storageProfile": { + "osDisk": { + "name": "infranode-<%= name %>-osdisk", + "osType": "linux", + "createOption": "FromImage", + "caching": "ReadWrite", + "image": { + "uri": "<%= _uri %>" + }, + "vhd": { + "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/infranode-<%= name %>-osdisk.vhd')]" + } + } + }, + "networkProfile": { + "networkInterfaces": [ + { + "id": "[resourceId('Microsoft.Network/networkInterfaces', 'InfraNode-<%= name %>-NIC')]" + } + ] + } + } + }, + +<% end %> + + { + "type": "Microsoft.Network/networkInterfaces", + "name": "ChefServer-NIC", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]" + ], + "properties": { + "ipConfigurations": [ + { + "name": "ipconfig1", + "properties": { + "privateIPAllocationMethod": "[variables('network').ipAddresses.chef.internal.allocationMethod]", + "privateIPAddress": "[variables('network').ipAddresses.chef.internal.address]", + "subnet": { + "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" + } + } + } + ] + } + }, + + { + "type": "Microsoft.Compute/virtualMachines", + "name": "ChefServer-VM", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "Microsoft.Network/networkInterfaces/ChefServer-NIC" + ], + "tags": { + "name": "[concat(parameters('demoName'), ' Chef Server')]" + }, + "properties": { + "hardwareProfile": { + "vmSize": "Standard_F4s" + }, + "osProfile": { + "computerName": "[concat('chef-', variables('uniqueShort'))]", + "customData": "[base64(concat(variables('customData'), '\n\nruncmd:\n - hostnamectl set-hostname chef\n - chef-server-ctl reconfigure'))]", + "adminUsername": "ubuntu", + "adminPassword": "[parameters('adminPassword')]", + "linuxConfiguration": { + "disablePasswordAuthentication": "true", + "ssh": { + "publicKeys": [ + { + "path": "/home/ubuntu/.ssh/authorized_keys", + "keyData": "<%= @public_key -%>" + } + ] + } + } + }, + "storageProfile": { + "osDisk": { + "name": "chefserver-osdisk", + "osType": "linux", + "createOption": "FromImage", + "caching": "ReadWrite", + "image": { + "uri": "<%= @chef_server_uri %>" + }, + "vhd": { + "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/chefserver-osdisk.vhd')]" + } + } + }, + "networkProfile": { + "networkInterfaces": [ + { + "id": "[resourceId('Microsoft.Network/networkInterfaces', 'ChefServer-NIC')]" + } + ] + } + } + }, + + { + "type": "Microsoft.Network/networkInterfaces", + "name": "AutomateServer-NIC", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]" + ], + "properties": { + "ipConfigurations": [ + { + "name": "ipconfig1", + "properties": { + "privateIPAllocationMethod": "[variables('network').ipAddresses.automate.internal.allocationMethod]", + "privateIPAddress": "[variables('network').ipAddresses.automate.internal.address]", + "subnet": { + "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" + } + } + } + ] + } + }, + + { + "type": "Microsoft.Compute/virtualMachines", + "name": "AutomateServer-VM", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "Microsoft.Network/networkInterfaces/AutomateServer-NIC" + ], + "tags": { + "name": "[concat(parameters('demoName'), ' Automate Server')]" + }, + "properties": { + "hardwareProfile": { + "vmSize": "Standard_F4s" + }, + "osProfile": { + "computerName": "[concat('chef-', variables('uniqueShort'))]", + "customData": "[base64(concat(variables('customData'), '\n\nruncmd:\n - hostnamectl set-hostname automate\n - chef-server-ctl reconfigure'))]", + "adminUsername": "ubuntu", + "adminPassword": "[parameters('adminPassword')]", + "linuxConfiguration": { + "disablePasswordAuthentication": "true", + "ssh": { + "publicKeys": [ + { + "path": "/home/ubuntu/.ssh/authorized_keys", + "keyData": "<%= @public_key -%>" + } + ] + } + } + }, + "storageProfile": { + "osDisk": { + "name": "automateserver-osdisk", + "osType": "linux", + "createOption": "FromImage", + "caching": "ReadWrite", + "image": { + "uri": "<%= @automate_uri %>" + }, + "vhd": { + "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/automate-osdisk.vhd')]" + } + } + }, + "networkProfile": { + "networkInterfaces": [ + { + "id": "[resourceId('Microsoft.Network/networkInterfaces', 'AutomateServer-NIC')]" + } + ] + } + } + }, + + { + "type": "Microsoft.Network/networkInterfaces", + "name": "ComplianceServer-NIC", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "[concat('Microsoft.Network/virtualNetworks/', variables('network').virtual.name)]" + ], + "properties": { + "ipConfigurations": [ + { + "name": "ipconfig1", + "properties": { + "privateIPAllocationMethod": "[variables('network').ipAddresses.compliance.internal.allocationMethod]", + "privateIPAddress": "[variables('network').ipAddresses.compliance.internal.address]", + "subnet": { + "id": "[concat(resourceId('Microsoft.Network/virtualNetworks', variables('network').virtual.name), '/subnets/', variables('network').subnet.name)]" + } + } + } + ] + } + }, + + { + "type": "Microsoft.Compute/virtualMachines", + "name": "ComplianceServer-VM", + "apiVersion": "2015-06-15", + "location": "[variables('location')]", + "dependsOn": [ + "Microsoft.Network/networkInterfaces/ComplianceServer-NIC" + ], + "tags": { + "name": "[concat(parameters('demoName'), ' Compliance Server')]" + }, + "properties": { + "hardwareProfile": { + "vmSize": "Standard_F4s" + }, + "osProfile": { + "computerName": "[concat('chef-', variables('uniqueShort'))]", + "customData": "[base64(concat(variables('customData'), '\n\nruncmd:\n - hostnamectl set-hostname compliance\n - compliance-ctl reconfigure'))]", + "adminUsername": "ubuntu", + "adminPassword": "[parameters('adminPassword')]", + "linuxConfiguration": { + "disablePasswordAuthentication": "true", + "ssh": { + "publicKeys": [ + { + "path": "/home/ubuntu/.ssh/authorized_keys", + "keyData": "<%= @public_key -%>" + } + ] + } + } + }, + "storageProfile": { + "osDisk": { + "name": "complianceserver-osdisk", + "osType": "linux", + "createOption": "FromImage", + "caching": "ReadWrite", + "image": { + "uri": "<%= @compliance_uri %>" + }, + "vhd": { + "uri": "[concat('https://', variables('sa').name, '.blob.core.windows.net/', variables('sa').container, '/compliance-osdisk.vhd')]" + } + } + }, + "networkProfile": { + "networkInterfaces": [ + { + "id": "[resourceId('Microsoft.Network/networkInterfaces', 'ComplianceServer-NIC')]" + } + ] + } + } + } + ], + "outputs": { + + } } \ No newline at end of file