From ebefe2c66c5eb9ddddd09b5c58ff3ff61396b98c Mon Sep 17 00:00:00 2001 From: Jovan Popovic Date: Mon, 5 Nov 2018 22:31:13 +0100 Subject: [PATCH] Updating attach MI jumpbox Posh --- .../attach-jumpbox/attachJumpbox.ps1 | 26 ++++++++++++++++--- .../attach-jumpbox/azuredeploy.json | 24 ++++++++++++----- 2 files changed, 39 insertions(+), 11 deletions(-) diff --git a/samples/manage/azure-sql-db-managed-instance/attach-jumpbox/attachJumpbox.ps1 b/samples/manage/azure-sql-db-managed-instance/attach-jumpbox/attachJumpbox.ps1 index eda28bbf..98d8388f 100644 --- a/samples/manage/azure-sql-db-managed-instance/attach-jumpbox/attachJumpbox.ps1 +++ b/samples/manage/azure-sql-db-managed-instance/attach-jumpbox/attachJumpbox.ps1 @@ -2,12 +2,20 @@ $parameters = $args[0] $subscriptionId = $parameters['subscriptionId'] $resourceGroupName = $parameters['resourceGroupName'] +$virtualMachineName = $parameters['virtualMachineName'] $virtualNetworkName = $parameters['virtualNetworkName'] +$managementSubnetName = $parameters['subnetName'] $administratorLogin = $parameters['administratorLogin'] $administratorLoginPassword = $parameters['administratorLoginPassword'] $scriptUrlBase = $args[1] +if($virtualMachineName -eq '') + $virtualMachineName = 'JumpboxVM' + +if($managementSubnetName -eq '') + $managementSubnetName = 'Management' + function VerifyPSVersion { Write-Host "Verifying PowerShell version, must be 5.0 or higher." @@ -157,12 +165,20 @@ SelectSubscriptionId -subscriptionId $subscriptionId $virtualNetwork = LoadVirtualNetwork -resourceGroupName $resourceGroupName -virtualNetworkName $virtualNetworkName -$managementSubnetPrefix = CalculateNextAddressPrefix $virtualNetwork 28 +$subnets = $virtualNetwork.Subnets.Name +If($false -eq $subnets.Contains($managementSubnetName)) +{ + + $managementSubnetPrefix = CalculateNextAddressPrefix $virtualNetwork 28 -$virtualNetwork.AddressSpace.AddressPrefixes.Add($managementSubnetPrefix) -Add-AzureRmVirtualNetworkSubnetConfig -Name Management -VirtualNetwork $virtualNetwork -AddressPrefix $managementSubnetPrefix | Out-Null + $virtualNetwork.AddressSpace.AddressPrefixes.Add($managementSubnetPrefix) + Add-AzureRmVirtualNetworkSubnetConfig -Name Management -VirtualNetwork $virtualNetwork -AddressPrefix $managementSubnetPrefix | Out-Null -SetVirtualNetwork $virtualNetwork + SetVirtualNetwork $virtualNetwork + Write-Host "Added subnet into VNet." -ForegroundColor Green +} else { + Write-Host "The subnet already exists in the VNet." -ForegroundColor Green +} Write-Host @@ -172,6 +188,8 @@ Write-Host "Starting deployment..." $templateParameters = @{ virtualNetworkName = $virtualNetworkName managementSubnetPrefix = $managementSubnetPrefix + managementSubnetName = $managementSubnetName + virtualMachineName = $virtualMachineName administratorLogin = $administratorLogin administratorLoginPassword = $administratorLoginPassword } diff --git a/samples/manage/azure-sql-db-managed-instance/attach-jumpbox/azuredeploy.json b/samples/manage/azure-sql-db-managed-instance/attach-jumpbox/azuredeploy.json index ff12fca4..a84c8038 100644 --- a/samples/manage/azure-sql-db-managed-instance/attach-jumpbox/azuredeploy.json +++ b/samples/manage/azure-sql-db-managed-instance/attach-jumpbox/azuredeploy.json @@ -32,15 +32,25 @@ "metadata": { "description": "Enter password." } + }, + "virtualMachineName": { + "type": "string", + "metadata": { + "description": "VM name." + } + }, + "managementSubnetName": { + "type": "string", + "metadata": { + "description": "VM subnet name." + } } }, "variables": { - "managementSubnetName": "Management", - "virtualMachineName": "JumpBox", "virtualMachineSize": "Standard_B2s", - "networkInterfaceName": "nicJumpBox", - "publicIPAddressName": "ipJumpBox", - "networkSecurityGroupName": "nsgJumpBox", + "networkInterfaceName": "[concat('nic', parameters('virtualMachineName'))]", + "publicIPAddressName": "[concat('ip', parameters('virtualMachineName'))]", + "networkSecurityGroupName": "[concat('nsg', parameters('virtualMachineName'))]", "scriptFileUri": "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/201-sqlmi-new-vnet-w-jumpbox/installSSMS.ps1" }, "resources": [ @@ -54,7 +64,7 @@ ], "properties": { "osProfile": { - "computerName": "[variables('virtualMachineName')]", + "computerName": "[parameters('virtualMachineName')]", "adminUsername": "[parameters('administratorLogin')]", "adminPassword": "[parameters('administratorLoginPassword')]", "windowsConfiguration": { @@ -130,7 +140,7 @@ "name": "ipconfig1", "properties": { "subnet": { - "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), variables('managementSubnetName'))]" + "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('managementSubnetName'))]" }, "privateIPAllocationMethod": "Dynamic", "publicIpAddress": {