Déplacer une machine virtuelle (Classic) ou une instance de rôle Services cloud vers un autre sous-réseau à l’aide de PowerShellMove a VM (Classic) or Cloud Services role instance to a different subnet using PowerShell

Vous pouvez utiliser PowerShell pour déplacer vos machines virtuelles (Classic) d’un sous-réseau à un autre dans le même réseau virtuel.You can use PowerShell to move your VMs (Classic) from one subnet to another in the same virtual network (VNet). Les instances de rôle peuvent être déplacées en modifiant le fichier CSCFG au lieu d’utiliser PowerShell.Role instances can be moved by editing the CSCFG file, rather than using PowerShell.

Notes

Cet article explique comment déplacer des machines virtuelles déployées via le modèle de déploiement Classic uniquement.This article explains how to move VMs deployed through the classic deployment model only.

Pourquoi déplacer des ordinateurs virtuels vers un autre sous-réseau ?Why move VMs to another subnet? La migration entre sous-réseaux est utile quand le sous-réseau plus ancien est trop petit et ne peut pas être étendu en raison des machines virtuelles existantes exécutées dans ce sous-réseau.Subnet migration is useful when the older subnet is too small and cannot be expanded due to existing running VMs in that subnet. Dans ce cas, vous pouvez créer un sous-réseau plus grand et migrer les machines virtuelles vers le nouveau sous-réseau, puis, une fois la migration terminée, vous pouvez supprimer l’ancien sous-réseau vide.In that case, you can create a new, larger subnet and migrate the VMs to the new subnet, then after migration is complete, you can delete the old empty subnet.

Comment déplacer une machine virtuelle vers un autre sous-réseauHow to move a VM to another subnet

Pour déplacer une machine virtuelle, exécutez l’applet de commande PowerShell Set-AzureSubnet, en prenant exemple sur le modèle ci-dessous.To move a VM, run the Set-AzureSubnet PowerShell cmdlet, using the example below as a template. Dans l’exemple ci-dessous, nous déplaçons TestVM de son sous-réseau actuel vers Subnet-2.In the example below, we are moving TestVM from its present subnet, to Subnet-2. Assurez-vous de modifier l’exemple pour refléter votre environnement.Be sure to edit the example to reflect your environment. Notez que chaque fois que vous exécutez l’applet de commande Update-AzureVM dans une procédure, elle redémarre votre machine virtuelle dans le cadre du processus de mise à jour.Note that whenever you run the Update-AzureVM cmdlet as part of a procedure, it will restart your VM as part of the update process.

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

Si vous avez spécifié une adresse IP privée interne pour votre machine virtuelle, vous devrez effacer ce paramètre avant de déplacer la machine virtuelle vers un nouveau sous-réseau.If you specified a static internal private IP for your VM, you'll have to clear that setting before you can move the VM to a new subnet. Dans ce cas, utilisez ce qui suit :In that case, use the following:

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

Pour déplacer une instance de rôle vers un autre sous-réseauTo move a role instance to another subnet

Pour déplacer une instance de rôle, modifiez le fichier CSCFG.To move a role instance, edit the CSCFG file. Dans l’exemple ci-dessous, nous déplaçons « Role0 » dans le réseau virtuel VNETName de son sous-réseau actuel vers Subnet-2.In the example below, we are moving "Role0" in virtual network VNETName from its present subnet to Subnet-2. Étant donné que l’instance de rôle a déjà été déployée, vous devez juste modifier le nom du sous-réseau = Subnet-2.Because the role instance was already deployed, you'll just change the Subnet name = Subnet-2. Assurez-vous de modifier l’exemple pour refléter votre environnement.Be sure to edit the example to reflect your environment.

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