Modifier

Supprimer les informations spécifiques à la machine en déprovisionnant ou en généralisant une machine virtuelle avant de créer une image

Attention

Cet article fait référence à CentOS, une distribution Linux proche de l’état EOL (End Of Life). Veuillez considérer votre utilisation et votre planification en conséquence.

Généraliser ou le déprovisionner une machine virtuelle n’est pas nécessaire pour créer une image dans Azure Compute Gallery, sauf si vous souhaitez spécifiquement créer une image sans informations spécifiques à la machine, comme des comptes d’utilisateur. La généralisation reste nécessaire lors de la création d’une image managée en dehors d’une galerie.

La généralisation supprime les informations spécifiques à la machine afin que l’image puisse être utilisée pour créer plusieurs machines virtuelles. Une fois la machine virtuelle généralisée ou déprovisionnée, vous devez l’indiquer à la plateforme afin que la séquence de démarrage puisse être définie correctement.

Important

Une fois une machine virtuelle marquée comme generalized dans Azure, vous ne pouvez pas la redémarrer.

Prérequis

Aucun

Linux

Des instructions spécifiques à la distribution pour préparer des images Linux pour Azure sont disponibles ici :

Les instructions suivantes ne couvrent que le paramétrage de la machine virtuelle sur généralisé. Nous vous recommandons de suivre les instructions spécifiques de distribution pour les charges de travail de production.

Commencez par déprovisionner la machine virtuelle à l’aide de l’agent de machine virtuelle Azure pour supprimer les fichiers et les données propres à la machine. Utilisez la commande waagent avec le paramètre -deprovision+user sur votre machine virtuelle Linux source. Pour plus d’informations, consultez le Guide d’utilisateur de l’agent Linux Azure. Ce processus est irréversible.

  1. Connectez-vous à votre machine virtuelle Linux avec un client SSH.

  2. Dans la fenêtre SSH, entrez la commande suivante :

       sudo waagent -deprovision+user
    

    Notes

    Exécutez uniquement cette commande sur une machine virtuelle que vous allez capturer en tant qu’image. Cette commande ne garantit pas que l’image est exempte de toute information sensible ou qu’elle convient pour la redistribution. Le paramètre +user supprime également le dernier compte d’utilisateur provisionné. Pour garder les informations d’identification du compte d’utilisateur dans la machine virtuelle, utilisez uniquement -deprovision.

  3. Tapez Y pour continuer. Vous pouvez ajouter le paramètre -force pour éviter cette étape de confirmation.

  4. Une fois la commande exécutée, entrez exit pour fermer le client SSH. La machine virtuelle est toujours en cours d’exécution à ce stade.

    Libérez la machine virtuelle que vous avez déprovisionnée avec az vm deallocate afin qu’elle puisse être généralisée.

    az vm deallocate \
       --resource-group myResourceGroup \
       --name myVM
    

    Ensuite, la machine virtuelle doit être marquée comme généralisée sur la plateforme.

    az vm generalize \
       --resource-group myResourceGroup \
       --name myVM
    

Windows

Sysprep supprime toutes vos informations de compte personnel et de sécurité, puis prépare la machine en vue de son utilisation en tant qu’image. Pour plus d’informations sur Sysprep, voir Vue d’ensemble de Sysprep.

Vérifiez que les rôles serveur exécutés sur la machine sont pris en charge par Sysprep. Pour plus d’informations, voir Prise en charge de Sysprep pour les rôles serveur et Scénarios non pris en charge.

Important

Après que vous avez exécuté Sysprep sur une machine virtuelle, celle-ci est considérée comme généralisée et ne peut plus être redémarrée. Le processus de généralisation d’une machine virtuelle n’est pas réversible. Si vous devez conserver le fonctionnement d’origine de la machine virtuelle, vous devez créer un instantané du disque du système d’exploitation, créer une machine virtuelle à partir de l’instantané, puis généraliser cette copie de la machine virtuelle.

Sysprep requiert le déchiffrement complet des lecteurs. Si vous avez activé le chiffrement sur votre machine virtuelle, désactivez-le avant d’exécuter Sysprep.

Si vous prévoyez d’exécuter Sysprep avant de charger votre disque dur virtuel sur Azure pour la première fois, vérifiez que vous avez préparé votre machine virtuelle.

Nous ne prenons pas en charge le fichier de réponses personnalisé à l’étape Sysprep. Par conséquent, n’utilisez pas le commutateur « /unattend:answerfile » avec la commande sysprep.

La plateforme Azure monte un fichier ISO sur le DVD-ROM lorsqu’une machine virtuelle Windows est créée à partir d’une image généralisée. C’est la raison pour laquelle le DVD-ROM doit être activé dans le système d’exploitation de l’image généralisée. S’il est désactivé, la machine virtuelle Windows est bloquée en mode OOBE (out-of-Box Experience).

Pour généraliser votre machine virtuelle Windows, procédez comme suit :

  1. Connectez-vous à votre machine virtuelle Windows.

  2. Ouvrez une fenêtre d’invite de commandes en tant qu’administrateur.

  3. Supprimez le répertoire Panther (C:\Windows\Panther).

  4. Vérifiez si CD/DVD-ROM est activé. S’il est désactivé, la machine virtuelle Windows est bloquée en mode OOBE (out-of-Box Experience).

      Registry key Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\cdrom\start (Value 4 = disabled, expected value 1 = automatic) Make sure it is set to 1.
    

    Remarque

    Vérifiez si des stratégies appliquées restreignent l’accès au stockage amovible (par exemple : Configuration ordinateur\Modèles d’administration\Système\Accès au stockage amovible\Toutes les classes de stockage amovible : Refuser tout accès)

  5. Remplacez ensuite le répertoire par %windir%\system32\sysprep, puis exécutez :

    sysprep.exe /generalize /shutdown
    
  6. La machine virtuelle s’arrête lorsque Sysprep a fini de généraliser la machine virtuelle. Ne redémarrez pas la machine virtuelle.

    Une fois que Sysprep a terminé, définissez l’état de la machine virtuelle sur la valeur Généralisé.

    Set-AzVm -ResourceGroupName $rgName -Name $vmName -Generalized