Mettre à niveau des adresses IP publiques attachées à une machine virtuelle du niveau De base à Standard

Important

Le 30 septembre 2025, les adresses IP publiques SKU de base seront mises hors service. Pour plus d’informations, consultez l’annonce officielle. Si vous utilisez actuellement des adresses IP publiques SKU de base, veillez à effectuer une mise à niveau vers des adresses IP publiques SKU standard avant la date de mise hors service. Cet article vous guide tout au long du processus de mise à niveau.

Si vous souhaitez en savoir plus sur la mise hors service des adresses IP publiques de référence SKU De base et sur les avantages des adresses IP publiques de référence SKU Standard, veuillez cliquer ici

Présentation de la mise à niveau

Ce script met à niveau toutes les adresses IP publiques attachées à la machine virtuelle de la référence SKU De base vers la référence SKU Standard. Pour effectuer la mise à niveau, la méthode d’allocation d’adresses IP publiques est définie sur statique avant que l’adresse publique soit dissociée de la machine virtuelle. Une fois l’adresse publique dissociée, la référence SKU IP publique est mise à niveau vers Standard, puis l’adresse IP est de nouveau associée à la machine virtuelle.

L’allocation d’adresses IP publiques est définie sur « Statique » avant que l’adresse IP soit dissociée de la machine virtuelle. Par conséquent, l’adresse IP ne change pas pendant le processus de mise à niveau, même en cas de défaillance de script. Le module vérifie deux fois que la méthode d’allocation d’adresses IP publiques est « Statique » avant de détacher l’adresse IP publique de la machine virtuelle.

Le module journalise toutes les activités de mise à niveau dans un fichier nommé PublicIPUpgrade.log, créé à l’emplacement où le module a été exécuté (par défaut).

Contraintes/scénarios non pris en charge

  • Machines virtuelles avec cartes réseau associées à un équilibreur de charge : les références SKU de l’équilibreur de charge et de l’adresse IP publique associées à une machine virtuelle doivent correspondre. Par conséquent, vous ne pouvez pas mettre à niveau les adresses IP publiques de niveau instance associées à une machine virtuelle lorsque les cartes réseau de cette machine virtuelle sont également associées à un équilibreur de charge, par l’appartenance au pool principal ou au pool NAT. Utilisez les scripts Mettre à niveau un équilibreur de charge de base vers la référence SKU standard pour mettre à niveau l’équilibreur de charge et les adresses IP publiques en même temps.

  • Machines virtuelles sans groupe de sécurité réseau : les machines virtuelles avec des adresses IP à mettre à niveau doivent avoir un groupe de sécurité réseau (NSG) associé au sous-réseau de chaque configuration IP avec une adresse IP publique ou associé directement à la carte réseau. Effectivement, les adresses IP publiques de référence SKU Standard sont « sécurisées par défaut ». En d’autres termes, tout trafic vers l’adresse IP publique doit être explicitement autorisé au niveau d’un groupe de sécurité réseau pour atteindre la machine virtuelle. Les adresses IP publiques de référence SKU De base autorisent tout trafic par défaut. La mise à niveau des références SKU d’adresses IP publiques sans groupe de sécurité réseau entraînerait un blocage après migration du trafic Internet entrant vers l’adresse IP publique précédemment autorisée avec le blocage de la référence SKU De base. Si vous souhaitez en savoir plus, veuillez consulter la rubrique : Références SKU d’adresses IP publiques

  • Groupes de machines virtuelles identiques avec des configurations IP publiques : si vous avez un groupe de machines virtuelles identiques (modèle uniforme) avec des configurations IP publiques par instance, notez que ces configurations ne sont pas des ressources IP publiques et, par conséquent, qu’elles ne peuvent pas être mises à niveau. Au lieu de cela, vous pouvez supprimer la configuration IP De base, puis utiliser la propriété SKU pour spécifier que les configurations IP Standard sont requises pour chaque instance de groupe de machines virtuelles identiques comme indiqué ici.

Prérequis

  • Installer la version la plus récente de PowerShell
  • Vérifiez si le dernier module Az PowerShell est installé (puis installez le dernier module Az PowerShell si ce n’est pas le cas).

Télécharger le script

Téléchargez le script de migration à partir de PowerShell Gallery.

PS C:\> Install-Module -Name AzureVMPublicIPUpgrade -Scope CurrentUser -Repository PSGallery -Force

Utiliser le module

  1. Utilisez Connect-AzAccount pour vous connecter au tenant Microsoft Entra et à l’abonnement Azure demandés

    PS C:\> Connect-AzAccount -Tenant <TenantId> -Subscription <SubscriptionId>
    
  2. Recherchez la machine virtuelle avec les adresses IP publiques De base attachées que vous souhaitez mettre à niveau. Enregistrez son nom et son nom de groupe de ressources.

  3. Examinez les paramètres du module :

    • VMName [chaîne] obligatoire : ce paramètre est le nom de votre machine virtuelle.
    • ResourceGroupName [chaîne] obligatoire : ce paramètre est le groupe de ressources de votre machine virtuelle avec les adresses IP publiques De base attachées à mettre à niveau.
  4. Exécutez la commande Mettre à niveau.

Exemples d’utilisations du script

Pour mettre à niveau une seule machine virtuelle, transmettez le nom de la machine virtuelle et le nom du groupe de ressources en tant que paramètres.

    Start-VMPublicIPUpgrade -VMName 'myVM' -ResourceGroupName 'myRG'

Pour évaluer la mise à niveau d’une seule machine virtuelle, sans apporter de modifications, ajoutez le paramètre -WhatIf.

    Start-VMPublicIPUpgrade -VMName 'myVM' -ResourceGroupName 'myRG' -WhatIf

Pour mettre à niveau toutes les machines virtuelles d’un groupe de ressources, ignorez les machines virtuelles qui n’ont pas de groupes de sécurité réseau.

    Get-AzVM -ResourceGroupName 'myRG' | Start-VMPublicIPUpgrade -skipVMMissingNSG

Récupération après un échec de la mise à niveau

Si une migration échoue en raison d’un problème temporaire, tel qu’une panne réseau ou un problème de système client, vous pouvez réexécuter la migration pour configurer la machine virtuelle et les adresses IP publiques à l’état d’objectif. Lors de l’exécution, le script génère un fichier journal de récupération, qui sert à vérifier que la machine virtuelle est correctement reconfigurée. Révisez le fichier journal PublicIPUpgrade.log créé à l’emplacement où le script a été exécuté.

Pour récupérer après un échec de mise à niveau, transmettez le chemin d’accès au fichier journal de récupération au script avec le paramètre -recoverFromFile, puis identifiez la machine virtuelle à récupérer avec les paramètres -VMName et -VMResourceGroup ou -VMResourceID, comme illustré dans cet exemple.

    Start-VMPublicIPUpgrade -RecoverFromFile ./PublicIPUpgrade_Recovery_2020-01-01-00-00.csv -VMName myVM -VMResourceGroup -rg-myrg

Questions courantes

Combien de temps la migration prendra-t-elle et combien de temps ma machine virtuelle sera-t-elle inaccessible à son adresse IP publique ?

Le temps nécessaire à la mise à niveau des adresses IP publiques d’une machine virtuelle dépend du nombre d’adresses IP publiques et d’interfaces réseau associées à la machine virtuelle. Lors du test, la mise à niveau d’une machine virtuelle avec une seule carte réseau et une seule adresse IP publique prend entre 1 et 2 minutes. Chaque carte réseau de la machine virtuelle ajoute environ une minute, puis chaque adresse IP publique ajoute quelques secondes.

Puis-je restaurer une adresse IP publique de référence SKU De base ?

Vous ne pouvez pas passer à une version antérieure d’une adresse IP publique de Standard à De base.

Puis-je tester une migration avant de l’exécuter ?

Il n’existe aucun moyen d’évaluer la mise à niveau d’une adresse IP publique sans effectuer l’action. Toutefois, ce script inclut un paramètre -whatif qui vérifie que votre machine virtuelle prendra en charge la mise à niveau, puis décrit les étapes sans action.

Le script prend-il en charge les adresses IP publiques de la référence SKU De base Zonal ?

Oui, le processus de mise à niveau d’une adresse IP publique de référence SKU De base Zonal vers une adresse IP publique de référence SKU Standard Zonal est identique et fonctionne dans le script.

Utiliser Resource Graph pour répertorier les machines virtuelles avec des adresses IP publiques nécessitant une mise à jour

Faire une recherche pour lister les machines virtuelles ayant des adresses IP publiques avec SKU de base

Cette requête retourne une liste d’ID de machine virtuelle avec des adresses IP publiques de référence SKU de base attachées.

Resources
| where type =~ 'microsoft.compute/virtualmachines'
| project vmId = tolower(id), vmNics = properties.networkProfile.networkInterfaces
| join (
  Resources |
  where type =~ 'microsoft.network/networkinterfaces' |
  project nicVMId = tolower(tostring(properties.virtualMachine.id)), allVMNicID = tolower(id), nicIPConfigs = properties.ipConfigurations)
  on $left.vmId == $right.nicVMId
| join (
  Resources
  | where type =~ 'microsoft.network/publicipaddresses' and isnotnull(properties.ipConfiguration.id)
  | where sku.name == 'Basic' // exclude to find all VMs with Public IPs
  | project pipId = id, pipSku = sku.name, pipAssociatedNicId = tolower(tostring(split(properties.ipConfiguration.id, '/ipConfigurations/')[0])))
  on $left.allVMNicID == $right.pipAssociatedNicId
| project vmId, pipId, pipSku
az graph query -q "Resources | where type =~ 'microsoft.compute/virtualmachines' | project vmId = tolower(id), vmNics = properties.networkProfile.networkInterfaces | join (Resources | where type =~ 'microsoft.network/networkinterfaces' | project nicVMId = tolower(tostring(properties.virtualMachine.id)), allVMNicID = tolower(id), nicIPConfigs = properties.ipConfigurations) on \$left.vmId == \$right.nicVMId | join ( Resources | where type =~ 'microsoft.network/publicipaddresses' and isnotnull(properties.ipConfiguration.id) | where sku.name == 'Basic' | project pipId = id, pipSku = sku.name, pipAssociatedNicId = tolower(tostring(split(properties.ipConfiguration.id, '/ipConfigurations/')[0]))) on \$left.allVMNicID == \$right.pipAssociatedNicId | project vmId, pipId, pipSku"

Étapes suivantes