Lorsque j’essaie de mettre à niveau le système d'exploitation SUSE sur mon instance Amazon Elastic Compute Cloud (Amazon EC2), je reçois des erreurs: échec de la vérification de l'état de l'instance, dé-enregistrement du système d'exploitation et défaillance des commandes Zypper.
Résolution
Recherche des échecs de contrôle du statut de l’instance
En cas d’échec de contrôle du statut de l’instance, consultez Comment puis-je résoudre le problème d’échec de l’ instance Linux EC2 lors du contrôle du statut de l’instance en raison de problèmes liés au système d’exploitation ?
Servez-vous du script susecloud-repocheck pour diagnostiquer et corriger automatiquement les dysfonctionnements secondaires
Le script susecloud-repocheck effectue une vérification du référentiel du système d'exploitation. Il corrige également les problèmes qui empêchent l'instance de s'enregistrer dans l'infrastructure de mise à jour SUSE pour les raisons suivantes :
- Microsoft Azure
- AWS
- Plateforme Google Cloud (GCP)
- Instances à la demande avec paiement à l'usage (PAYG)
Pour en savoir plus, consultez susecloud-repocheck sur le référentiel SUSE GitHub.
Exécutez le script à l’aide de la commande suivante :
$ python3 <(curl -sL https://raw.githubusercontent.com/SUSE/susecloud-repocheck/main/sc-repocheck.py)
Le script crée des journaux dans le répertoire nommé /var/log/ sc-repocheck_<YYMMDD_hhmmss>.tar.xz.
Vérifiez l’enregistrement manuellement et résolvez les échecs de mise à niveau
**Vérifier le code de l'instance billingProducts ou marketplaceProductCodes **
Vérifiez le code BillingProducts de l'instance pour PAYG vanilla SLES. Vérifiez le code marketplaceProductCodes en ce qui concerne PAYG SLES pour SAP Applications.
Exécutez la commande suivante pour vérifier le code billingProducts ou marketplaceProductCodes :
# /usr/bin/curl --noproxy '*' -w "\n" -s -H "X-aws-ec2-metadata-token: $(curl --noproxy '*' -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 300")" http://169.254.169.254/latest/dynamic/instance-identity/document | grep -E 'billingProducts|marketplaceProductCodes'
Voici le résultat de la commande :
billingProducts" : [ "bp-********" ]
Ou
"marketplaceProductCodes" : \[ "\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*" \],
Vérifiez les entrées d’enregistrement SMT dans le fichier /etc/hosts
Recherchez dans le fichier /etc/hosts une entrée qui suit la ligne # Ajouté par l'enregistrement SMT ne pas supprimer, retenir également le commentaire .
**Remarque :**Il existe plusieurs serveurs de mise à jour du cloud public SUSE au sein d'une région AWS. Pour plus d'informations, consultez la liste des adresses IP des serveurs de mise à jour pour les régions AWS sur le site Web de SUSE Public Cloud Solutions.
Pour vérifier l'état actuel de l'enregistrement, exécutez la commande suivante :
# 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 supprimer des entrées des enregistrements précédents, exécutez la commande suivante :
# registercloudguest --clean
Pour réenregistrer l'instance, exécutez la commande suivante :
# registercloudguest --force-new
Pour vérifier l'état actuel de l'enregistrement, exécutez la commande suivante :
# SUSEConnect -s
Si l’enregistrement échoue, analysez les journaux dans /var/log/cloudregister pour déterminer la raison de l’échec. Un exemple d'erreur dans les journaux est donné ci- après :
SUSEConnect error: Errno::ENOSPC: No space left on device
Supprimez toute entrée d'enregistrement SMT dupliquée ou supplémentaire dans le fichier /etc/hosts. Un exemple d'entrée ajouté par l'enregistrement SMT est donné ci-après :
# vi /etc/hosts
# Added by SMT registration do not remove, retain comment as well
54.246.90.215 smt-ec2.susecloud.net smt-ec2
Résolution des erreurs d’enregistrement fréquentes
Procédez comme suit pour résoudre les erreurs d'enregistrement les plus fréquentes :
-
Vérifiez que les paquets cloud-regionsrv-client et les dépendances connexes sont installés dans votre système d'exploitation en exécutant la commande suivante :
# rpm -qa | grep -E 'cloud-regionsrv-client|cloud-regionsrv-client-plugin-ec2|regionServiceClientConfigEC2|SUSEConnect|suseconnect-ng|python3-ec2metadata|python3-dnspython|python3-lxml|python3-cssselect|python3-M2Crypto|python3-zypp-plugin|libzypp|ruby-common'
Voici un extrait issu de la commande précédente :
libzypp-17.31.20-150400.3.40.1.x86_64
suseconnect-ng-1.6.0~git0.31371c8-150400.3.22.1.x86_64
python3-zypp-plugin-0.6.3-150000.4.2.1.noarch
python3-cssselect-1.0.3-150000.3.3.1.noarch
python3-M2Crypto-0.38.0-150400.7.64.x86_64
python3-lxml-4.7.1-150200.3.10.1.x86_64
regionServiceClientConfigEC2-4.1.1-150000.3.27.1.noarch
ruby-common-2.1-3.15.noarch
python3-ec2metadata-5.0.0-150000.3.12.1.noarch
cloud-regionsrv-client-10.1.6-150000.6.105.1.noarch
cloud-regionsrv-client-plugin-ec2-1.0.4-150000.6.105.1.noarch
python3-dnspython-1.15.0-150000.3.2.1.noarch
Si les packages sont obsolètes ou manquants et que le système d’exploitation n’a pas accès à Zypper, effectuez une mise à niveau hors ligne. Cette mise à niveau hors ligne requiert le téléchargement des paquets rpm à l'aide de Zypper sur un autre hôte fonctionnel et le transfert du rpm sur l'hôte non fonctionnel. Puis, une installation Zypper des packages rpm
-
Identification des référentiels manquants.
-
S'il manque des référentiels logiciels à votre instance SUSE, exécutez les commandes suivantes pour forcer un nouvel enregistrement auprès de tous les référentiels disponibles.
# registercloudguest --force-new
# SUSEConnect --list-extensions
# zypper lr --uri
Informations connexes
FAQ relative à SUSE Linux Enterprise Server (SLES) sur Amazon EC2