La date 10 octobre 2023 arrive à grand pas ! Non ce n’est pas l’anniversaire d’un de vos proche que vous auriez oublié … mais bien la Fin de support programmée pour Windows Server 2012 et 2012R2. A partir de cette date, plus aucune mise à jour de sécurité ne sera disponible sans l’achat des ESUs (Extended Security Updates), ou suite à une migration vers Azure ou Azure Stack HCI (solution de Cloud hybride proposé par Microsoft). 😥😥
Pour continuer de plomber l’ambiance, voici d’ailleurs le calendrier des échéances passées et futures :
Que peut-on faire dans ce cas ?
Comme déjà indiqué dans cet article, plusieurs solutions s’offrent déjà à vous :
- Migrer vers une nouvelle version Windows ou SQL plus récente.
- Acheter les Mises à jour de sécurité étendue (ESUs).
- Migrer les serveurs vers Azure pour recevoir gratuitement les ESUs.
Un article dédié aux ESUs devrait arriver sous peu, tandis que 2 autres concernant la migration vers Azure existent déjà :
Il nous reste donc à parler de la mise à jour de l’OS lui-même. Cela tombe bien, car Dean Cefola de l’Azure Academy vient justement de publier une vidéo traitant de ce sujet :
Important : Bien évidement, les opérations décrites dans cette vidéo et dans mon article ne concernent que la seule mise à jour de l’OS. Il est certain que tous les projets comporteront éventuellement une migration vers le Cloud, mais également d’innombrable tests de compatibilité pour les applications déjà en place.
Aussi, je vous propose dans cet article de vous intéresser aux différentes méthodes de mise à jour possibles et décrites par Dean. Voici les grandes étapes de cet exercice :
- Etape 0 – Rappel des prérequis
- Etape I – Création de l’environnement de test
- Etape II – Sauvegarde et Préparation
- Etape III – Tests d’installation sur place de Windows Server 2022
- Etape IV – Retrait du disque d’installation
- Etape V – Restauration de la sauvegarde
Ces étapes sont également disponibles dans l’article de Microsoft Learn :
Une mise à niveau sur place vous permet de passer d’un ancien système d’exploitation à un plus récent, tout en conservant inchangés vos paramètres, vos rôles serveur et vos données. Cet article vous explique comment faire passer vos machines virtuelles Azure à une version ultérieure de Windows Server en utilisant une mise à niveau sur place.
Microsoft Learn
Etape 0 – Rappel des prérequis :
Pour réaliser cet exercice sur la mise à jour vers Windows Server 2022, il vous faudra disposer de :
- Un tenant Microsoft
- Une souscription Azure valide
Je vous propose de créer plusieurs machines virtuelles dans le but de réaliser 4 tests :
- Test A – Windows Server 2012R2 + Installation GUI
- Test B – Windows Server 2012R2 + Installation via Azure Run Command
- Test C – Windows Server 2012R2 + Installation via Virtual Machine Extension
- Test D – Windows Server 2016 + Installation GUI
Etape I – Création de l’environnement de test :
Pour cela, commencez par déployer une première machine virtuelle sur Azure. Rendez-vous sur le portail d’Azure, puis utilisez la barre de recherche :
Cliquez-ici pour créer votre première machine virtuelle Azure :
Renseignez les informations de base relatives à votre VM en choisissant bien une image Windows Server 2012 R2 :
Définissez un compte administrateur local, bloquer les ports entrants (nous utiliserons le service Azure Bastion), puis cliquez sur Suivant :
Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :
Créez un nouveau réseau virtuel, retirez l’adresse IP publique, puis cliquez sur Suivant :
Décochez l’extinction automatique de la machine virtuelle, puis lancez la validation Azure :
Une fois la validation Azure réussie, lancez la création des ressources de la VM, puis attendez environ 2 minutes :
Sans attendre que le déploiement soit entièrement terminé, il vous est possible, depuis le réseau virtuel Azure de déployer le service Azure Bastion :
Inutile d’attendre qu’Azure Bastion soit déployé pour continuer cet exercice :
Continuez en déployant 3 autres machines virtuelles Azure afin de pouvoir effectuer les 4 tests. Vous devriez avoir les VMs suivantes :
- Windows Server 2012R2 x 3
- Windows Server 2016 x 1
Notre environnement de départ est maintenant en place, nous allons pouvoir préparer nos VMs à installer la mise à jour OS Windows Server 2012.
Etape II – Sauvegarde et Préparation :
Mais avant cela, il est vivement conseillé de faire une sauvegarde. Depuis la machine virtuelle de votre choix, il est facile de faire une sauvegarde d’un disque via la fonction Snapshot.
Pour cela, recherchez le disque OS d’une VM de test, puis cliquez dessus :
Sur ce disque OS, cliquez-ici pour créer un snapshot de celui-ci :
Donnez-lui un nom et une performance, puis lancez la validation Azure :
Une fois la validation Azure réussie, lancez la création du snapshot de la VM, puis attendez environ 30 secondes :
Le snapshot est maintenant visible comme un élément indépendant de la machine virtuelle Azure. Nous nous en servirons plus tard dans le cadre d’une restauration vers Windows Server 2012R2 :
Comme le rappelle la documentation Microsoft, la mise à niveau sur place nécessite l’ajout d’un second disque contenant les éléments d’installation.
Depuis le portail Azure, cliquez sur Azure Cloud Shell, puis configurez-le à votre guise :
Une fois Azure Cloud Shell démarré en mode PowerShell, lancez le script ci-dessous en prenant soin de modifier si besoin le groupe de ressources et la région Azure :
#
# Customer specific parameters
# Resource group of the source VM
$resourceGroup = "vmmigrate-rg"
# Location of the source VM
$location = "WestEurope"
# Zone of the source VM, if any
$zone = ""
# Disk name for the that will be created
$diskName = "WindowsServer2022UpgradeDisk"
# Target version for the upgrade - must be either server2022Upgrade or server2019Upgrade
$sku = "server2022Upgrade"
# Common parameters
$publisher = "MicrosoftWindowsServer"
$offer = "WindowsServerUpgrade"
$managedDiskSKU = "StandardSSD_LRS"
#
# Get the latest version of the special (hidden) VM Image from the Azure Marketplace
$versions = Get-AzVMImage -PublisherName $publisher -Location $location -Offer $offer -Skus $sku | sort-object -Descending {[version] $_.Version }
$latestString = $versions[0].Version
# Get the special (hidden) VM Image from the Azure Marketplace by version - the image is used to create a disk to upgrade to the new version
$image = Get-AzVMImage -Location $location `
-PublisherName $publisher `
-Offer $offer `
-Skus $sku `
-Version $latestString
#
# Create Resource Group if it doesn't exist
#
if (-not (Get-AzResourceGroup -Name $resourceGroup -ErrorAction SilentlyContinue)) {
New-AzResourceGroup -Name $resourceGroup -Location $location
}
#
# Create Managed Disk from LUN 0
#
if ($zone){
$diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU `
-CreateOption FromImage `
-Zone $zone `
-Location $location
} else {
$diskConfig = New-AzDiskConfig -SkuName $managedDiskSKU `
-CreateOption FromImage `
-Location $location
}
Set-AzDiskImageReference -Disk $diskConfig -Id $image.Id -Lun 0
New-AzDisk -ResourceGroupName $resourceGroup `
-DiskName $diskName `
-Disk $diskConfig
Note : J’ai également modifié le script de Microsoft pour créer le disque en Standard SSD et non en Standard HDD. Cela me permet d’activer la fonction de disque partagé pour pouvoir l’utiliser en simultané sur 3 VMs maximum :
Lancez le script, attendez environ 30 secondes, puis constatez le succès de déploiement de celui-ci :
Sur ce nouveau disque, activez la fonction de disque partagé afin de l’utiliser sur plusieurs VMs :
Retournez sur votre première machine virtuelle afin de l’ajouter en tant que disque de données, puis cliquez sur Appliquer :
Faites-en de même pour une seconde machine virtuelle :
Enfin, faites-en de même pour une troisième machine virtuelle :
Nos 3 premières virtuelles sous Windows Server 2012R2 sont enfin prêtes. Il ne nous reste qu’à lancez les installations de Windows Server 2022 sous différentes formes.
Etape III – Tests d’installation sur place de Windows Server 2022 :
Test A – Windows Server 2012R2 + Installation GUI :
Commençons par l’installation depuis l’interface GUI.
Pour cela, ouvrez une session à distance via le service Azure Bastion en utilisant le compte administrateur local renseigné lors de la création de la VM :
Constatez la présence du disque F, correspondant au média d’installation de Windows Server 2022 :
Ouvrez une fenêtre PowerShell et exécutez-y la commande suivante
cd "F:\Windows Server 2022\"
.\setup.exe /auto upgrade /dynamicupdate disable
Attendez environ 1 minute que l’installation se mette en route :
L’installation passe en revue la configuration de votre machine virtuelle :
Attendez encore une fois une minute environ :
Choisissez l’image de Windows Server 2022 correspondante à vos besoin, puis cliquez sur Suivant :
Attendez encore une fois une minute environ :
L’installation se poursuit en vous avertissant de redémarrages possibles :
L’utilisateur est naturellement déconnecté durant la suite du processus de mise à jour :
Cliquez sur Reconnecter et attendez environ 15 bonnes minutes que l’installation se termine :
Une fois la mise à jour entièrement terminée, la session ouverte précédemment via Azure Bastion se réouvre à nouveau :
Constatez la nouvelle version de votre Windows Server depuis Server Manager :
Constatez également la nouvelle version de votre Windows Server depuis le portail Azure :
Notre première machine virtuelle est bien mise à jour en version Windows Server 2022.
Nous allons pouvoir tester un second cas de mise à jour lancée depuis le portail Azure.
Test B – Windows Server 2012R2 + Installation via Azure Run Command :
Sur votre seconde machine virtuelle de test, rendez-vous dans le menu suivant :
Lancez la commande suivante, puis cliquez sur Exécuter :
cd "F:\Windows Server 2022\"
.\setup.exe /auto upgrade /dynamicupdate disable /imageindex 4 /quiet
Attendez environ 15 minutes, sans vous fier au statut Complet de l’écran ci-dessous :
Suivez si besoin la charge CPU de votre VM depuis la fenêtre des métriques :
Une fois la mise à jour entièrement terminée, ouvrez une session via Azure Bastion :
Constatez la nouvelle version de votre Windows Server depuis Server Manager :
Constatez également la nouvelle version de votre Windows Server depuis le portail Azure :
Notre seconde machine virtuelle est bien elle aussi mise à jour en version Windows Server 2022.
Nous allons pouvoir tester un troisième cas de mise à jour lancée depuis une extension de machine virtuelle.
Test C – Windows Server 2012R2 + Installation via Virtual Machine Extension :
Préparer localement un fichier de script PS1 avec le code suivant :
cd "F:\Windows Server 2022\"
.\setup.exe /auto upgrade /dynamicupdate disable /imageindex 4 /quiet
Sur votre troisième machine virtuelle de test, rendez-vous dans le menu suivant :
Choisissez Custom Script Extension, puis cliquez sur Suivant :
Cliquez-ici :
Choisissez le compte de stockage utilisé pour Azure Cloud Shell :
Créez un nouveau conteneur pour le stockage objet :
Nommez-le, puis cliquez sur Créer :
Téléversez votre script :
Sélectionnez votre script :
Cliquez-ici :
Attendez que le déploiement du script se termine :
Suivez si besoin son statut :
Environ 15 minutes plus tard, le statut du script est terminé :
Une fois la mise à jour entièrement terminée, ouvrez une session via Azure Bastion :
Constatez la nouvelle version de votre Windows Server depuis Server Manager :
Constatez également la nouvelle version de votre Windows Server depuis le portail Azure :
Notre troisième machine virtuelle est bien elle aussi mise à jour en version Windows Server 2022.
Nous allons pouvoir tester un dernier cas de mise à jour lancée depuis une machine virtuelle déjà sous Windows Server 2016.
Test D – Windows Server 2016 + Installation GUI :
Pour cela, ouvrez une session à distance via le service Azure Bastion en utilisant le compte administrateur local renseigné lors de la création de la VM :
Ouvrez une fenêtre PowerShell et exécutez-y la commande suivante :
cd "F:\Windows Server 2022\"
.\setup.exe /auto upgrade /dynamicupdate disable
Choisissez l’image de Windows Server 2022 correspondante à vos besoin, puis cliquez sur Suivant :
L’installation se poursuit en vous avertissant de redémarrages possibles :
Une fois la mise à jour entièrement terminée, la session ouverte précédemment via Azure Bastion se réouvre à nouveau :
Constatez la nouvelle version de votre Windows Server depuis Server Manager :
Constatez également la nouvelle version de votre Windows Server depuis le portail Azure :
Notre machine virtuelle en 2016 est correctement mise à jour en version Windows Server 2022.
Etape IV – Retrait du disque d’installation :
Une fois l’installation terminée, il ne nous reste plus qu’à retirer le disque d’installation monté sur les machines virtuelles mises à jour :
Cliquez sur Appliquer :
Attendez quelques secondes la notification Azure :
Constatez la disparition du disque F :
Etape V – Restauration de la sauvegarde :
Dans le cas d’un bug au moment de la mise à jour ou après tout autre déconvenue, il est possible de repartir du snapshot généré avant la mise à jour.
Commencez par éteindre la machine virtuelle à restaurer :
Attendez quelques secondes la notification Azure :
Depuis le snapshot, cliquez-ici pour créer un nouveau disque OS :
Nommez-le, choisissez sa taille et sa performance, puis lancez la validation Azure :
Une fois la validation Azure réussie, lancez la création du disque :
Retournez sur une des machines virtuelles de test, puis cliquez-ici pour intervertir les disques OS :
Choisissez le nouveau disque, puis lancez le traitement en cliquant sur OK :
Attendez quelques secondes la notification Azure :
Redémarrer la machine virtuelle restaurée :
Ouvrez une session via Azure Bastion :
Attendez la fin de chargement de session :
Constatez le retour à l’ancienne version de Windows Server depuis Server Manager :
Conclusion
Le processus de mise à jour depuis une VM déjà sur Azure vers une version plus récente de Windows Server est des plus simples. Nul doute que la mise à jour de l’OS est la partie émergée de l’iceberg. D’autres tests avant la mises à jour devront être effectués pour vérifier la bonne compatibilité des applications et des services installés.
Un commentaire sur “Updatez vos VMs vers Windows Server 2022”