Mover um VM (Clássico) ou Serviços Cloud instância de função para uma sub-rede diferente usando PowerShell

Pode utilizar o PowerShell para mover os seus VMs (Classic) de uma sub-rede para outra na mesma rede virtual (VNet). As instâncias de função podem ser movidas através da edição do ficheiro CSCFG, em vez de utilizar o PowerShell.

Nota

Este artigo explica como mover VMs implantados apenas através do modelo de implementação clássico.

Porquê mover VMs para outra sub-rede? A migração da sub-rede é útil quando a sub-rede mais antiga é demasiado pequena e não pode ser expandida devido aos VM existentes nessa sub-rede. Nesse caso, pode criar uma nova sub-rede maior e migrar os VMs para a nova sub-rede, depois de a migração estar completa, pode eliminar a antiga sub-rede vazia.

Como mover um VM para outra sub-rede

Para mover um VM, executar o Set-AzureSubnet powerShell cmdlet, utilizando o exemplo abaixo como um modelo. No exemplo abaixo, estamos a mover o TestVM da sua atual sub-rede para a Subnet-2. Não se esqueça de editar o exemplo para refletir o seu ambiente. Note que sempre que executar o Update-AzureVM cmdlet como parte de um procedimento, reiniciará o seu VM como parte do processo de atualização.

Get-AzureVM –ServiceName TestVMCloud –Name TestVM `
| Set-AzureSubnet –SubnetNames Subnet-2 `
| Update-AzureVM

Se especificou um IP interno estático para o seu VM, terá de limpar essa definição antes de poder mover o VM para uma nova sub-rede. Nesse caso, utilize o seguinte:

Get-AzureVM -ServiceName TestVMCloud -Name TestVM `
| Remove-AzureStaticVNetIP `
| Update-AzureVM
Get-AzureVM -ServiceName TestVMCloud -Name TestVM `
| Set-AzureSubnet -SubnetNames Subnet-2 `
| Update-AzureVM

Para mover uma instância de papel para outra sub-rede

Para mover uma instância de função, edite o ficheiro CSCFG. No exemplo abaixo, estamos a mover "Role0" em rede virtual VNETName da sua atual sub-rede para a Subnet-2. Como a instância de função já estava implantada, vais apenas alterar o nome subnet = Subnet-2. Não se esqueça de editar o exemplo para refletir o seu ambiente.

<NetworkConfiguration>
    <VirtualNetworkSite name="VNETName" />
    <AddressAssignments>
       <InstanceAddress roleName="Role0">
            <Subnets><Subnet name="Subnet-2" /></Subnets>
       </InstanceAddress>
    </AddressAssignments>
</NetworkConfiguration>