From 2262c408e0c70093957920dbf7e2e5ccf964ba71 Mon Sep 17 00:00:00 2001 From: Andreas Schwarz Date: Thu, 14 Mar 2024 17:06:58 +0100 Subject: [PATCH 1/8] Update Bicep deployment scripts to include username --- .../resources/destination.bicep | 12 ++++--- .../resources/main.bicep | 8 +++-- .../resources/source.bicep | 30 ++++++++++-------- .../walkthrough/challenge-1/img/CS1.png | Bin 0 -> 22876 bytes .../walkthrough/challenge-1/img/CS2.png | Bin 0 -> 14328 bytes .../walkthrough/challenge-1/img/CS3.png | Bin 0 -> 7540 bytes .../walkthrough/challenge-1/img/CS4.png | Bin 0 -> 3043 bytes .../walkthrough/challenge-1/solution.md | 17 ++++++++-- 8 files changed, 45 insertions(+), 22 deletions(-) create mode 100644 03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS1.png create mode 100644 03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS2.png create mode 100644 03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS3.png create mode 100644 03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS4.png diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep index b43905905..83544fe40 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep @@ -11,11 +11,15 @@ param suffix string @description('Number of the deployment used for multiple Deployments in the same Subscription') param deployment int +@description('User Name for the Tags') +param userName string + + // Resources // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/networksecuritygroups?pivots=deployment-language-bicep @description('Network security group in destination network') resource destinationVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' = { - name: '${prefix}${deployment}${suffix}-destination-vnet-nsg' + name: '${prefix}${deployment}${userName}${suffix}-destination-vnet-nsg' location: location properties: { securityRules: [ @@ -39,7 +43,7 @@ resource destinationVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' // https://learn.microsoft.com/en-us/azure/templates/Microsoft.Network/virtualNetworks?pivots=deployment-language-bicep @description('Virtual network for the destination resources') resource destinationVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { - name: '${prefix}${deployment}${suffix}-destination-vnet' + name: '${prefix}${deployment}${userName}${suffix}-destination-vnet' location: location properties: { addressSpace: { @@ -70,7 +74,7 @@ resource destinationVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Destination Bastion Public IP') resource destinationBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' = { - name: '${prefix}${deployment}${suffix}-destination-bastion-pip' + name: '${prefix}${deployment}${userName}${suffix}-destination-bastion-pip' location: location sku: { name: 'Standard' @@ -83,7 +87,7 @@ resource destinationBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/bastionhosts?pivots=deployment-language-bicep @description('Destination Network Bastion to access the destination Servers') resource destinationBastion 'Microsoft.Network/bastionHosts@2022-07-01' = { - name: '${prefix}${deployment}${suffix}-destination-bastion' + name: '${prefix}${deployment}${userName}${suffix}-destination-bastion' location: location sku: { name: 'Basic' diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/main.bicep b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/main.bicep index 097b0a0f7..dde575fa2 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/main.bicep +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/main.bicep @@ -25,7 +25,8 @@ var tags = { @description('Source Resouce Groups.') resource sourceRg 'Microsoft.Resources/resourceGroups@2021-01-01' = [for i in range(0, deploymentCount): { - name: '${prefix}${(i+1)}-${suffix}-source-rg' + //name: '${prefix}${(i+1)}-${suffix}-source-rg' + name: '${prefix}${(i+1)}-${userName}-${suffix}-source-rg' location: location tags: tags }] @@ -40,12 +41,14 @@ module source 'source.bicep' = [for i in range(0, deploymentCount): { prefix: prefix suffix: suffix deployment: (i+1) + userName: userName } }] @description('Destination Resouce Groups.') resource destinationRg 'Microsoft.Resources/resourceGroups@2021-01-01' = [for i in range(0, deploymentCount): { - name: '${prefix}${(i+1)}-${suffix}-destination-rg' + //name: '${prefix}${(i+1)}-${suffix}-destination-rg' + name: '${prefix}${(i+1)}-${userName}-${suffix}-destination-rg' location: location tags: tags }] @@ -59,6 +62,7 @@ module destination 'destination.bicep' = [for i in range(0, deploymentCount): { prefix: prefix suffix: suffix deployment: (i+1) + userName: userName } }] diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep index 321fdec41..281d09ec7 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep @@ -41,11 +41,15 @@ var vm2Name = '${prefix}${deployment}${suffix}-fe-2' @description('Tenant ID used by Keyvault') var tenantId = subscription().tenantId +@description('User Name for the Tags') +param userName string + + // Resources // https://learn.microsoft.com/en-us/azure/templates/microsoft.keyvault/vaults?pivots=deployment-language-bicep @description('Source Keyvault') resource sourceKeyvault 'Microsoft.KeyVault/vaults@2021-11-01-preview' = { - name: substring('${prefix}${deployment}${suffix}-source-kv-${uniqueString(resourceGroup().id)}', 0, 22) + name: substring('${prefix}${deployment}${userName}${suffix}-source-kv-${uniqueString(resourceGroup().id)}', 0, 22) location: location properties: { enabledForDeployment: false @@ -93,7 +97,7 @@ resource adminUsernameSecret 'Microsoft.KeyVault/vaults/secrets@2021-11-01-previ // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/networksecuritygroups?pivots=deployment-language-bicep @description('Network security group in source network') resource sourceVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' = { - name: '${prefix}${deployment}${suffix}-source-vnet-nsg' + name: '${prefix}${deployment}${userName}${suffix}-source-vnet-nsg' location: location properties: { securityRules: [ @@ -117,7 +121,7 @@ resource sourceVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/Microsoft.Network/virtualNetworks?pivots=deployment-language-bicep @description('Virtual network for the source resources') resource sourceVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { - name: '${prefix}${deployment}${suffix}-source-vnet' + name: '${prefix}${deployment}${userName}${suffix}-source-vnet' location: location properties: { addressSpace: { @@ -148,7 +152,7 @@ resource sourceVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Source Bastion Public IP') resource sourceBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' = { - name: '${prefix}${deployment}${suffix}-source-bastion-pip' + name: '${prefix}${deployment}${userName}${suffix}-source-bastion-pip' location: location sku: { name: 'Standard' @@ -161,7 +165,7 @@ resource sourceBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/bastionhosts?pivots=deployment-language-bicep @description('Source Network Bastion to access the source Servers') resource sourceBastion 'Microsoft.Network/bastionHosts@2022-07-01' = { - name: '${prefix}${deployment}${suffix}-source-bastion' + name: '${prefix}${deployment}${userName}${suffix}-source-bastion' location: location sku: { name: 'Basic' @@ -377,7 +381,7 @@ resource vm2Extension 'Microsoft.Compute/virtualMachines/extensions@2022-03-01' // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/loadbalancers?pivots=deployment-language-bicep @description('Loadbalancer for VMs') resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { - name: '${prefix}${deployment}${suffix}-plb-frontend' + name: '${prefix}${deployment}${userName}${suffix}-plb-frontend' location: location sku: { name: 'Standard' @@ -415,10 +419,10 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { name: 'myHTTPRule' properties: { frontendIPConfiguration: { - id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}${suffix}-plb-frontend', 'LoadBalancerFrontEnd') + id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}${userName}${suffix}-plb-frontend', 'LoadBalancerFrontEnd') } backendAddressPool: { - id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}${suffix}-plb-frontend', 'LoadBalancerBackEndPool') + id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}${userName}${suffix}-plb-frontend', 'LoadBalancerBackEndPool') } frontendPort: 80 backendPort: 80 @@ -429,7 +433,7 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { loadDistribution: 'Default' disableOutboundSnat: true probe: { - id: resourceId('Microsoft.Network/loadBalancers/probes', '${prefix}${deployment}${suffix}-plb-frontend', 'loadBalancerHealthProbe') + id: resourceId('Microsoft.Network/loadBalancers/probes', '${prefix}${deployment}${userName}${suffix}-plb-frontend', 'loadBalancerHealthProbe') } } } @@ -454,11 +458,11 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { enableTcpReset: false idleTimeoutInMinutes: 15 backendAddressPool: { - id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}${suffix}-plb-frontend', 'LoadBalancerBackEndPoolOutbound') + id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}${userName}${suffix}-plb-frontend', 'LoadBalancerBackEndPoolOutbound') } frontendIPConfigurations: [ { - id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}${suffix}-plb-frontend', 'LoadBalancerFrontEndOutbound') + id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}${userName}${suffix}-plb-frontend', 'LoadBalancerFrontEndOutbound') } ] } @@ -470,7 +474,7 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Load Balancer Public IP') resource lbPublicIPAddress 'Microsoft.Network/publicIPAddresses@2021-08-01' = { - name: '${prefix}${deployment}${suffix}-lbPublicIP' + name: '${prefix}${deployment}${userName}${suffix}-lbPublicIP' location: location sku: { name: 'Standard' @@ -484,7 +488,7 @@ resource lbPublicIPAddress 'Microsoft.Network/publicIPAddresses@2021-08-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Load Balancer Outbound Public IP') resource lbPublicIPAddressOutbound 'Microsoft.Network/publicIPAddresses@2021-08-01' = { - name: '${prefix}${deployment}${suffix}-lbPublicIPOutbound' + name: '${prefix}${deployment}${userName}${suffix}-lbPublicIPOutbound' location: location sku: { name: 'Standard' diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS1.png b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS1.png new file mode 100644 index 0000000000000000000000000000000000000000..d7f918db4b54987c3fd382c0b4037268151a58d5 GIT binary patch literal 22876 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 OAG&_k+6-gj7XM#*j%$Db literal 0 HcmV?d00001 diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS2.png b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS2.png new file mode 100644 index 0000000000000000000000000000000000000000..0a77e0c553a9986d4873a90ca7ce0a9d19a674c4 GIT binary patch literal 14328 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�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 U+Y=4NlcEF~Dmuzdigq#o2bns+%K!iX literal 0 HcmV?d00001 diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS4.png b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS4.png new file mode 100644 index 0000000000000000000000000000000000000000..0703d402a38d6cb1aaae40e29683b1b4b9f3f518 GIT binary patch literal 3043 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 [!NOTE] +> You can also use your local PC but make sure to install [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli). + +- If this is the first time that Cloud Shell is beeing started, create the required Storage Account by clicking on *Create storage* and wait until the Storage Accounts has been created. +![image](./img/CS2.png) +- Make sure to select *Bash* +![image](./img/CS3.png) +- Clone the MicroHack Github repository using the `git clone https://github.com/microsoft/MicroHack.git` command +![image](./img/CS4.png) + + - Execute `az deployment sub create --name "$(az ad signed-in-user show --query displayName -o tsv)-$(az ad signed-in-user show --query id -o tsv)" --location germanywestcentral --template-file ./main.bicep --parameters currentUserObjectId=$(az ad signed-in-user show --query id -o tsv) --parameters userName="$(az ad signed-in-user show --query displayName -o tsv)"` - Wait for the deployment to finish From 93b05284aacc33275de28b177266009bc6b58746 Mon Sep 17 00:00:00 2001 From: Andreas Schwarz Date: Thu, 14 Mar 2024 17:19:41 +0100 Subject: [PATCH 2/8] Update Deployment Instrcutions --- .../walkthrough/challenge-1/img/CS5.png | Bin 0 -> 5417 bytes .../walkthrough/challenge-1/solution.md | 20 +++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS5.png diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS5.png b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS5.png new file mode 100644 index 0000000000000000000000000000000000000000..fa0d84655597c68341a6f3945e8d7853aad14c29 GIT binary patch literal 5417 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 literal 0 HcmV?d00001 diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md index de752e93a..d4a55e171 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md @@ -11,24 +11,34 @@ Duration: 30 minutes ### **Task 1: Deploy the Landing Zone for the Micro Hack** - Open the [Azure Portal](https://portal.azure.com) and login using a user account with at least Contributor permissions on a Azure Subscription. + ![image](./img/CS1.png) > [!NOTE] > You can also use your local PC but make sure to install [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli). - If this is the first time that Cloud Shell is beeing started, create the required Storage Account by clicking on *Create storage* and wait until the Storage Accounts has been created. + ![image](./img/CS2.png) -- Make sure to select *Bash* + +- Make sure to select *Bash*. + ![image](./img/CS3.png) -- Clone the MicroHack Github repository using the `git clone https://github.com/microsoft/MicroHack.git` command + +- Clone the MicroHack Github repository using the `git clone https://github.com/microsoft/MicroHack.git` command. + ![image](./img/CS4.png) +- Change into to Migrate & Modernize Microhack directory of the cloned repository using the `cd MicroHack/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/` command. + +![image](./img/CS5.png) + +- Execute `az deployment sub create --name "$(az ad signed-in-user show --query displayName -o tsv)--$(uuidgen)" --location germanywestcentral --template-file ./main.bicep --parameters currentUserObjectId=$(az ad signed-in-user show --query id -o tsv) --parameters userName="$(az ad signed-in-user show --query displayName -o tsv)"` -- Execute `az deployment sub create --name "$(az ad signed-in-user show --query displayName -o tsv)-$(az ad signed-in-user show --query id -o tsv)" --location germanywestcentral --template-file ./main.bicep --parameters currentUserObjectId=$(az ad signed-in-user show --query id -o tsv) --parameters userName="$(az ad signed-in-user show --query displayName -o tsv)"` -- Wait for the deployment to finish +- Wait for the deployment to finish. > [!NOTE] -> Please note that the deployment may take up to 10 minutes +> Please note that the deployment may take up to 10 minutes. ### **Task 2: Verify the deployed resources** The bicep deployment should have created the following resources From fabc7e4a93b45fefa45af600d278cc253b9b12ba Mon Sep 17 00:00:00 2001 From: Andreas Schwarz Date: Thu, 14 Mar 2024 17:25:15 +0100 Subject: [PATCH 3/8] Update deployment instrauctions --- .../walkthrough/challenge-1/img/CS5.png | Bin 5417 -> 6021 bytes .../walkthrough/challenge-1/img/CS6.png | Bin 0 -> 12496 bytes .../walkthrough/challenge-1/solution.md | 4 +++- 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS6.png diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS5.png b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS5.png index fa0d84655597c68341a6f3945e8d7853aad14c29..226fb790b866850b5036a1740ab582b26b26929d 100644 GIT binary patch literal 6021 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 literal 5417 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 diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS6.png b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS6.png new file mode 100644 index 0000000000000000000000000000000000000000..5d34997f9f9afa573e5db2d476502e4ffb69649c GIT binary patch literal 12496 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 I)t|rnU+@+*0RR91 literal 0 HcmV?d00001 diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md index d4a55e171..fa79dab63 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md @@ -29,12 +29,14 @@ Duration: 30 minutes ![image](./img/CS4.png) -- Change into to Migrate & Modernize Microhack directory of the cloned repository using the `cd MicroHack/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/` command. +- Change into to Migrate & Modernize Microhack directory of the cloned repository using the `cd MicroHack/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources` command. ![image](./img/CS5.png) - Execute `az deployment sub create --name "$(az ad signed-in-user show --query displayName -o tsv)--$(uuidgen)" --location germanywestcentral --template-file ./main.bicep --parameters currentUserObjectId=$(az ad signed-in-user show --query id -o tsv) --parameters userName="$(az ad signed-in-user show --query displayName -o tsv)"` +![image](./img/CS6.png) + - Wait for the deployment to finish. > [!NOTE] From 7c33367e8121c963dc089758a0c541386e478756 Mon Sep 17 00:00:00 2001 From: Andreas Schwarz Date: Thu, 14 Mar 2024 17:53:39 +0100 Subject: [PATCH 4/8] Update Bicep Code --- .../resources/destination.bicep | 8 ++--- .../resources/source.bicep | 32 +++++++++---------- .../walkthrough/challenge-1/solution.md | 2 +- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep index 83544fe40..e98fc1e48 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep @@ -19,7 +19,7 @@ param userName string // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/networksecuritygroups?pivots=deployment-language-bicep @description('Network security group in destination network') resource destinationVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' = { - name: '${prefix}${deployment}${userName}${suffix}-destination-vnet-nsg' + name: '${prefix}${deployment}-${userName}-${suffix}-destination-vnet-nsg' location: location properties: { securityRules: [ @@ -43,7 +43,7 @@ resource destinationVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' // https://learn.microsoft.com/en-us/azure/templates/Microsoft.Network/virtualNetworks?pivots=deployment-language-bicep @description('Virtual network for the destination resources') resource destinationVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { - name: '${prefix}${deployment}${userName}${suffix}-destination-vnet' + name: '${prefix}${deployment}-${userName}-${suffix}-destination-vnet' location: location properties: { addressSpace: { @@ -74,7 +74,7 @@ resource destinationVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Destination Bastion Public IP') resource destinationBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' = { - name: '${prefix}${deployment}${userName}${suffix}-destination-bastion-pip' + name: '${prefix}${deployment}-${userName}-${suffix}-destination-bastion-pip' location: location sku: { name: 'Standard' @@ -87,7 +87,7 @@ resource destinationBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/bastionhosts?pivots=deployment-language-bicep @description('Destination Network Bastion to access the destination Servers') resource destinationBastion 'Microsoft.Network/bastionHosts@2022-07-01' = { - name: '${prefix}${deployment}${userName}${suffix}-destination-bastion' + name: '${prefix}${deployment}-${userName}-${suffix}-destination-bastion' location: location sku: { name: 'Basic' diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep index 281d09ec7..0f3e7bece 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep @@ -27,16 +27,16 @@ param guidValue string = newGuid() // Variables @description('Admin user variable') -var adminUsername = '${prefix}${deployment}-microhackadmin' +var adminUsername = '${prefix}${deployment}-${userName}' @description('Admin password variable') var adminPassword = '${toUpper(uniqueString(resourceGroup().id))}-${guidValue}' @description('Create Name for VM1') -var vm1Name = '${prefix}${deployment}${suffix}-fe-1' +var vm1Name = '${prefix}${deployment}-${userName}-fe1' @description('Create Name for VM2') -var vm2Name = '${prefix}${deployment}${suffix}-fe-2' +var vm2Name = '${prefix}${deployment}-${userName}-fe2' @description('Tenant ID used by Keyvault') var tenantId = subscription().tenantId @@ -49,7 +49,7 @@ param userName string // https://learn.microsoft.com/en-us/azure/templates/microsoft.keyvault/vaults?pivots=deployment-language-bicep @description('Source Keyvault') resource sourceKeyvault 'Microsoft.KeyVault/vaults@2021-11-01-preview' = { - name: substring('${prefix}${deployment}${userName}${suffix}-source-kv-${uniqueString(resourceGroup().id)}', 0, 22) + name: substring('${prefix}${deployment}-${userName}-${suffix}-source-kv-${uniqueString(resourceGroup().id)}', 0, 22) location: location properties: { enabledForDeployment: false @@ -97,7 +97,7 @@ resource adminUsernameSecret 'Microsoft.KeyVault/vaults/secrets@2021-11-01-previ // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/networksecuritygroups?pivots=deployment-language-bicep @description('Network security group in source network') resource sourceVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' = { - name: '${prefix}${deployment}${userName}${suffix}-source-vnet-nsg' + name: '${prefix}${deployment}-${userName}-${suffix}-source-vnet-nsg' location: location properties: { securityRules: [ @@ -121,7 +121,7 @@ resource sourceVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/Microsoft.Network/virtualNetworks?pivots=deployment-language-bicep @description('Virtual network for the source resources') resource sourceVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { - name: '${prefix}${deployment}${userName}${suffix}-source-vnet' + name: '${prefix}${deployment}-${userName}-${suffix}-source-vnet' location: location properties: { addressSpace: { @@ -152,7 +152,7 @@ resource sourceVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Source Bastion Public IP') resource sourceBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' = { - name: '${prefix}${deployment}${userName}${suffix}-source-bastion-pip' + name: '${prefix}${deployment}-${userName}-${suffix}-source-bastion-pip' location: location sku: { name: 'Standard' @@ -165,7 +165,7 @@ resource sourceBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/bastionhosts?pivots=deployment-language-bicep @description('Source Network Bastion to access the source Servers') resource sourceBastion 'Microsoft.Network/bastionHosts@2022-07-01' = { - name: '${prefix}${deployment}${userName}${suffix}-source-bastion' + name: '${prefix}${deployment}-${userName}-${suffix}-source-bastion' location: location sku: { name: 'Basic' @@ -381,7 +381,7 @@ resource vm2Extension 'Microsoft.Compute/virtualMachines/extensions@2022-03-01' // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/loadbalancers?pivots=deployment-language-bicep @description('Loadbalancer for VMs') resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { - name: '${prefix}${deployment}${userName}${suffix}-plb-frontend' + name: '${prefix}${deployment}-${userName}-${suffix}-plb-frontend' location: location sku: { name: 'Standard' @@ -419,10 +419,10 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { name: 'myHTTPRule' properties: { frontendIPConfiguration: { - id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}${userName}${suffix}-plb-frontend', 'LoadBalancerFrontEnd') + id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}-${userName}-${suffix}-plb-frontend', 'LoadBalancerFrontEnd') } backendAddressPool: { - id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}${userName}${suffix}-plb-frontend', 'LoadBalancerBackEndPool') + id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}-${userName}-${suffix}-plb-frontend', 'LoadBalancerBackEndPool') } frontendPort: 80 backendPort: 80 @@ -433,7 +433,7 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { loadDistribution: 'Default' disableOutboundSnat: true probe: { - id: resourceId('Microsoft.Network/loadBalancers/probes', '${prefix}${deployment}${userName}${suffix}-plb-frontend', 'loadBalancerHealthProbe') + id: resourceId('Microsoft.Network/loadBalancers/probes', '${prefix}${deployment}-${userName}-${suffix}-plb-frontend', 'loadBalancerHealthProbe') } } } @@ -458,11 +458,11 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { enableTcpReset: false idleTimeoutInMinutes: 15 backendAddressPool: { - id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}${userName}${suffix}-plb-frontend', 'LoadBalancerBackEndPoolOutbound') + id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}-${userName}-${suffix}-plb-frontend', 'LoadBalancerBackEndPoolOutbound') } frontendIPConfigurations: [ { - id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}${userName}${suffix}-plb-frontend', 'LoadBalancerFrontEndOutbound') + id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}-${userName}-${suffix}-plb-frontend', 'LoadBalancerFrontEndOutbound') } ] } @@ -474,7 +474,7 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Load Balancer Public IP') resource lbPublicIPAddress 'Microsoft.Network/publicIPAddresses@2021-08-01' = { - name: '${prefix}${deployment}${userName}${suffix}-lbPublicIP' + name: '${prefix}${deployment}-${userName}-${suffix}-lbPublicIP' location: location sku: { name: 'Standard' @@ -488,7 +488,7 @@ resource lbPublicIPAddress 'Microsoft.Network/publicIPAddresses@2021-08-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Load Balancer Outbound Public IP') resource lbPublicIPAddressOutbound 'Microsoft.Network/publicIPAddresses@2021-08-01' = { - name: '${prefix}${deployment}${userName}${suffix}-lbPublicIPOutbound' + name: '${prefix}${deployment}-${userName}-${suffix}-lbPublicIPOutbound' location: location sku: { name: 'Standard' diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md index fa79dab63..318e92705 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md @@ -33,7 +33,7 @@ Duration: 30 minutes ![image](./img/CS5.png) -- Execute `az deployment sub create --name "$(az ad signed-in-user show --query displayName -o tsv)--$(uuidgen)" --location germanywestcentral --template-file ./main.bicep --parameters currentUserObjectId=$(az ad signed-in-user show --query id -o tsv) --parameters userName="$(az ad signed-in-user show --query displayName -o tsv)"` +- Execute `az deployment sub create --name "$(az ad signed-in-user show --query displayName -o tsv)-$(uuidgen)" --location germanywestcentral --template-file ./main.bicep --parameters currentUserObjectId=$(az ad signed-in-user show --query id -o tsv) --parameters userName="$(az ad signed-in-user show --query displayName -o tsv)"` ![image](./img/CS6.png) From 606b2283938699bea3c35c03e7283a1667b1b15b Mon Sep 17 00:00:00 2001 From: Andreas Schwarz Date: Thu, 14 Mar 2024 17:58:22 +0100 Subject: [PATCH 5/8] Update Deployment Description --- .../walkthrough/challenge-1/img/CS7.png | Bin 0 -> 29230 bytes .../walkthrough/challenge-1/solution.md | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS7.png diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS7.png b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS7.png new file mode 100644 index 0000000000000000000000000000000000000000..74152dc8d62e224f59f30d7a9efa83b3cdd8073b GIT binary patch literal 29230 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 literal 0 HcmV?d00001 diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md index 318e92705..43e38c376 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md @@ -37,7 +37,9 @@ Duration: 30 minutes ![image](./img/CS6.png) -- Wait for the deployment to finish. +- Wait for the deployment to finish. You can view the deployment from the Azure portal by selecting the Azure Subscription and click on *Deployments* from the navigation pane on the left. + +![image](./img/CS7.png) > [!NOTE] > Please note that the deployment may take up to 10 minutes. From c15084193c5bbe6606fc8e0aea0411818320b070 Mon Sep 17 00:00:00 2001 From: Andreas Schwarz Date: Thu, 14 Mar 2024 18:13:32 +0100 Subject: [PATCH 6/8] Removed Suffix and replaced by UserName --- .../resources/destination.bicep | 11 +++---- .../resources/main.bicep | 11 ++----- .../resources/source.bicep | 29 +++++++++---------- 3 files changed, 20 insertions(+), 31 deletions(-) diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep index e98fc1e48..619028be4 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/destination.bicep @@ -5,9 +5,6 @@ param location string @description('Prefix used in the Naming for multiple Deployments in the same Subscription') param prefix string -@description('Suffix used in the Naming for multiple Deployments in the same Subscription') -param suffix string - @description('Number of the deployment used for multiple Deployments in the same Subscription') param deployment int @@ -19,7 +16,7 @@ param userName string // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/networksecuritygroups?pivots=deployment-language-bicep @description('Network security group in destination network') resource destinationVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' = { - name: '${prefix}${deployment}-${userName}-${suffix}-destination-vnet-nsg' + name: '${prefix}${deployment}-${userName}-destination-vnet-nsg' location: location properties: { securityRules: [ @@ -43,7 +40,7 @@ resource destinationVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' // https://learn.microsoft.com/en-us/azure/templates/Microsoft.Network/virtualNetworks?pivots=deployment-language-bicep @description('Virtual network for the destination resources') resource destinationVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { - name: '${prefix}${deployment}-${userName}-${suffix}-destination-vnet' + name: '${prefix}${deployment}-${userName}-destination-vnet' location: location properties: { addressSpace: { @@ -74,7 +71,7 @@ resource destinationVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Destination Bastion Public IP') resource destinationBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' = { - name: '${prefix}${deployment}-${userName}-${suffix}-destination-bastion-pip' + name: '${prefix}${deployment}-${userName}-destination-bastion-pip' location: location sku: { name: 'Standard' @@ -87,7 +84,7 @@ resource destinationBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/bastionhosts?pivots=deployment-language-bicep @description('Destination Network Bastion to access the destination Servers') resource destinationBastion 'Microsoft.Network/bastionHosts@2022-07-01' = { - name: '${prefix}${deployment}-${userName}-${suffix}-destination-bastion' + name: '${prefix}${deployment}-${userName}-destination-bastion' location: location sku: { name: 'Basic' diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/main.bicep b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/main.bicep index dde575fa2..44dc5ec42 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/main.bicep +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/main.bicep @@ -15,9 +15,6 @@ param location string = deployment().location @description('User Name for the Tags') param userName string -@description('Suffix used to make resource names unique') -var suffix = substring(uniqueString(currentUserObjectId), 0, 4) - @description('Tags to identify user resources') var tags = { User: userName @@ -26,7 +23,7 @@ var tags = { @description('Source Resouce Groups.') resource sourceRg 'Microsoft.Resources/resourceGroups@2021-01-01' = [for i in range(0, deploymentCount): { //name: '${prefix}${(i+1)}-${suffix}-source-rg' - name: '${prefix}${(i+1)}-${userName}-${suffix}-source-rg' + name: '${prefix}${(i+1)}-${userName}-source-rg' location: location tags: tags }] @@ -39,7 +36,6 @@ module source 'source.bicep' = [for i in range(0, deploymentCount): { location: location currentUserObjectId: currentUserObjectId prefix: prefix - suffix: suffix deployment: (i+1) userName: userName } @@ -48,7 +44,7 @@ module source 'source.bicep' = [for i in range(0, deploymentCount): { @description('Destination Resouce Groups.') resource destinationRg 'Microsoft.Resources/resourceGroups@2021-01-01' = [for i in range(0, deploymentCount): { //name: '${prefix}${(i+1)}-${suffix}-destination-rg' - name: '${prefix}${(i+1)}-${userName}-${suffix}-destination-rg' + name: '${prefix}${(i+1)}-${userName}-destination-rg' location: location tags: tags }] @@ -60,12 +56,11 @@ module destination 'destination.bicep' = [for i in range(0, deploymentCount): { params: { location: location prefix: prefix - suffix: suffix deployment: (i+1) userName: userName } }] -output identifier string = suffix +output identifier string = userName diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep index 0f3e7bece..1b79cd61c 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/resources/source.bicep @@ -10,9 +10,6 @@ param location string @description('Prefix used in the Naming for multiple Deployments in the same Subscription') param prefix string -@description('Suffix used in the Naming for multiple Deployments in the same Subscription') -param suffix string - @description('Number of the deployment used for multiple Deployments in the same Subscription') param deployment int @@ -49,7 +46,7 @@ param userName string // https://learn.microsoft.com/en-us/azure/templates/microsoft.keyvault/vaults?pivots=deployment-language-bicep @description('Source Keyvault') resource sourceKeyvault 'Microsoft.KeyVault/vaults@2021-11-01-preview' = { - name: substring('${prefix}${deployment}-${userName}-${suffix}-source-kv-${uniqueString(resourceGroup().id)}', 0, 22) + name: substring('${prefix}${deployment}-${userName}-source-kv-${uniqueString(resourceGroup().id)}', 0, 22) location: location properties: { enabledForDeployment: false @@ -97,7 +94,7 @@ resource adminUsernameSecret 'Microsoft.KeyVault/vaults/secrets@2021-11-01-previ // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/networksecuritygroups?pivots=deployment-language-bicep @description('Network security group in source network') resource sourceVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' = { - name: '${prefix}${deployment}-${userName}-${suffix}-source-vnet-nsg' + name: '${prefix}${deployment}-${userName}-source-vnet-nsg' location: location properties: { securityRules: [ @@ -121,7 +118,7 @@ resource sourceVnetNsg 'Microsoft.Network/networkSecurityGroups@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/Microsoft.Network/virtualNetworks?pivots=deployment-language-bicep @description('Virtual network for the source resources') resource sourceVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { - name: '${prefix}${deployment}-${userName}-${suffix}-source-vnet' + name: '${prefix}${deployment}-${userName}-source-vnet' location: location properties: { addressSpace: { @@ -152,7 +149,7 @@ resource sourceVnet 'Microsoft.Network/virtualNetworks@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Source Bastion Public IP') resource sourceBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' = { - name: '${prefix}${deployment}-${userName}-${suffix}-source-bastion-pip' + name: '${prefix}${deployment}-${userName}-source-bastion-pip' location: location sku: { name: 'Standard' @@ -165,7 +162,7 @@ resource sourceBastionPip 'Microsoft.Network/publicIPAddresses@2022-05-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/bastionhosts?pivots=deployment-language-bicep @description('Source Network Bastion to access the source Servers') resource sourceBastion 'Microsoft.Network/bastionHosts@2022-07-01' = { - name: '${prefix}${deployment}-${userName}-${suffix}-source-bastion' + name: '${prefix}${deployment}-${userName}-source-bastion' location: location sku: { name: 'Basic' @@ -381,7 +378,7 @@ resource vm2Extension 'Microsoft.Compute/virtualMachines/extensions@2022-03-01' // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/loadbalancers?pivots=deployment-language-bicep @description('Loadbalancer for VMs') resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { - name: '${prefix}${deployment}-${userName}-${suffix}-plb-frontend' + name: '${prefix}${deployment}-${userName}-plb-frontend' location: location sku: { name: 'Standard' @@ -419,10 +416,10 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { name: 'myHTTPRule' properties: { frontendIPConfiguration: { - id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}-${userName}-${suffix}-plb-frontend', 'LoadBalancerFrontEnd') + id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}-${userName}-plb-frontend', 'LoadBalancerFrontEnd') } backendAddressPool: { - id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}-${userName}-${suffix}-plb-frontend', 'LoadBalancerBackEndPool') + id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}-${userName}-plb-frontend', 'LoadBalancerBackEndPool') } frontendPort: 80 backendPort: 80 @@ -433,7 +430,7 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { loadDistribution: 'Default' disableOutboundSnat: true probe: { - id: resourceId('Microsoft.Network/loadBalancers/probes', '${prefix}${deployment}-${userName}-${suffix}-plb-frontend', 'loadBalancerHealthProbe') + id: resourceId('Microsoft.Network/loadBalancers/probes', '${prefix}${deployment}-${userName}-plb-frontend', 'loadBalancerHealthProbe') } } } @@ -458,11 +455,11 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { enableTcpReset: false idleTimeoutInMinutes: 15 backendAddressPool: { - id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}-${userName}-${suffix}-plb-frontend', 'LoadBalancerBackEndPoolOutbound') + id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', '${prefix}${deployment}-${userName}-plb-frontend', 'LoadBalancerBackEndPoolOutbound') } frontendIPConfigurations: [ { - id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}-${userName}-${suffix}-plb-frontend', 'LoadBalancerFrontEndOutbound') + id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', '${prefix}${deployment}-${userName}-plb-frontend', 'LoadBalancerFrontEndOutbound') } ] } @@ -474,7 +471,7 @@ resource lb 'Microsoft.Network/loadBalancers@2021-08-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Load Balancer Public IP') resource lbPublicIPAddress 'Microsoft.Network/publicIPAddresses@2021-08-01' = { - name: '${prefix}${deployment}-${userName}-${suffix}-lbPublicIP' + name: '${prefix}${deployment}-${userName}-lbPublicIP' location: location sku: { name: 'Standard' @@ -488,7 +485,7 @@ resource lbPublicIPAddress 'Microsoft.Network/publicIPAddresses@2021-08-01' = { // https://learn.microsoft.com/en-us/azure/templates/microsoft.network/publicipaddresses?pivots=deployment-language-bicep @description('Load Balancer Outbound Public IP') resource lbPublicIPAddressOutbound 'Microsoft.Network/publicIPAddresses@2021-08-01' = { - name: '${prefix}${deployment}-${userName}-${suffix}-lbPublicIPOutbound' + name: '${prefix}${deployment}-${userName}-lbPublicIPOutbound' location: location sku: { name: 'Standard' From 6c79b808ae4d7ed1f103640577d8a93ba68c6206 Mon Sep 17 00:00:00 2001 From: Andreas Schwarz Date: Thu, 14 Mar 2024 18:18:54 +0100 Subject: [PATCH 7/8] Update Deployment Instructions --- .../walkthrough/challenge-1/img/CS1-1.png | Bin 0 -> 8833 bytes .../walkthrough/challenge-1/solution.md | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS1-1.png diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS1-1.png b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/img/CS1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..96ca13a94e2246013b66b8466d788f4a42ec9b94 GIT binary patch literal 8833 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 a?ReOAS2@4e0qB8)Y|lFWUV7U1&wm5D6-u4} literal 0 HcmV?d00001 diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md index 43e38c376..5b5e35efb 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md @@ -17,7 +17,9 @@ Duration: 30 minutes > [!NOTE] > You can also use your local PC but make sure to install [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli). -- If this is the first time that Cloud Shell is beeing started, create the required Storage Account by clicking on *Create storage* and wait until the Storage Accounts has been created. +- If this is the first time that Cloud Shell is beeing started, create the required Storage Account by selecting *Bash* and clicking on *Create storage* and wait until the Storage Accounts has been created. + +![image](./img/CS1-1.png) ![image](./img/CS2.png) From 4f2c7e48200a32e3946ec6153fae036dda1eb774 Mon Sep 17 00:00:00 2001 From: Andreas Schwarz Date: Thu, 14 Mar 2024 18:35:11 +0100 Subject: [PATCH 8/8] Update Solution Deployment Instructions --- .../walkthrough/challenge-1/solution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md index 5b5e35efb..d800de402 100644 --- a/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md +++ b/03-Azure/01-03-Infrastructure/06_Migration_Datacenter_Modernization/walkthrough/challenge-1/solution.md @@ -10,7 +10,7 @@ Duration: 30 minutes ### **Task 1: Deploy the Landing Zone for the Micro Hack** -- Open the [Azure Portal](https://portal.azure.com) and login using a user account with at least Contributor permissions on a Azure Subscription. +- Open the [Azure Portal](https://portal.azure.com) and login using a user account with at least Contributor permissions on a Azure Subscription. Start the Azure Cloud Shell from the Menu bar on the top. ![image](./img/CS1.png)