legacy/ARMTemplates/deploymentScripts/deployLandscape.ps1 (75 lines of code) (raw):

# select subscription $ResourceGroupName = "[SID]-rg" $location = "[REGION]" $subscriptionID = "[SUBSCRIPTIONID]" $SID = "[SID]" $applicationSecurityGroupName = "[APPASG]" $dbSecurityGroupName = "[DBASG]" $virtualNetworkResourceGroupName = "[VNetRG]" $virtualNetworkName = "[VNetName]" $curDirName = Split-Path $pwd -Leaf if ($curDirName.ToLower() -ne ("[SID]").ToLower()) { Write-Host "Please run the script from the [SID] folder" exit } Write-Host "Deployment started: " (Get-Date).ToString("yyyy-MM-dd HH:mm") $Subscription = Get-AzSubscription -SubscriptionId $SubscriptionId if (-Not $Subscription) { Write-Host -ForegroundColor Red -BackgroundColor White "Sorry, it seems you are not connected to Azure or don't have access to the subscription. Please use Connect-AzAccount to connect." exit } if (-not (Test-Path ..\..\baseInfrastructure\ppgavset.json -PathType Leaf)) { Write-Host -ForegroundColor Red -BackgroundColor White "File ..\..\baseInfrastructure\ppgavset.json does not exit, ensure that your working directory is correct." exit } Write-Host "Checking prerequisites" #Checking the VNet $rgNet = Get-AzResourceGroup -Name $virtualNetworkResourceGroupName -Location $location -ErrorVariable notPresent -ErrorAction SilentlyContinue if (!$rgNet) { $errorInfo = "Resource group '" + $virtualNetworkResourceGroupName + "' does not exist" Write-Error -Message $errorInfo -Category ObjectNotFound exit } else { $vnetCheck = Get-AzVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $virtualNetworkResourceGroupName -ErrorAction SilentlyContinue if (!$vnetCheck) { $errorInfo = "Virtual network '" + $virtualNetworkName + "' does not exist in resource group '" + $virtualNetworkResourceGroupName + "'" Write-Error -Message $errorInfo -Category ObjectNotFound exit } } #Check the application security groups $asg = Get-AzApplicationSecurityGroup -ResourceGroupName $virtualNetworkResourceGroupName -Name $applicationSecurityGroupName -ErrorAction SilentlyContinue if (!$asg) { $errorInfo = "Application security group '" + $applicationSecurityGroupName + "' does not exist in resource group '" + $virtualNetworkResourceGroupName + "'" Write-Error -Message $errorInfo -Category ObjectNotFound exit } else { $asg = Get-AzApplicationSecurityGroup -ResourceGroupName $virtualNetworkResourceGroupName -Name $dbSecurityGroupName -ErrorAction SilentlyContinue if (!$asg) { $errorInfo = "Application security group '" + $dbSecurityGroupName + "' does not exist in resource group '" + $virtualNetworkResourceGroupName + "'" Write-Error -Message $errorInfo -Category ObjectNotFound exit } } $rg = Get-AzResourceGroup -Name $ResourceGroupName -Location $location -ErrorVariable notPresent -ErrorAction SilentlyContinue if (!$rg) { Write-Host "Creating the resource group :" $ResourceGroupName New-AzResourceGroup -Name $ResourceGroupName -Location $location -Tag @{SID = $SID } } Write-Host "Creating the proximity placement group and the availability sets" $res = New-AzResourceGroupDeployment -Name "PPG_AVSet_Creation" -ResourceGroupName $ResourceGroupName -TemplateFile ..\..\baseInfrastructure\ppgavset.json -TemplateParameterFile .\ppgavset.parameters.json -Verbose if ($res.ProvisioningState -ne "Succeeded") { Write-Error -Message "The deployment failed" exit } Write-Host "Provisioning the Database Server(s)" [DBServerDeployment] Write-Host "Provisioning the ASCS Server(s)" [ASCSServerDeployment] Write-Host "Provisioning the Application Server(s)" [AppServerDeployment] Write-Host "Provisioning the Web Dispatch Server(s)" [WDServerDeployment] Write-Host "Deployment finished: " (Get-Date).ToString("yyyy-MM-dd HH:mm")