frameworkResources/Scripts/AddServer.json
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "resource_group_name": { "type": "String" }, "publisher_name": { "type": "String" }, "offer_name": { "type": "String" }, "sku_name": { "type": "String" }, "version_name": { "type": "String" }, "location": { "type": "String" }, "vm_names": { "type": "array" }, "os_name": { "type": "String" }, "storage_account_type": { "type": "String" }, "zone_name": { "type": "String" }, "vm_size": { "type": "String" }, "userName": { "type": "String" }, "password": { "type": "String" }, "create_public_ip": { "type": "bool" }, "image_version": { "type": "string" }, "custom_data": { "type": "String" }, "use_ncache_image": { "type": "bool", "defaultValue": false } }, "variables": { "vnetName": "[concat('NC-VNET-',parameters('resource_group_name'))]", "subnetName": "[concat('NC-SUBNET-', parameters('resource_group_name'))]", "securitygroupName": "[concat('NC-SG-', parameters('resource_group_name'))]", "publicIpName": "[concat('NC-PUBLIC_IP-',parameters('resource_group_name'))]", "networkInterfaceName": "[concat('NC-NIC-', parameters('resource_group_name'))]" }, "resources": [ { "condition": "[parameters('create_public_ip')]", "type": "Microsoft.Network/publicIPAddresses", "apiVersion": "2024-07-01", "name": "[concat(variables('publicIpName'),'-',parameters('vm_names')[copyIndex()])]", "location": "[parameters('location')]", "copy": { "name": "publicIpLoop", "count": "[length(parameters('vm_names'))]" }, "zones": ["[parameters('zone_name')]"], "sku": { "Name": "Standard" }, "properties": { "publicIPAllocationMethod": "Static" } }, { "type": "Microsoft.Network/networkInterfaces", "condition": "[parameters('create_public_ip')]", "apiVersion": "2024-07-01", "dependsOn": [ "[resourceId('Microsoft.Network/publicIPAddresses',concat(variables('publicIpName'),'-',parameters('vm_names')[copyIndex()]))]" ], "name": "[concat(variables('networkInterfaceName'),'-',parameters('vm_names')[copyIndex()])]", "copy": { "name": "nicLoop", "count": "[length(parameters('vm_names'))]" }, "location": "[parameters('location')]", "properties": { "enableAcceleratedNetworking": "false", "networkSecurityGroup": { "id": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('securitygroupName'))]" }, "ipConfigurations": [ { "name": "ipconfig1", "properties": { "subnet": { "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetName'),variables('subnetName'))]" }, "publicIPAddress": { "id": "[resourceId('Microsoft.Network/publicIPAddresses', concat(variables('publicIpName'), '-', parameters('vm_names')[copyIndex()]))]" } } } ] } }, { "condition": "[not(parameters('create_public_ip'))]", "type": "Microsoft.Network/networkInterfaces", "apiVersion": "2024-07-01", "name": "[concat(variables('networkInterfaceName'),'-',parameters('vm_names')[copyIndex()])]", "copy": { "name": "nicLoop", "count": "[length(parameters('vm_names'))]" }, "location": "[parameters('location')]", "properties": { "enableAcceleratedNetworking": "false", "networkSecurityGroup": { "id": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('securitygroupName'))]" }, "ipConfigurations": [ { "name": "ipconfig1", "properties": { "subnet": { "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnetName'),variables('subnetName'))]" } } } ] } }, { "condition": "[and(not(parameters('create_public_ip')),not(parameters('use_ncache_image')))]", "type": "Microsoft.Compute/virtualMachines", "apiVersion": "2024-07-01", "name": "[parameters('vm_names')[copyIndex()]]", "zones": ["[parameters('zone_name')]"], "dependsOn": [ "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('networkInterfaceName'),'-',parameters('vm_names')[copyIndex()]))]" ], "location": "[parameters('location')]", "copy": { "name": "vmLoop", "count": "[length(parameters('vm_names'))]" }, "tags": { "Caches": "demoCache", "ServerType": "NCache", "InstallMode": "server" }, "properties": { "osProfile": { "computerName": "[parameters('vm_names')[copyIndex()]]", "adminUsername": "[parameters('userName')]", "adminPassword": "[parameters('password')]" }, "hardwareProfile": { "vmSize": "[parameters('vm_size')]" }, "storageProfile": { "imageReference": { "publisher": "[parameters('publisher_name')]", "offer": "[parameters('offer_name')]", "sku": "[parameters('sku_name')]", "version": "[parameters('image_version')]" }, "osDisk": { "createOption": "FromImage", "osType": "[parameters('os_name')]", "managedDisk": { "storageAccountType": "[parameters('storage_account_type')]" } } }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('networkInterfaceName'),'-',parameters('vm_names')[copyIndex()]))]" } ] } } }, { "type": "Microsoft.Compute/virtualMachines", "condition": "[and(parameters('create_public_ip'),not(parameters('use_ncache_image')))]", "apiVersion": "2024-07-01", "name": "[parameters('vm_names')[copyIndex()]]", "zones": ["[parameters('zone_name')]"], "dependsOn": [ "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('networkInterfaceName'),'-',parameters('vm_names')[copyIndex()]))]", "[resourceId('Microsoft.Network/publicIPAddresses',concat(variables('publicIpName'),'-',parameters('vm_names')[copyIndex()]))]" ], "location": "[parameters('location')]", "copy": { "name": "vmLoop", "count": "[length(parameters('vm_names'))]" }, "tags": { "Caches": "demoCache", "ServerType": "NCache", "InstallMode": "server" }, "properties": { "osProfile": { "computerName": "[parameters('vm_names')[copyIndex()]]", "adminUsername": "[parameters('userName')]", "adminPassword": "[parameters('password')]" }, "hardwareProfile": { "vmSize": "[parameters('vm_size')]" }, "storageProfile": { "imageReference": { "publisher": "[parameters('publisher_name')]", "offer": "[parameters('offer_name')]", "sku": "[parameters('sku_name')]", "version": "[parameters('image_version')]" }, "osDisk": { "createOption": "FromImage", "osType": "[parameters('os_name')]", "managedDisk": { "storageAccountType": "[parameters('storage_account_type')]" } } }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('networkInterfaceName'),'-',parameters('vm_names')[copyIndex()]))]" } ] } } }, { "condition": "[and(not(parameters('create_public_ip')),parameters('use_ncache_image'))]", "type": "Microsoft.Compute/virtualMachines", "apiVersion": "2024-07-01", "plan": { "name": "[parameters('sku_name')]", "publisher": "[parameters('publisher_name')]", "product": "[parameters('offer_name')]" }, "name": "[parameters('vm_names')[copyIndex()]]", "zones": ["[parameters('zone_name')]"], "dependsOn": [ "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('networkInterfaceName'),'-',parameters('vm_names')[copyIndex()]))]" ], "location": "[parameters('location')]", "copy": { "name": "vmLoop", "count": "[length(parameters('vm_names'))]" }, "tags": { "Caches": "demoCache", "ServerType": "NCache", "InstallMode": "server" }, "properties": { "osProfile": { "computerName": "[parameters('vm_names')[copyIndex()]]", "adminUsername": "[parameters('userName')]", "adminPassword": "[parameters('password')]", "customData": "[parameters('custom_data')]" }, "hardwareProfile": { "vmSize": "[parameters('vm_size')]" }, "storageProfile": { "imageReference": { "publisher": "[parameters('publisher_name')]", "offer": "[parameters('offer_name')]", "sku": "[parameters('sku_name')]", "version": "[parameters('image_version')]" }, "osDisk": { "createOption": "FromImage", "osType": "[parameters('os_name')]", "managedDisk": { "storageAccountType": "[parameters('storage_account_type')]" } } }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('networkInterfaceName'),'-',parameters('vm_names')[copyIndex()]))]" } ] } } }, { "condition": "[and(parameters('create_public_ip'),parameters('use_ncache_image'))]", "type": "Microsoft.Compute/virtualMachines", "apiVersion": "2024-07-01", "plan": { "name": "[parameters('sku_name')]", "publisher": "[parameters('publisher_name')]", "product": "[parameters('offer_name')]" }, "name": "[parameters('vm_names')[copyIndex()]]", "zones": ["[parameters('zone_name')]"], "dependsOn": [ "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('networkInterfaceName'),'-',parameters('vm_names')[copyIndex()]))]", "[resourceId('Microsoft.Network/publicIPAddresses',concat(variables('publicIpName'),'-',parameters('vm_names')[copyIndex()]))]" ], "location": "[parameters('location')]", "copy": { "name": "vmLoop", "count": "[length(parameters('vm_names'))]" }, "tags": { "Caches": "demoCache", "ServerType": "NCache", "InstallMode": "server" }, "properties": { "osProfile": { "computerName": "[parameters('vm_names')[copyIndex()]]", "adminUsername": "[parameters('userName')]", "adminPassword": "[parameters('password')]", "customData": "[parameters('custom_data')]" }, "diagnosticsProfile": { "bootDiagnostics": { "enabled": false } }, "hardwareProfile": { "vmSize": "[parameters('vm_size')]" }, "storageProfile": { "imageReference": { "publisher": "[parameters('publisher_name')]", "offer": "[parameters('offer_name')]", "sku": "[parameters('sku_name')]", "version": "[parameters('image_version')]" }, "osDisk": { "createOption": "FromImage", "osType": "[parameters('os_name')]", "managedDisk": { "storageAccountType": "[parameters('storage_account_type')]" } } }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('networkInterfaceName'),'-',parameters('vm_names')[copyIndex()]))]" } ] } } } ] } |