Skip to content

Commit

Permalink
added vnet integrations (#678)
Browse files Browse the repository at this point in the history
* added vnet integrations

* move kv deny to after adding secrets

* update vnet firewall after deployment

* add vnet to sql at last just incase it interfers during schema creation
  • Loading branch information
santhoshb-msft committed Mar 28, 2024
1 parent 41ad309 commit 42b7342
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion deployment/Deploy.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,9 @@ Write-host "☁ Deploy Azure Resources"
$WebAppNameService=$WebAppNamePrefix+"-asp"
$WebAppNameAdmin=$WebAppNamePrefix+"-admin"
$WebAppNamePortal=$WebAppNamePrefix+"-portal"
$VnetName=$WebAppNamePrefix+"-portal"
$WebSubnetName="web"
$DefaultSubnetName="default"

#keep the space at the end of the string - bug in az cli running on windows powershell truncates last char https://github.com/Azure/azure-cli/issues/10066
$ADApplicationSecretKeyVault="@Microsoft.KeyVault(VaultName=$KeyVault;SecretName=ADApplicationSecret) "
Expand All @@ -327,7 +330,12 @@ Write-host " 🔵 Resource Group"
Write-host " ➡️ Create Resource Group"
az group create --location $Location --name $ResourceGroupForDeployment --output $azCliOutput

Write-host " 🔵 SQL Server"
Write-host " ➡️ Create VNET and Subnet"
az network vnet create --resource-group $ResourceGroupForDeployment --name $VnetName --address-prefixes "10.0.0.0/20" --output $azCliOutput
az network vnet subnet create --resource-group $ResourceGroupForDeployment --vnet-name $VnetName -n $DefaultSubnetName --address-prefixes "10.0.0.0/24" --output $azCliOutput
az network vnet subnet create --resource-group $ResourceGroupForDeployment --vnet-name $VnetName -n $WebSubnetName --address-prefixes "10.0.1.0/24" --service-endpoints Microsoft.Sql Microsoft.KeyVault --delegations Microsoft.Web/serverfarms --output $azCliOutput


Write-host " ➡️ Create Sql Server"
$userId = az ad signed-in-user show --query id -o tsv
$userdisplayname = az ad signed-in-user show --query displayName -o tsv
Expand All @@ -341,6 +349,7 @@ if ($env:ACC_CLOUD -eq $null){
$publicIp = (Invoke-WebRequest -uri "https://api.ipify.org").Content
az sql server firewall-rule create --resource-group $ResourceGroupForDeployment --server $SQLServerName -n AllowIP --start-ip-address "$publicIp" --end-ip-address "$publicIp" --output $azCliOutput
}

Write-host " ➡️ Create SQL DB"
az sql db create --resource-group $ResourceGroupForDeployment --server $SQLServerName --name $SQLDatabaseName --edition Standard --capacity 10 --zone-redundant false --output $azCliOutput

Expand All @@ -350,6 +359,9 @@ az keyvault create --name $KeyVault --resource-group $ResourceGroupForDeployment
Write-host " ➡️ Add Secrets"
az keyvault secret set --vault-name $KeyVault --name ADApplicationSecret --value="$ADApplicationSecret" --output $azCliOutput
az keyvault secret set --vault-name $KeyVault --name DefaultConnection --value $Connection --output $azCliOutput
Write-host " ➡️ Update Firewall"
az keyvault update --name $KeyVault --resource-group $ResourceGroupForDeployment --default-action Deny --output $azCliOutput
az keyvault network-rule add --name $KeyVault --resource-group $ResourceGroupForDeployment --vnet-name $VnetName --subnet $WebSubnetName --output $azCliOutput

Write-host " 🔵 App Service Plan"
Write-host " ➡️ Create App Service Plan"
Expand Down Expand Up @@ -402,6 +414,11 @@ az webapp deploy --resource-group $ResourceGroupForDeployment --name $WebAppName
Write-host " 🔵 Deploy Code to Customer Portal"
az webapp deploy --resource-group $ResourceGroupForDeployment --name $WebAppNamePortal --src-path "../Publish/CustomerSite.zip" --type zip --output $azCliOutput

Write-host " 🔵 Update Firewall for WebApps and SQL"
az webapp vnet-integration add --resource-group $ResourceGroupForDeployment --name $WebAppNamePortal --vnet $VnetName --subnet $WebSubnetName --output $azCliOutput
az webapp vnet-integration add --resource-group $ResourceGroupForDeployment --name $WebAppNameAdmin --vnet $VnetName --subnet $WebSubnetName --output $azCliOutput
az sql server vnet-rule create --name $WebAppNamePrefix-vnet --resource-group $ResourceGroupForDeployment --server $SQLServerName --vnet-name $VnetName --subnet $WebSubnetName --output $azCliOutput

Write-host " 🔵 Clean up"
Remove-Item -Path ../src/AdminSite/appsettings.Development.json
Remove-Item -Path script.sql
Expand Down

0 comments on commit 42b7342

Please sign in to comment.