Skip to content

Commit 9539118

Browse files
Merge pull request #267244 from MJyot/v1-migration
Update migrate-v1-v2.md
2 parents c2d9fce + 14b6afe commit 9539118

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

articles/application-gateway/migrate-v1-v2.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
title: Migrate from V1 to V2 - Azure Application Gateway
3-
description: This article shows you how to migrate Azure Application Gateway and Web Application Firewall from V1 to V2
3+
description: This article shows you how to migrate Azure Application Gateway and Web Application Firewall from V1 to V2.
44
services: application-gateway
55
author: greg-lindsay
66
ms.service: application-gateway
77
ms.custom: devx-track-azurepowershell
88
ms.topic: how-to
9-
ms.date: 08/01/2023
9+
ms.date: 02/26/2024
1010
ms.author: greglin
1111
---
1212

@@ -31,19 +31,19 @@ This article primarily helps with the configuration migration. Client traffic mi
3131
* An existing Application Gateway V1 Standard.
3232
* Make sure you have the latest PowerShell modules, or you can use Azure Cloud Shell in the portal.
3333
* If you're running PowerShell locally, you also need to run `Connect-AzAccount` to create a connection with Azure.
34-
* Ensure that there is no existing Application gateway with the provided Appgw V2 Name and Resource group name in V1 subscription. This will rewrite the existing resources.
35-
* If Public IP is provided ensure that its in succeeded state.If not provided and AppGwResourceGroupName is provided ensure that public IP resource with name AppGwV2Name-IP doesn’t exist in a resourcegroup with the name AppGwResourceGroupName in the V1 subscription.
36-
* Ensure that no other operation is planned on the V1 gateway or any of its associated resources during migration.
34+
* Ensure that there's no existing Application gateway with the provided AppGW V2 Name and Resource group name in V1 subscription. This rewrites the existing resources.
35+
* If a public IP address is provided, ensure that it's in a succeeded state. If not provided and AppGWResourceGroupName is provided ensure that public IP resource with name AppGWV2Name-IP doesn’t exist in a resource group with the name AppGWResourceGroupName in the V1 subscription.
36+
* Ensure that no other operation is planned on the V1 gateway or any associated resources during migration.
3737

3838
[!INCLUDE [cloud-shell-try-it.md](../../includes/cloud-shell-try-it.md)]
3939

4040
[!INCLUDE [updated-for-az](../../includes/updated-for-az.md)]
4141

4242
> [!IMPORTANT]
43-
>Run the `Set-AzContext -Subscription <V1 application gateway SubscriptionId>` cmdlet every time before running the migration script. This is necessary to set the active Azure context to the correct subscription, because the migration script might clean up the existing resource group if it doesn't exist in current subscription context.This is not a mandatory step for version 1.0.11 & above of the migration script.
43+
>Run the `Set-AzContext -Subscription <V1 application gateway SubscriptionId>` cmdlet every time before running the migration script. This is necessary to set the active Azure context to the correct subscription, because the migration script might clean up the existing resource group if it doesn't exist in current subscription context. This is not a mandatory step for version 1.0.11 & above of the migration script.
4444
4545
> [!IMPORTANT]
46-
>A new stable version of the migration script , version 1.0.11 is available now , which contains important bug fixes and updates.Use this version to avoid potential issues.
46+
>A new stable version of the migration script, version 1.0.11 is available now, which contains important bug fixes and updates.Use this version to avoid potential issues.
4747
4848
## Configuration migration
4949

@@ -54,7 +54,7 @@ An Azure PowerShell script is provided in this document. It performs the followi
5454

5555
## Downloading the script
5656

57-
You can download the migration script from the [PowerShell Gallery](https://www.powershellgallery.com/packages/AzureAppGWMigration).A new stable release (Version 1.0.11) of the migration script is available ,which includes major updates and bug fixes .It is recommended to use this stable version.
57+
You can download the migration script from the [PowerShell Gallery](https://www.powershellgallery.com/packages/AzureAppGWMigration).A new stable release (Version 1.0.11) of the migration script is available, which includes major updates and bug fixes. It's recommended to use this stable version.
5858

5959

6060
## Using the script
@@ -70,8 +70,7 @@ There are two options for you depending on your local PowerShell environment set
7070

7171
To determine if you have the Azure Az modules installed, run `Get-InstalledModule -Name az`. If you don't see any installed Az modules, then you can use the `Install-Script` method.
7272

73-
#### Install using the Install-Script method
74-
73+
#### Install using the Install-Script method (recommended)
7574
To use this option, you must not have the Azure Az modules installed on your computer. If they're installed, the following command displays an error. You can either uninstall the Azure Az modules, or use the other option to download the script manually and run it.
7675

7776
Run the script with the following command to get the latest version:
@@ -83,12 +82,12 @@ This command also installs the required Az modules.
8382
#### Install using the script directly
8483
If you have some Azure Az modules installed and can't uninstall them (or don't want to uninstall them), you can manually download the script using the **Manual Download** tab in the script download link. The script is downloaded as a raw nupkg file. To install the script from this nupkg file, see [Manual Package Download](/powershell/gallery/how-to/working-with-packages/manual-download).
8584

86-
Version 1.0.11 is the new version of the migration script which includes major bug fixes.It is recommended to use this stable version.
85+
Version 1.0.11 is the new version of the migration script which includes major bug fixes. It's recommended to use this stable version.
8786

8887
#### How to check the version of the downloaded script
8988
To check the version of the downloaded script the steps are as follows:
9089
* Extract the contents of the NuGet package.
91-
* Open the .PS1 file in the folder and check the .VERSION on top to confirm the version of the downloaded script
90+
* Open the `.PS1` file in the folder and check the `.VERSION` on top to confirm the version of the downloaded script
9291
```
9392
<#PSScriptInfo
9493
.VERSION 1.0.10
@@ -107,26 +106,26 @@ To run the script:
107106

108107
2. Use `Import-Module Az` to import the Az modules.
109108

110-
3. Run the `Set-AzContext` cmdlet ,to set the active Azure context to the correct subscription.This is an important step because the migration script might clean up the existing resource group if it doesn't exist in current subscription context.
109+
3. Run the `Set-AzContext` cmdlet, to set the active Azure context to the correct subscription. This is an important step because the migration script might clean up the existing resource group if it doesn't exist in current subscription context.
111110
```
112111
Set-AzContext -Subscription '<V1 application gateway SubscriptionId>'
113112
```
114113
4. Run `Get-Help AzureAppGWMigration.ps1` to examine the required parameters:
115114

116115
```
117-
AzureAppGwMigration.ps1
116+
AzureAppGWMigration.ps1
118117
-resourceId <V1 application gateway Resource ID>
119118
-subnetAddressRange <subnet space you want to use>
120119
-appgwName <string to use to append>
121-
-AppGwResourceGroupName <resource group name you want to use>
120+
-AppGWResourceGroupName <resource group name you want to use>
122121
-sslCertificates <comma-separated SSLCert objects as above>
123122
-trustedRootCertificates <comma-separated Trusted Root Cert objects as above>
124123
-privateIpAddress <private IP string>
125124
-publicIpResourceId <public IP name string>
126125
-validateMigration -enableAutoScale
127126
```
128127
> [!NOTE]
129-
> During migration don't attempt any other operation on the V1 gateway or any of its associated resources.
128+
> During migration don't attempt any other operation on the V1 gateway or any associated resources.
130129
131130
Parameters for the script:
132131
* **resourceId: [String]: Required**: This parameter is the Azure Resource ID for your existing Standard V1 or WAF V1 gateway. To find this string value, navigate to the Azure portal, select your application gateway or WAF resource, and click the **Properties** link for the gateway. The Resource ID is located on that page.
@@ -140,9 +139,9 @@ To run the script:
140139
141140
* **subnetAddressRange: [String]: Required**: This parameter is the IP address space that you've allocated (or want to allocate) for a new subnet that contains your new V2 gateway. The address space must be specified in the CIDR notation. For example: 10.0.0.0/24. You don't need to create this subnet in advance but the CIDR needs to be part of the VNET address space. The script creates it for you if it doesn't exist and if it exists, it uses the existing one (make sure the subnet is either empty, contains only V2 Gateway if any, and has enough available IPs).
142141
* **appgwName: [String]: Optional**. This is a string you specify to use as the name for the new Standard_V2 or WAF_V2 gateway. If this parameter isn't supplied, the name of your existing V1 gateway is used with the suffix *_V2* appended.
143-
* **AppGwResourceGroupName: [String]: Optional**. Name of resource group where you want V2 Application Gateway resources to be created (default value is `<V1-app-gw-rgname>`)
142+
* **AppGWResourceGroupName: [String]: Optional**. Name of resource group where you want V2 Application Gateway resources to be created (default value is `<V1-app-gw-rgname>`)
144143
> [!NOTE]
145-
> Ensure that there is no existing Application gateway with the provided Appgw V2 Name and Resource group name in V1 subscription. This will rewrite the existing resources.
144+
> Ensure that there's no existing Application gateway with the provided AppGW V2 Name and Resource group name in V1 subscription. This rewrites the existing resources.
146145
* **sslCertificates: [PSApplicationGatewaySslCertificate]: Optional**. A comma-separated list of PSApplicationGatewaySslCertificate objects that you create to represent the TLS/SSL certs from your V1 gateway must be uploaded to the new V2 gateway. For each of your TLS/SSL certs configured for your Standard V1 or WAF V1 gateway, you can create a new PSApplicationGatewaySslCertificate object via the `New-AzApplicationGatewaySslCertificate` command shown here. You need the path to your TLS/SSL Cert file and the password.
147146
148147
This parameter is only optional if you don't have HTTPS listeners configured for your V1 gateway or WAF. If you have at least one HTTPS listener setup, you must specify this parameter.
@@ -192,11 +191,11 @@ To run the script:
192191
193192
To create a list of PSApplicationGatewayTrustedRootCertificate objects, see [New-AzApplicationGatewayTrustedRootCertificate](/powershell/module/Az.Network/New-AzApplicationGatewayTrustedRootCertificate).
194193
* **privateIpAddress: [String]: Optional**. A specific private IP address that you want to associate to your new V2 gateway. This must be from the same VNet that you allocate for your new V2 gateway. If this isn't specified, the script allocates a private IP address for your V2 gateway.
195-
* **publicIpResourceId: [String]: Optional**. The resourceId of existing public IP address (standard SKU) resource in your subscription that you want to allocate to the new V2 gateway.If public Ip resource name is provided, ensure that it exists in succeeded state.
196-
If this isn't specified, the script allocates a new public IP in the same resource group. The name is the V2 gateway's name with *-IP* appended.If AppGwResourceGroupName is provided and public IP is not provided ensure that public IP resource with name AppGwV2Name-IP doesn’t exist in a resourcegroup with the name AppGwResourceGroupName in the V1 subscription
194+
* **publicIpResourceId: [String]: Optional**. The resourceId of existing public IP address (standard SKU) resource in your subscription that you want to allocate to the new V2 gateway. If public Ip resource name is provided, ensure that it exists in succeeded state.
195+
If this isn't specified, the script allocates a new public IP address in the same resource group. The name is the V2 gateway's name with *-IP* appended. If AppGWResourceGroupName is provided and a public IP address is not provided, ensure that public IP resource with name AppGWV2Name-IP doesn’t exist in a resource group with the name AppGWResourceGroupName in the V1 subscription.
197196
198-
* **validateMigration: [switch]: Optional**. Use this parameter if you want the script to do some basic configuration comparison validations after the V2 gateway creation and the configuration copy. By default, no validation is done.
199-
* **enableAutoScale: [switch]: Optional**. Use this parameter if you want the script to enable autoscaling on the new V2 gateway after it's created. By default, autoscaling is disabled. You can always manually enable it later on the newly created V2 gateway.
197+
* **validateMigration: [switch]: Optional**. Use this parameter to enable the script to do some basic configuration comparison validations after the V2 gateway creation and the configuration copy. By default, no validation is done.
198+
* **enableAutoScale: [switch]: Optional**. Use this parameter to enable the script to enable autoscaling on the new V2 gateway after it's created. By default, autoscaling is disabled. You can always manually enable it later on the newly created V2 gateway.
200199
201200
5. Run the script using the appropriate parameters. It may take five to seven minutes to finish.
202201
@@ -207,7 +206,7 @@ To run the script:
207206
-resourceId /subscriptions/8b1d0fea-8d57-4975-adfb-308f1f4d12aa/resourceGroups/MyResourceGroup/providers/Microsoft.Network/applicationGateways/myv1appgateway `
208207
-subnetAddressRange 10.0.0.0/24 `
209208
-appgwname "MynewV2gw" `
210-
-AppGwResourceGroupName "MyResourceGroup" `
209+
-AppGWResourceGroupName "MyResourceGroup" `
211210
-sslCertificates $mySslCert1,$mySslCert2 `
212211
-trustedRootCertificates $trustedCert `
213212
-privateIpAddress "10.0.0.1" `
@@ -225,6 +224,7 @@ To run the script:
225224
* If you have FIPS mode enabled for your V1 gateway, it isn't migrated to your new V2 gateway. FIPS mode isn't supported in V2.
226225
* If you have a Private IP only V1 gateway, the script generates a private and public IP address for the new V2 gateway. The Private IP only V2 gateway is currently in public preview. Once it becomes generally available, customers can utilize the script to transfer their private IP only V1 gateway to a private IP only V2 gateway.
227226
* NTLM and Kerberos authentication isn't supported by Application Gateway V2. The script is unable to detect if the gateway is serving this type of traffic and may pose as a breaking change from V1 to V2 gateways if run.
227+
* WAFv2 is created in old WAF config mode; migration to WAF policy is required.
228228

229229
## Traffic migration
230230

0 commit comments

Comments
 (0)