You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/application-gateway/migrate-v1-v2.md
+23-23Lines changed: 23 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
1
---
2
2
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.
4
4
services: application-gateway
5
5
author: greg-lindsay
6
6
ms.service: application-gateway
7
7
ms.custom: devx-track-azurepowershell
8
8
ms.topic: how-to
9
-
ms.date: 08/01/2023
9
+
ms.date: 02/26/2024
10
10
ms.author: greglin
11
11
---
12
12
@@ -31,19 +31,19 @@ This article primarily helps with the configuration migration. Client traffic mi
31
31
* An existing Application Gateway V1 Standard.
32
32
* Make sure you have the latest PowerShell modules, or you can use Azure Cloud Shell in the portal.
33
33
* 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.
>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.
44
44
45
45
> [!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.
47
47
48
48
## Configuration migration
49
49
@@ -54,7 +54,7 @@ An Azure PowerShell script is provided in this document. It performs the followi
54
54
55
55
## Downloading the script
56
56
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.
58
58
59
59
60
60
## Using the script
@@ -70,8 +70,7 @@ There are two options for you depending on your local PowerShell environment set
70
70
71
71
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.
72
72
73
-
#### Install using the Install-Script method
74
-
73
+
#### Install using the Install-Script method (recommended)
75
74
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.
76
75
77
76
Run the script with the following command to get the latest version:
@@ -83,12 +82,12 @@ This command also installs the required Az modules.
83
82
#### Install using the script directly
84
83
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).
85
84
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.
87
86
88
87
#### How to check the version of the downloaded script
89
88
To check the version of the downloaded script the steps are as follows:
90
89
* 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
92
91
```
93
92
<#PSScriptInfo
94
93
.VERSION 1.0.10
@@ -107,26 +106,26 @@ To run the script:
107
106
108
107
2. Use `Import-Module Az` to import the Az modules.
109
108
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.
4. Run `Get-Help AzureAppGWMigration.ps1` to examine the required parameters:
115
114
116
115
```
117
-
AzureAppGwMigration.ps1
116
+
AzureAppGWMigration.ps1
118
117
-resourceId <V1 application gateway Resource ID>
119
118
-subnetAddressRange <subnet space you want to use>
120
119
-appgwName <string to use to append>
121
-
-AppGwResourceGroupName <resource group name you want to use>
120
+
-AppGWResourceGroupName <resource group name you want to use>
122
121
-sslCertificates <comma-separated SSLCert objects as above>
123
122
-trustedRootCertificates <comma-separated Trusted Root Cert objects as above>
124
123
-privateIpAddress <private IP string>
125
124
-publicIpResourceId <public IP name string>
126
125
-validateMigration -enableAutoScale
127
126
```
128
127
> [!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.
130
129
131
130
Parameters for the script:
132
131
***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:
140
139
141
140
* **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).
142
141
* **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>`)
144
143
> [!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.
146
145
* **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.
147
146
148
147
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:
192
191
193
192
To create a list of PSApplicationGatewayTrustedRootCertificate objects, see [New-AzApplicationGatewayTrustedRootCertificate](/powershell/module/Az.Network/New-AzApplicationGatewayTrustedRootCertificate).
194
193
* **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.
197
196
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.
200
199
201
200
5. Run the script using the appropriate parameters. It may take five to seven minutes to finish.
* 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.
226
225
* 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.
227
226
* 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.
0 commit comments