Introdução

Hoje vou demostrar a vocês como migrar sua máquina virtual de ASM (Azure Service Management) para o ambiente em ARM (Azure Resource Manager) utilizando apenas a imagem do VHD. Nessa nova estrutura o serviço de IAAS ficou mais completo e maleável na criação, você pode criar uma máquina virtual com duas placas de rede e mover essa mesma placa de rede para outra máquina, sem ter que criar tudo novamente. Essa liberdade de movimentação de recurso entre as máquinas virtuais tem facilitado muito o serviço de administração do Azure.

O modelo de ASM era muito fechado ao contrario do modelo em ARM, como podemos ver na figura abaixo:



Para iniciar o processo de migração vamos precisar de uma ferramenta chamada "Microsoft Azure Storage Explorer", para fazer o download clique aquiEssa ferramenta você loga com seu usuário adminstrador de seu ambiente e por lá você vai ver todos os storages. Ela vai servir para fazer a movimentação dos VHDs.


Após a instalação do Microsoft Azure Storage Explorer, vamos escolher a máquina virtual que iremos migrar.

Vou escolher a máquina DC-07.



Executando Sysprep e Captura de Imagem


Em seguida vamos executar o "Sysprep" logue no servidor e abra o "CMD" como administrador execute o seguinte comando.


%windir%\system32\sysprep



Agora execute o "Sysprep"



Após executar o sysprep no "System Cleanup Action", selecione o "Enter System Out-of-Box Experience (OOBE)" e marque o "Generalize" e o "ShutDown".


Aguarde o termino do sysprep.


Após a finalização do sysprep a máquina virtual vai se encontrar desligada, agora vamos capturar a imagem. Clique em "Capturar



Agora vamos dar um nome para essa imagem que foi criada e clique em ok, aguarde o processo de captura da máquina.



Depois da captura vamos verificar se a imagem foi realmente capturada, vá em imagens.



Pronto, a imagem foi criada.


Copiando VHD entre Storage


Agora vamos utilizar o "Microsoft Azure Storage Explorer" para migrar o VHD entre os Storages no ambiente em ASM para ARM, após logar na ferramenta iremos ir até o Storage que está a imagem que geramos.

Agora vamos Copiar o VHD do Storage em ASM.



Em seguida vamos Colar o VHD no Storage em ARM, o tempo de copia vai depender do tamanho de cada VHD.



aguarde o tempo da copia. 



Pronto o VHD foi copiado com sucesso entre os Storages.



Criando Placa de Rede


Agora vamos criar uma placa de rede para adicionar na máquina virtual, como estamos migrando o VHD vamos adicionar essa máquina dentro de uma rede valida. 

Agora vamos escolher o "Resource Group" onde vamos configurar a placa de rede, clique em "Add"



Agora vamos escolher a "Interface Network" .



Agora clique em "Create".


Agora vamos criar a placa de rede com os seguintes parâmetros:

  • 1 - Vamos adicionar um nome para a placa de rede, para ficar com um padrão correto coloque o nome da placa de rede com o mesmo no do servidor.
  • 2 - Selecione sua Virtual Network.
  • 3 - Selecione sua Subnet, caso tenha outras Subnet FrontEnd, BackEnd, DMZ.
  • - Caso queria fixar o IP da sua rede privada pode fixar, por default ele fica como dinâmico.
  • 5 - Caso tenha algum grupo de segurança já configura pode selecionar.
  • 6 - Selecione a assinatura que está utilizando no seu ambiente.
  • 7 - Selecione o Resource Group que a máquina virtual vai ser implementada.
  • - Após selecionar todas as opções, clique em create.



Assim que finalizar a criação da placa de rede, vamos na "Properties" da placa de rede e iremos copiar o "Resource ID" para utilizar ele no script de implantação. 



Pronto já estamos com a placa de rede criada.


Criando Template Deployment

 


Agora vamos configurar o script para fazer o deploy da máquina virtual, dentro do "Resource Group"  procure o "Template Deployment



Em seguida clique em Create.



Agora vamos editar o template e "Edit Template".



Agora vamos adicionar o script abaixo, para baixar o script clique aqui.



Observação: Altere os parâmetros em vermelho, em seguida clique em "Save"

{

  "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/VM_IP.json", 

  "contentVersion": "1.0.0.0",

  "parameters": {

    "vmName": {

      "type": "string"

    },

    "vmSize": {

      "type": "string",

      "defaultValue": "Standard_A3" #Selecione qual a VM e o tamanho.

    },

    "adminUserName": {

      "type": "string"

    },

    "adminPassword": {

      "type": "securestring"

    },

    "networkInterfaceId": {

      "type": "string"

    }

  },

  "resources": [

    {

      "apiVersion": "2016-03-30",

      "properties": {

        "hardwareProfile": {

          "vmSize": "[parameters('vmSize')]"

        },

        "storageProfile": {

          "osDisk": {

            "osType": "Windows", #Selecione se Windows ou Linux.

            "name": "DC-07-OS", #Coloque o nome da VM.

            "createOption": "FromImage",

            "image": {

              "uri": "https://strjatoba.blob.core.windows.net/vhds/DC-07-Migracao-os-2016-10-02-1A89A570.vhd" #Caminho do Storage com a Imagem que foi criada.

            },

            "vhd": {

              "uri": "https://strjatoba.blob.core.windows.net/vhds/DC-07-OS.vhd" #Caminho do Storage com o nome do disco, coloque o mesmo nome da VM.

            },

            "caching": "ReadWrite"

          } 

        },

        "osProfile": {

          "computerName": "[parameters('vmName')]",

          "adminUsername": "[parameters('adminUsername')]",

          "adminPassword": "[parameters('adminPassword')]"

        },

        "networkProfile": {"networkInterfaces":[{"id":"[parameters('networkInterfaceId')]"}]},

        "diagnosticsProfile": {

          "bootDiagnostics": {

            "enabled": true,

            "storageUri": "https://strjatoba.blob.core.windows.net" #Caminho do Storage.

          }

        },

        "provisioningState": 0

      },

      "name": "[parameters('vmName')]",

      "type": "Microsoft.Compute/virtualMachines",

      "location": "eastus2"

    }

  ]

}



Agora vamos editar os parâmetros.



Agora vamos adicionar as seguintes informações, nome da máquina virtual, o tamanho da máquina virtual, o usuário e senha do administrador da máquina e vamos adicionar o "Resource ID" da placa de rede que copiamos acima.


Clique em "Ok"



Agora selecione a assinatura, resource group e por ultimo aceite o termo do template deployment. 

Clique em "Create"



Agora é só aguardar o deploy da máquina virtual.



Pronto a máquina virtual foi criada com sucesso.


Credits:

This document was originally published as http://www.micheljatoba.com.br/2016/10/migrando-vhd-existente-de-asm-para-arm.html  and has been reproduced here to allow the community to correct any inaccuracies or provide other improvements until you update the original version of this topic.