Azure Lei Zhang的博客

weibo: LeiZhang的微博/QQ: 185165016/QQ群:319036205/邮箱:leizhang1984@outlook.com/TeL:139-161-22926

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  390 随笔 :: 0 文章 :: 394 评论 :: 0 引用

  《Windows Azure Platform 系列文章目录

  

  本文参考了Git Hub的ARM Template:

  https://github.com/Azure/azure-quickstart-templates/blob/master/201-vm-specialized-vhd-existing-vnet/azuredeploy.json

  但是Git Hub上的Template不包含Availability Set

 

 

  笔者修改了这个Template,可以设置高可用集Availability Set:

  https://github.com/leizhang1984/AzureChinaPowerShell/tree/master/ARM/VMSpecializedVHD

 

 

  在很多时候,我们需要从Classic VM的操作系统盘的VHD文件,创建新的ARM VM。

  这里的关键步骤如下:

  1.创建Classic VM,并获得OS Disk的VHD路径

  2.通过ARM Portal: https://portal.azure.cn,创建新的

  -  Azure ARM Resource Group

  -  ARM Storage Account

  -  ARM Virtual Network和Subnet

  3.如果Classic VM是开机状态,请用AzCopy工具,把OS Disk和Data Disk的VHD文件,拷贝到同一个存储账号(Classic Storage)的不同Container下。

  然后把VHD从Classic Storage Account,拷贝到ARM Storage Account

  4.如果Classic VM是关机状态,请直接用AzCopy工具,把OS Disk和Data Disk的VHD文件,拷贝到ARM Storage Account里

  5.运行Azure PowerShell,执行Template Deployment

  

  接下来开始本节的内容

  1.首先我们在ASM模式下(https://manage.windowsazure.cn),创建新的Azure Classic VM。步骤略。

  2.查看这个Classic VM的OS Disk和Data Disk,如下图红色部分:

  

  3.通过ARM Portal: https://portal.azure.cn,创建新的

  -  Azure ARM Resource Group

  -  ARM Storage Account

  -  ARM Virtual Network和Subnet

  4.为了方便拷贝VHD,我们先把虚拟机关机。(注意关机前请先绑定固定VIP和内网DIP)

  5.使用AzCopy工具,把OS Disk和Data Disk的VHD文件,拷贝到ARM Storage Account里。图略。

  6.拷贝完毕后,我们需要修改相应的ARM Template

  https://github.com/leizhang1984/AzureChinaPowerShell/tree/master/ARM/VMSpecializedVHD

  

  7.Git Hub中的azuredeploy.json,不需要修改

  8.Git Hub中的azuredeploy.parameters.json,进行以下修改:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "dnsNameForPublicIP": {
            //必须为小写
            "value": "leiarmvmpublicip"
        },
        "existingVirtualNetworkName": {
            //虚拟网络名称,手动预选创建好
            "value": "LeiARMVNet"
        },
        "existingVirtualNetworkResourceGroup": {
            //ARM模式下,Resource Group名称
            "value": "LeiARMRG"
        },
        "subnetName": {
            //ARM 模式下,虚拟网络子网名称
            "value": "subnet-1"
        },

        "osDiskVhdUri": {
            //操作系统的VHD文件
            "value": "https://leiarmstorage.blob.core.chinacloudapi.cn/vhds/LeiASMWeb01-LeiASMWeb01-2017-03-27.vhd"
        },
        "vmName": {
            //虚拟机名称
           "value": "LeiARMVMWeb01"
        },
        "osType": {
            //操作系统类型
            "value": "Windows"
        },
        "vmSize": {
            //虚拟机实例大小
            "value": "Standard_D1_V2"
        },
        "diagStorageAccountName":{
            //diag 用的Storage Account Name,必须为小写
            //可以与osDiskVhdUri所在的Storage Account Name相同
             "value": "leiarmstoragediag"
        },
         "availabilitySetName":{
            //高可用集名称
             "value": "Web-AvbSet"
        }
    }
} 

 

 

  10.运行Azure PowerShell,进行验证:

#Login Azure China Cloud
Add-AzureRmAccount -EnvironmentName AzureChinaCloud;

# 选择Azure China 订阅ID
Select-AzureRmSubscription -SubscriptionID '[订阅ID]'

#执行Azure Deploy
New-AzureRmResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName LeiARMRG -Mode Incremental -TemplateFile 'D:\vmforuserimage\azuredeploy.json' -TemplateParameterFile 'D:\vmforuserimage\azuredeploy.parameters.json'

 

  11.执行完毕后,会进行ARM Storage Account的VHD文件,新建新的ARM VM中。如下:

  

 

  

posted on 2016-12-05 15:40 Lei Zhang的博客 阅读(...) 评论(...) 编辑 收藏