Ce document décrit les bonnes pratiques et les stratégies à suivre pour mettre à niveau les systèmes d'exploitation sur les instances Compute Engine. Découvrez comment mettre à niveau les versions majeures de l'OS à l'aide d'une infrastructure immuable, de la recréation d'instances ou de workflows sur place, et comment automatiser les correctifs de sécurité de routine.
Lorsqu'une version de système d'exploitation approche de sa date de fin de support ou de fin de vie, vous devez passer à une version compatible pour continuer à bénéficier des mises à jour de sécurité, de la compatibilité logicielle et de l'intégration à la plate-forme Cloud de Confiance by S3NS . Pour en savoir plus sur les phases d'assistance, consultez Cycle de vie des systèmes d'exploitation.
Risques liés aux mises à niveau sur place de versions majeures de l'OS
Si vous effectuez une mise à niveau majeure sur place du système d'exploitation (par exemple, en passant de Debian 12 à 13, de RHEL 9 à 10 ou d'Ubuntu 24.04 à 26.04 sur une instance de calcul en cours d'exécution), vous introduisez des risques opérationnels importants dans les environnements cloud. Contrairement aux serveurs physiques sur site, vos instances de calcul dépendent de packages spécialisés pour l'environnement invité afin de communiquer avec l'hyperviseur et le serveur de métadonnées Compute Engine.
Lorsque vous mettez à niveau un système d'exploitation sur place, vous risquez les modes de défaillance suivants :
- Perte de connectivité SSH et RDP : les formats de configuration des services réseau, les règles de pare-feu au niveau de l'invité (comme ufw ou firewalld) ou les paramètres du démon SSH peuvent changer entre les versions de l'OS, ce qui coupe l'accès administratif à distance.
- Perturbation de l'environnement invité : les packages
google-guest-agentetgoogle-oslogingèrent les clés SSH, les comptes utilisateur, les interfaces réseau et la synchronisation avec les métadonnées. Si les dépôts ou les dépendances de packages sont interrompus lors d'une mise à niveau de la distribution, l'agent invité peut cesser de fonctionner, ce qui empêche d'autres connexions ou configurations réseau. - Incompatibilités avec les pilotes de stockage et du noyau : les modifications apportées au noyau, à
initramfsou aux pilotes des contrôleurs de disque (tels que virtio-scsi ou NVMe) peuvent entraîner des échecs de démarrage ou empêcher l'instance de calcul de reconnaître les volumes de disque persistant associés. - Configurations incohérentes pour les dépôts : les fournisseurs de systèmes d'exploitation abandonnent ou remplacent souvent les anciens dépôts de packages et les clés de signature, ce qui peut entraîner l'échec des gestionnaires de packages en cours de mise à niveau et laisser le système d'exploitation dans un état irrécupérable et partiellement installé.
Pour éviter ces risques, utilisez un modèle d'infrastructure immuable au lieu de mettre à niveau les versions majeures de l'OS sur vos instances de calcul de production.
Choisir la bonne stratégie de mise à niveau
Selon que vos charges de travail sont sans état ou avec état, choisissez l'une des stratégies suivantes :
| Stratégie | Recommandations | Risque de temps d'arrêt | Mécanisme de rollback |
|---|---|---|---|
| Infrastructure immuable | Charges de travail sans état, groupes d'instances gérés (MIG), microservices, hôtes de conteneurs | Aucun temps d'arrêt avec le remplacement progressif | Rétablir une image antérieure pour le modèle d'instance |
| Recréer des instances de calcul avec Persistent Disk | Instances de calcul autonomes avec état, bases de données avec stockage secondaire associé, hôtes d'applications anciennes | Minimal avec un intervalle de maintenance planifié | Réassocier des disques à l'instance de calcul d'origine ou restaurer des instantanés |
| Mise à niveau sur place de l'OS | Instances de calcul autonomes où vous ne pouvez pas automatiser ni extraire les configurations locales | Élevé, nécessitant un temps d'arrêt et une planification manuelle de la reprise | Restaurer à partir d'un instantané de disque persistant |
Infrastructure immuable
La méthode la plus sûre et la plus fiable pour mettre à niveau vos systèmes d'exploitation consiste à utiliser le modèle d'infrastructure immuable. Au lieu de modifier les instances de calcul en cours d'exécution, vous créez de nouvelles instances de calcul à partir d'images d'OS publiques ou personnalisées mises à jour, puis vous remplacez vos anciennes instances.
Si vos charges de travail s'exécutent dans des groupes d'instances gérés (MIG), vous pouvez automatiser ce déploiement sans aucune interruption de service.
Créer une image mise à jour
- Sélectionnez la dernière image d'OS publique dans la liste des détails des systèmes d'exploitation compatibles, ou créez une image de base personnalisée à l'aide d'Image Builder ou d'outils automatisés tels que Packer ou Ansible.
- Vérifiez que votre application et ses dépendances s'installent et s'exécutent correctement sur la nouvelle version de l'OS dans un environnement de test hors production.
- Créez une image d'OS personnalisée ou référencez la nouvelle famille d'images publiques. Pour en savoir plus, consultez Bonnes pratiques concernant les familles d'images.
Créer un modèle d'instance mis à jour
Créez un modèle d'instance qui référence l'image d'OS mise à jour :
gcloud compute instance-templates create NEW_TEMPLATE_NAME \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--machine-type=MACHINE_TYPE \
--region=REGION
Remplacez les éléments suivants :
NEW_TEMPLATE_NAME: nom de la nouvelle instance.IMAGE_FAMILY: famille d'images de l'OS cible, par exempledebian-12ouubuntu-2404-lts.IMAGE_PROJECT: projet hébergeant l'image, tel quedebian-cloudouubuntu-os-cloud.MACHINE_TYPE: type de machine de vos instances.REGION: région Compute Engine dans laquelle vous créez le modèle.
Effectuer un remplacement progressif dans le MIG
Appliquez le modèle modifié à votre groupe d'instances géré et lancez un remplacement progressif :
gcloud compute instance-groups managed rolling-action replace MIG_NAME \
--max-surge=20% \
--max-unavailable=0 \
--region=REGION
Remplacez les éléments suivants :
MIG_NAME: nom de votre groupe d'instances géré.REGION: région où se trouve le MIG. Pour les MIG zonaux, remplacez--region=REGIONpar--zone=ZONE.
Recréer des instances de calcul avec Persistent Disk
Si vous exécutez des instances de calcul autonomes avec état dans lesquelles les applications stockent la configuration et les données sur des volumes Persistent Disk, vous pouvez mettre à niveau votre système d'exploitation en recréant l'instance de calcul avec un nouveau disque de démarrage tout en conservant vos disques de données.
Sauvegarder tous les disques
Avant de modifier l'infrastructure, créez des instantanés standards ou régionaux du disque de démarrage et de tous les volumes de disque persistant associés :
gcloud compute disks snapshot BOOT_DISK_NAME \
--snapshot-names=SNAPSHOT_NAME \
--zone=ZONE
Remplacez les éléments suivants :
BOOT_DISK_NAME: nom du disque de démarrage à sauvegarder.SNAPSHOT_NAME: nom du nouvel instantané de disque persistant.ZONE: zone où se trouve le disque.
Pour en savoir plus, consultez Créer et gérer des instantanés.
Séparer les données d'application du disque de démarrage
Assurez-vous que les données d'application, les fichiers de base de données et les journaux de transactions résident sur des volumes de disque persistant secondaires ou des services externes, tels que Cloud Storage ou Cloud SQL, plutôt que sur le disque de démarrage.
Créer l'instance de calcul de remplacement
Arrêtez l'ancienne instance de calcul pour vous assurer que les données restent cohérentes :
gcloud compute instances stop LEGACY_INSTANCE_NAME --zone=ZONE
Dissociez les disques de données secondaires de l'ancienne instance de calcul :
gcloud compute instances detach-disk LEGACY_INSTANCE_NAME \ --disk=DATA_DISK_NAME \ --zone=ZONECréez une instance de calcul avec la version de l'OS cible :
gcloud compute instances create NEW_INSTANCE_NAME \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --zone=ZONE \ --machine-type=MACHINE_TYPEAssociez les disques de données secondaires existants à la nouvelle instance de calcul :
gcloud compute instances attach-disk NEW_INSTANCE_NAME \ --disk=DATA_DISK_NAME \ --zone=ZONEConnectez-vous à la nouvelle instance de calcul, installez les systèmes de fichiers sur les disques de données et démarrez les services de votre application.
Si nécessaire, réattribuez les adresses IP externes statiques ou les enregistrements DNS pour qu'ils pointent vers la nouvelle instance de calcul.
Remplacez les éléments suivants :
LEGACY_INSTANCE_NAME: nom de l'instance de calcul existante que vous mettez à niveau.DATA_DISK_NAME: nom du volume de disque persistant secondaire à dissocier et à réassocier.NEW_INSTANCE_NAME: nom de la nouvelle instance de calcul de remplacement.IMAGE_FAMILY: famille d'images pour la version de l'OS cible, telle quedebian-13ouubuntu-2604-lts.IMAGE_PROJECT: projet fournissant l'image, tel quedebian-cloudouubuntu-os-cloud.MACHINE_TYPE: type de machine pour la nouvelle instance de calcul.ZONE: zone dans laquelle se trouvent vos instances de calcul.
Mises à niveau de l'OS sur place
Si vous ne pouvez pas recréer votre instance de calcul en raison de configurations manuelles complexes et que vous devez effectuer une mise à niveau sur place, effectuez ces vérifications avant la mise à niveau et suivez attentivement les instructions spécifiques à la distribution.
Checklist avant la mise à niveau
Suivez toutes les étapes de cette checklist avant de commencer une mise à niveau sur place :
- Prenez un instantané du disque de démarrage avant d'exécuter des commandes de mise à niveau. Il s'agit de votre principal mécanisme de récupération en cas d'échec de la mise à niveau.
Mettez à jour tous les packages actuels et l'environnement invité pour Cloud de Confiance vers les dernières versions disponibles pour votre version actuelle de l'OS :
- Pour Debian et Ubuntu :
sudo apt update && sudo apt dist-upgrade -y - Pour RHEL, CentOS et Rocky Linux :
sudo dnf upgrade -y - Pour SLES :
sudo zypper update
Assurez-vous que les packages
google-guest-agentetgoogle-osloginsont actifs :sudo systemctl status google-guest-agent
- Pour Debian et Ubuntu :
Activez la console série interactive sur votre instance de calcul pour pouvoir résoudre les problèmes et vous connecter si SSH ou la mise en réseau cessent de fonctionner pendant la mise à niveau :
gcloud compute instances add-metadata INSTANCE_NAME \ --metadata=serial-port-enable=TRUE \ --zone=ZONERemplacez les éléments suivants :
INSTANCE_NAME: nom de votre instance de calcul.ZONE: zone où se trouve votre instance de calcul.
Pour en savoir plus, consultez Interagir avec la console série.
Si vous utilisez OS Login ou des clés SSH gérées par l'agent invité, définissez un mot de passe pour un compte utilisateur local disposant de droits d'administrateur, par exemple avec
sudo passwd USERNAME. Vous pourrez ainsi vous connecter via la console série si OS Login est temporairement indisponible pendant la mise à niveau. RemplacezUSERNAMEpar le nom de votre compte utilisateur local.Assurez-vous que la partition racine
/et la partition de démarrage/bootdisposent de suffisamment d'espace libre (au moins 5 Go sont recommandés) pour télécharger et décompresser les nouveaux packages :df -h / /boot
Vérifiez que les agents tiers pour la sécurité, la sauvegarde ou la surveillance (y compris l'agent Ops Google Cloud) sont compatibles avec la version cible du système d'exploitation.
Procédures de mise à niveau sur place
Les sections suivantes fournissent des workflows généraux pour les systèmes d'exploitation courants. Consultez toujours la documentation officielle sur la mise à niveau de votre système d'exploitation avant de procéder à la mise à niveau.
Debian
Vous pouvez mettre à niveau Debian entre deux versions majeures consécutives. Ne sautez pas les versions majeures. Par exemple, passez d'abord de Debian 11 à Debian 12, puis de Debian 12 à Debian 13.
Mettez à jour les dépôts de packages Debian existants :
sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y
Mettez à jour les sources de package dans
/etc/apt/sources.listet/etc/apt/sources.list.d/en remplaçant le nom de code de la version actuelle, tel quebullseye, par le nom de code de la version cible, tel quebookworm. Assurez-vous que les URL du dépôt de packages Cloud de Confiance correspondent à la nouvelle version.Effectuez une mise à niveau minimale pour mettre à jour les principaux outils d'empaquetage :
sudo apt update sudo apt upgrade --without-new-pkgs -y
Exécutez la mise à niveau complète de la distribution :
sudo apt full-upgrade -y
Vérifiez que
google-guest-agentest actif et activé :sudo systemctl enable --now google-guest-agent
Redémarrez l'instance de calcul :
sudo systemctl reboot
Ubuntu
Pour gérer les mises à niveau LTS vers LTS sur Ubuntu, utilisez l'outil do-release-upgrade.
Mettez à jour tous les packages actuels :
sudo apt update && sudo apt dist-upgrade -y
Installez le package principal pour le gestionnaire de mises à jour :
sudo apt install update-manager-core -y
Démarrez l'outil de mise à niveau des versions :
sudo do-release-upgrade
Suivez les instructions interactives pour confirmer les mises à jour du dépôt et les remplacements de packages. Si vous êtes invité à examiner les fichiers de configuration modifiés, vérifiez attentivement les différences avant de les remplacer.
Redémarrez l'instance de calcul lorsque vous y êtes invité.
RHEL
Pour effectuer une mise à niveau entre les versions majeures de RHEL, utilisez l'utilitaire leapp Red Hat compatible.
- Vérifiez l'état de votre abonnement Red Hat et assurez-vous que l'instance de calcul se connecte à Compute Engine Red Hat Update Infrastructure (RHUI).
- Installez l'utilitaire Leapp et les packages contenant les données de migration.
Exécutez l'évaluation avant la mise à niveau :
sudo leapp preupgrade
Consultez le rapport dans
/var/log/leapp/leapp-report.txtet résolvez tous les problèmes d'inhibiteurs identifiés par Leapp.Exécutez la mise à niveau :
sudo leapp upgrade
Redémarrez l'instance pour permettre à Leapp d'effectuer la mise à niveau de l'OS dans un environnement isolé :
sudo reboot
SLES
Pour effectuer des migrations de service packs et des mises à niveau de distribution de version majeure sur SLES, utilisez zypper :
Mettez à jour le système existant :
sudo zypper patch
Exécutez
zypper migrationpour effectuer une migration en ligne ou suivez le workflow de mise à niveau de la distribution à l'aide dezypper dup, spécifié dans la documentation sur la mise à niveau de SLES.
Windows
Pour les instances de calcul Windows Server, vous pouvez utiliser des supports d'installation avec des licences en volume Compute Engine et des scripts PowerShell pour automatiser les mises à niveau sans intervention manuelle.
Pour effectuer une mise à niveau sur place sur Windows Server, suivez le tutoriel Effectuer une mise à niveau sur place de Windows Server.
Automatiser la gestion des correctifs pour les mises à jour mineures
Faites la distinction entre les mises à niveau majeures de l'OS et les mises à jour mineures et correctifs de sécurité de routine. Pour la maintenance régulière des logiciels, les mises à jour des packages et l'application de correctifs aux CVE, utilisez VM Manager Patch pour automatiser le déploiement des correctifs sur votre parc d'instances de calcul.
Suivez ces bonnes pratiques pour gérer les correctifs automatiquement :
- Organiser les instances avec des libellés : attribuez des libellés avec des métadonnées, telles que
env:dev,env:prodettier:frontend, pour cibler des groupes spécifiques d'instances de calcul pour les correctifs. - Déployer zone par zone : échelonnez les tâches de correctif entre les zones et les régions. N'appliquez jamais de correctifs à toutes les zones simultanément dans les environnements de production.
- Utilisez des scripts préliminaires et consécutifs aux correctifs : configurez des scripts préliminaires aux correctifs pour vider les connexions ou suspendre les services de manière sécurisée, et configurez des scripts consécutifs aux correctifs pour exécuter des vérifications d'état avant de remettre les instances en service.
- Surveiller la conformité des correctifs : utilisez le tableau de bord VM Manager dans la consoleCloud de Confiance pour suivre la conformité des correctifs et l'état des failles sur votre parc d'instances de calcul.
Pour en savoir plus, consultez Créer des jobs de correctif.
Validation et dépannage après la mise à niveau
Une fois la mise à niveau effectuée, suivez les étapes de validation suivantes :
- Vérifiez que la connexion SSH ou RDP fonctionne normalement.
Assurez-vous que l'agent invité et le service OS Login sont actifs et signalent un état sain :
sudo systemctl status google-guest-agent sudo systemctl status google-oslogin-cache
Vérifiez que l'instance de calcul peut interroger le serveur de métadonnées de l'instance :
curl -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/id
Vérifiez que vos services d'application ont démarré et que les vérifications de l'état des équilibreurs de charge signalent des instances opérationnelles.
Résoudre les problèmes de perte de connexion
Si vous perdez l'accès SSH ou RDP à l'instance de calcul après une mise à niveau sur place, suivez les étapes de dépannage ci-dessous :
Consultez le journal de la console pour détecter les paniques du noyau, les erreurs lors du démarrage du service ou les échecs lors de l'initialisation du réseau :
gcloud compute instances tail-serial-port-output INSTANCE_NAME \ --zone=ZONESi vous avez activé la console série interactive avant la mise à niveau, connectez-vous directement au terminal :
gcloud compute connect-to-serial-port INSTANCE_NAME \ --zone=ZONEConnectez-vous à l'aide de vos identifiants utilisateur locaux, inspectez les journaux système avec
journalctl -xeet redémarrez le réseau ou le servicegoogle-guest-agent.Remplacez les éléments suivants :
INSTANCE_NAME: nom de l'instance de calcul que vous dépannez.ZONE: zone où se trouve l'instance de calcul.
Si le système d'exploitation ne peut pas démarrer ni être récupéré, créez un volume de disque persistant à partir de l'instantané que vous avez pris avant la mise à niveau, puis associez-le en tant que disque de démarrage de l'instance de calcul. Pour obtenir la procédure de récupération détaillée, consultez Restaurer un instantané sur un nouveau disque.
Étapes suivantes
- En savoir plus sur les étapes du cycle de vie des systèmes d'exploitation et les règles d'abandon
- Consultez les bonnes pratiques pour la gestion des images.
- Comprendre les composants et les daemons de l'environnement invité
- Configurer des jobs d'application de correctifs automatiques à l'aide de VM Manager
- Effectuez une mise à niveau sur place de Windows Server.