Comment résoudre les problèmes qui surviennent lors de la mise à niveau du système d’exploitation SUSE sur mon instance EC2

Lecture de 5 minute(s)
0

Je mets actuellement à niveau le système d’exploitation (SE) SUSE sur mon instance Amazon Elastic Compute Cloud (Amazon EC2). Je rencontre des problèmes lors de la mise à niveau, tels qu'un échec de la vérification de l'état de l'instance, un système d'exploitation dés-enregistré ou des commandes zypper défaillantes.

Résolution

Déterminer si le contrôle du statut de l’instance a échoué

En cas d’échec du contrôle du statut de l’instance après la mise à niveau du SE, consultez la page Mon instance Linux EC2 a échoué lors du contrôle du statut de l’instance en raison de problèmes liés au système d’exploitation. Comment puis-je résoudre ce problème ?

Vérifier les échecs d’enregistrement automatiquement (instances gérées uniquement)

Si votre instance est gérée dans la console AWS Systems Manager, exécutez le document d’automatisation AWSSupport-TroubleshootSUSERegistration. Le document d’automatisation AWSSupport-TroubleshootSUSERegistration permet de déterminer la cause première de l’échec de la mise à niveau. Pour en savoir plus, consultez la page Pourquoi ne puis-je pas enregistrer mon instance EC2 exécutant SUSE dans l’infrastructure de mise à jour SUSE afin de pouvoir installer ou mettre à jour des packages ?

Vérifier les échecs d’enregistrement manuellement

Pour les instances non gérées, vérifiez les éléments suivants :

Les deux principaux prérequis déterminés pour l’enregistrement de l’instance sont les suivants :

  • Code billingProducts ou marketplaceProductCodes de l’instance.
  • L’adresse IP de connexion sortante doit appartenir à une plage d’adresses IP AWS.

1.    Exécutez la commande suivante pour vérifier le code billingProducts ou marketplaceProductCodes :

# curl -s http://169.254.169.254/latest/dynamic/instance-identity/document

Voici un exemple de sortie pour la commande suivante :

 billingProducts" : [ "bp-********" ]

2.    Vérifiez les entrées d’enregistrement SMT dans le fichier /etc/hosts. Recherchez une entrée après la ligne # Ajouté par l’enregistrement SMT, ne pas supprimer, conserver le commentaire également.

Chaque région AWS possède un serveur SMT différent. Pour trouver l’adresse IP du serveur SMT d’une région spécifique sans utiliser l’outil d’impression, consultez la liste des adresses IP des serveurs SMT sur le site Web susepubliccloudinfo.suse.com.

Exécutez la commande suivante pour vérifier le statut de l’enregistrement :

# SUSEConnect -s

Dans la sortie de commande précédente, déterminez si le paramètre Statut est défini sur Enregistré ou Non enregistré. Si la sortie apparaît comme Non enregistré, essayez de réenregistrer l’instance.

Pour la réenregistrer, il est recommandé de supprimer les enregistrements précédents. Exécutez les commandes suivantes pour nettoyer les informations d’identification et les référentiels :

SUSEConnect --de-register
SUSEConnect --cleanup
rm -f /etc/SUSEConnect
rm -rf /etc/zypp/credentials.d/*
rm -rf /etc/zypp/repos.d/*
rm -f /etc/zypp/services.d/*

Supprimez également l’entrée SMT ajoutée lors de l’enregistrement précédent dans le fichier /etc/hosts. Dans le cas contraire, le nouvel enregistrement crée plusieurs entrées SMT. Supprimez ou commentez l’entrée suivante :

# vi /etc/hosts

# Added by SMT registration do not remove, retain comment as well
54.246.90.215 smt-ec2.susecloud.net smt-ec2

Après avoir nettoyé les entrées, exécutez la commande suivante pour réenregistrer l’instance :

# registercloudguest --force-new
# SUSEConnect -s

Si l’enregistrement échoue, analysez les journaux dans /var/log/cloudregister pour déterminer la raison de l’échec. Voici un exemple d’erreur dans les journaux :

SUSEConnect error: Errno::ENOSPC: No space left on device

Résoudre les erreurs d’enregistrement courantes

1.    Exécutez la commande suivante pour vérifier que la version de cloud-regionsrv-client est 9.0.0 ou supérieure :

rpm -qa | grep cloud-regionsrv-client

Voici un extrait issu de la commande précédente :

cloud-regionsrv-client-9.0.3-52.16.1
cloud-regionsrv-client-plugin-ec2-1.0.0-52.16.1

Exécutez la commande suivante pour mettre à jour le package :

# zypper update cloud-regionsrv-client

2.    Exécutez la commande suivante pour vérifier que tous les packages nécessaires sont présents dans votre système d’exploitation :

# rpm -qa | grep -iE "cloud-regionsrv-client|regionServiceClientConfigEC2|ec2metadata|SUSEConnect|libzypp|ruby-common"

Voici un extrait de la sortie issue de la commande précédente :

libzypp-17.31.8-150400.3.14.1.x86_64
python3-ec2metadata-4.0.0-150000.3.9.1.noarch
ruby-common-2.1-3.15.noarch
suseconnect-ng-1.0.0~git0.faee7c196dc1-150400.3.7.3.x86_64
libsuseconnect-1.0.0~git0.faee7c196dc1-150400.3.7.3.x86_64
suseconnect-ruby-bindings-1.0.0~git0.faee7c196dc1-150400.3.7.3.x86_64
regionServiceClientConfigEC2-4.1.0-150000.3.24.1.noarch
cloud-regionsrv-client-10.0.8-150000.6.86.1.noarch
cloud-regionsrv-client-plugin-ec2-1.0.2-150000.6.86.1.noarch

Si les packages sont anciens ou manquants et que le système d’exploitation n’a pas accès à Zypper, effectuez la mise à niveau hors ligne. Pour en savoir plus, consultez la page Mise à jour de l’infrastructure du cloud public sur le site Web suse.com. La documentation relative à la mise à jour de l’infrastructure cloud public inclut les modules nécessaires à la mise à niveau et les derniers packages d’enregistrement :

# wget --no-check-certificate https://52.15.49.139/late_instance_offline_update_ec2_<arch>_<slebase>.tar.gz
# sha1sum late_instance_offline_update_ec2_<arch>_<slebase>.tar.gz
# tar -xf late_instance_offline_update_ec2_<arch>_<slebase>.tar.gz
# cd <arch>
# zypper --no-refresh --no-remote --non-interactive in *.rpm

3.    Identifier les référentiels manquants.

S’il manque des référentiels logiciels à votre instance SUSE, consultez la page Référentiels logiciels manquants pour l’instance AWS ou Azure SUSE Cloud, afin de forcer un nouvel enregistrement auprès de tous les référentiels disponibles.

Informations connexes

FAQ relative à SUSE Linux Enterprise Server (SLES) sur Amazon EC2

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 10 mois