以下步骤演示如何使用 Azure 命令行接口 (CLI) 命令将基础结构即服务 (IaaS) 资源从经典部署模型迁移到 Azure Resource Manager 部署模型。 本文中的操作需要 Azure CLI

Note

此处描述的所有操作都是幂等的。 如果你遇到功能不受支持或配置错误以外的问题,建议你重试准备、中止或提交操作。 然后平台将重试操作。

下面是一个流程图,用于确定在迁移过程中需要执行步骤的顺序

步骤 1:准备迁移

下面是建议你在将 IaaS 资源从经典部署模型迁移到 Resource Manager 部署模型时遵循的一些最佳实践:

  • 请参阅不受支持的配置或功能的列表。 如果虚拟机使用不受支持的配置或功能,建议你等到我们宣布支持该功能/配置时再进行迁移。 或者,可以删除该功能或移出该配置,以利迁移进行(如果这样做符合要求)。
  • 如果你通过自动化脚本来部署目前的基础结构和应用程序,则可尝试使用这些脚本进行迁移,以便创建类似的测试性设置。 也可以使用 Azure 门户设置示例环境。
Important

目前不支持通过应用程序网关从经典部署模型迁移到 Resource Manager 部署模型。 若要迁移带应用程序网关的经典虚拟网络,请先删除该网关,然后运行准备操作来移动网络。 完成迁移后,在 Azure Resource Manager 中重新连接该网关。

无法自动迁移其他订阅中连接到 ExpressRoute 线路的 ExpressRoute 网关。 此类情况下,请删除 ExpressRoute 网关、迁移虚拟网络并重新创建网关。 有关详细信息,请参阅将 ExpressRoute 线路和关联的虚拟网络从经典部署模型迁移到 Resource Manager 部署模型

步骤 2:设置订阅并注册提供程序

对于迁移方案,需要针对经典部署模型和 Resource Manager 部署模型设置环境。 安装 Azure CLI 并选择订阅

登录到帐户。

复制
azure login -e AzureChinaCloud

使用以下命令选择 Azure 订阅。

复制
azure account set "<azure-subscription-name>"
Note

注册是一次性步骤,但必须在尝试迁移之前完成。 如果不注册,你会看到以下错误消息

BadRequest : Subscription is not registered for migration.

使用以下命令向迁移资源提供程序注册。 请注意,在某些情况下,此命令会超时。 但是,注册会成功。

复制
azure provider register Microsoft.ClassicInfrastructureMigrate

请等五分钟让注册完成。 可以使用以下命令来检查审批状态。 请确保在继续操作之前,RegistrationState 为 Registered 。

复制
azure provider show Microsoft.ClassicInfrastructureMigrate

现在请将 CLI 切换到 asm 模式。

复制
azure config mode asm

步骤 3:请确保在当前部署或 VNET 的 Azure 区域中有足够的 Azure Resource Manager 虚拟机核心

要执行此步骤,需要切换到 arm 模式。 使用以下命令执行此操作。

复制
azure config mode arm

可以使用以下 CLI 命令检查当前 Azure Resource Manager 中已有的核心数量。 若要了解有关核心配额的详细信息,请参阅限制和 Azure Resource Manager

复制
azure vm list-usage -l "<Your VNET or Deployment's Azure region"

验证完此步骤后,可以切换回 asm 模式。

复制
azure config mode asm

步骤 4:选项 1 - 迁移云服务中的虚拟机

使用以下命令获取云服务列表,然后选取要迁移的云服务。 请注意,如果云服务中的 VM 在虚拟网络中或者具有 Web/辅助角色,你将收到错误消息。

复制
azure service list

运行以下命令,从详细输出中获取云服务的部署名称。 在大多数情况下,部署名称与云服务名称相同。

复制
azure service show <serviceName> -vv

首先,使用以下命令验证用户是否可以迁移云服务:

shell复制
azure service deployment validate-migration <serviceName> <deploymentName> new "" "" ""

准备迁移云服务中的虚拟机。 可以从两个选项中进行选择。

如果你想要将 VM 迁移到平台所创建的虚拟网络上,请使用以下命令。

复制
azure service deployment prepare-migration <serviceName> <deploymentName> new "" "" ""

如果你想要迁移到 Resource Manager 部署模型中的现有虚拟网络,请使用以下命令。

复制
azure service deployment prepare-migration <serviceName> <deploymentName> existing <destinationVNETResourceGroupName> <subnetName> <vnetName>

准备操作成功后,可以查看详细输出,以获取 VM 的迁移状态,并确保其处于 Prepared 状态。

复制
azure vm show <vmName> -vv

使用 CLI 或 Azure 门户查看准备好的资源的配置。 如果你尚未做好迁移准备,因此想要回到旧的状态,请使用以下命令。

复制
azure service deployment abort-migration <serviceName> <deploymentName>

如果准备好的配置看起来没问题,则可继续进行,使用以下命令提交资源。

复制
azure service deployment commit-migration <serviceName> <deploymentName>

步骤 4:选项 2 - 迁移虚拟网络中的虚拟机

选取要迁移的虚拟网络。 请注意,如果虚拟网络包含的 Web/辅助角色或 VM 的配置不受支持,你将收到验证错误消息。

使用以下命令获取订阅中的所有虚拟网络。

复制
azure network vnet list

输出将如下所示:

在上面的示例中,virtualNetworkName 是完整名称 "Group classicubuntu16 classicubuntu16"。

首先,请使用以下命令验证用户是否可以迁移虚拟网络:

shell复制
azure network vnet validate-migration <virtualNetworkName>

使用以下命令来准备要迁移的所选虚拟网络。

复制
azure network vnet prepare-migration <virtualNetworkName>

使用 CLI 或 Azure 门户查看准备好的虚拟机的配置。 如果你尚未做好迁移准备,因此想要回到旧的状态,请使用以下命令。

复制
azure network vnet abort-migration <virtualNetworkName>

如果准备好的配置看起来没问题,则可继续进行,使用以下命令提交资源。

复制
azure network vnet commit-migration <virtualNetworkName>

步骤 5:迁移存储帐户

完成虚拟机迁移之后,建议你迁移存储帐户。

使用以下命令来准备要迁移的存储帐户

复制
azure storage account prepare-migration <storageAccountName>

使用 CLI 或 Azure 门户查看准备就绪的存储帐户的配置。 如果你尚未做好迁移准备,因此想要回到旧的状态,请使用以下命令。

复制
azure storage account abort-migration <storageAccountName>

如果准备好的配置看起来没问题,则可继续进行,使用以下命令提交资源。

复制
azure storage account commit-migration <storageAccountName>

后续步骤

使用 Azure CLI 将 IaaS 资源从经典部署模型迁移到 Azure Resource Manager 部署模型的更多相关文章

  1. 使用 Azure PowerShell 将 IaaS 资源从经典部署模型迁移到 Azure Resource Manager

    以下步骤演示了如何使用 Azure PowerShell 命令将基础结构即服务 (IaaS) 资源从经典部署模型迁移到 Azure Resource Manager 部署模型. 也可根据需要通过 Az ...

  2. 规划将 IaaS 资源从经典部署模型迁移到 Azure Resource Manager

    尽管 Azure 资源管理器提供了许多精彩功能,但请务必计划迁移,以确保一切顺利进行. 花时间进行规划可确保执行迁移活动时不会遇到问题. Note 以下指导的主要参与者为 Azure 客户顾问团队,以 ...

  3. 有关从经典部署模型迁移到 Azure Resource Manager 部署模型的常见问题

    此迁移计划是否影响 Azure 虚拟机上运行的任何现有服务或应用程序? 不可以. VM(经典)是公开上市的完全受支持的服务. 你可以继续使用这些资源来拓展你在 Azure 上的足迹. 如果我近期不打算 ...

  4. 排查在 Azure 中创建新 Linux 虚拟机时遇到的 Resource Manager 部署问题

    本文内容 常见问题 收集活动日志 问题:自定义映像:预配错误 问题:自定义/库/应用商店映像:分配失败 后续步骤 尝试创建新的 Azure 虚拟机 (VM) 时,遇到的常见错误是预配失败或分配失败. ...

  5. 将 ExpressRoute 线路从经典部署模型转移到 Resource Manager 部署模型

    本文概述将 Azure ExpressRoute 线路从经典部署模型转移到 Azure Resource Manager 部署模型的效果. Azure 当前使用两种部署模型:Resource Mana ...

  6. Azure SQL Database (21) 将整张表都迁移到Azure Stretch Database里

    <Windows Azure Platform 系列文章目录>  Azure SQL Database (19) Stretch Database 概览      Azure SQL Da ...

  7. 如何将同一云服务下的虚拟机从经典部署模型迁移到 Azure Resource Manager

    适用场景 用户希望将特定云服务下的所有虚拟机从经典部署模型(以下简称:ASM)迁移到 Azure Resource Manager(以下简称:ARM). Note 如果云服务下使用 VNET 也希望将 ...

  8. 如何将同一 VNET 下的虚拟机从经典部署模型迁移到 Azure Resource Manager

    本文内容 适用场景 解决方案 适用场景 用户拥有多个云服务但是在同一个 VNET 下,希望将这些虚拟机从经典部署模型(以下简称:ASM)迁移到 Azure Resource Manager(以下简称: ...

  9. Windows Azure Cloud Service (39) 如何将现有Web应用迁移到Azure PaaS平台

    <Windows Azure Platform 系列文章目录> 本文将简单介绍,如何将企业内现有的ASP.NET应用程序迁移到Azure PaaS平台. 因为在迁移过程中,可能需要对现有的 ...

随机推荐

  1. 使用vmtools来设置windows和linux的共享文件夹

    目的:通过vmtools来实现windows和linux的共享文件夹 步骤: 1.前提条件是vmtools已经安装 2.在windows任意磁盘新建一个共享文件夹 3.进入虚拟机->设置-> ...

  2. Dubbo的Api+Provider+Customer示例(IDEA+Maven+Springboot+dubbo)

    项目结构 dubbo-demo dubbo-api:提供api接口,一般存储实体类和接口服务 dubbo-provider:dubbo生产者提供服务,一般存储接口具体实现 dubbo-customer ...

  3. 集合 相关 深浅copy

    '' 集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复. {} ''' # set1 = set({1,2,3}) # set2 = {1,2,3,[2,3],{'name':' ...

  4. js面向对象(一)——封装

    想写这个好久了,自己当时理解这个确实费了一番功夫,现在记录一下,哪怕对读者有一点点帮助,我也很开心,看着不爽大胆喷吧,我脸皮可厚了,闲话不说了,进入正题 ----------------------- ...

  5. Python - 购物车代码 (账户登陆,用户个人清单存取,重要信息高亮显示)

    需要掌握open函数. 清单存取时,需要注意编码问题,直接在读取和存储时加上encoding = 'utf - 8' 可以解决gbk - unicode转化时出现的乱码问题. 码农一定要坚强,这份代码 ...

  6. 用PL/sql连接oracle 弹窗出现 could not resolve the connect identifier specified 这个错误

    1 错误如下图: 图1 2.可能原因: 配置oracle客户端中tnsnames.ora文件时,把数据库名弄错,如下图: 图2 箭头所指位置出错.箭头处应该为我们安装时的数据库名(通常是orcl).而 ...

  7. 设置开机自动运行vncserver

    a. 在/etc/rc.d/rc.local文件中加入下面行   /etc/init.d/vncserver startb. 编辑/etc/sysconfig/vncservers   VNCSERV ...

  8. Oracle TM锁和TX锁

    CREATE TABLE "TEST6" ( "ID" ), "NAME" ), "AGE" ,), "SEX ...

  9. 【Css】一个简单的图片库

    今天做一个简单的图片库! 其实这个在w3school教程里介绍得很好了,不过看到什么,自己动手做一次,记得也深刻不是. 我们分几步来走: 第一步:先写一个坯子. <html> <he ...

  10. python: local variable 'xxx' referenced before assignment

    问题发现 xxx = 23 def PrintFileName(strFileName): if xxx == 23: print strFileName xxx = 24 PrintFileName ...