Ce document explique comment résoudre les problèmes que vous pouvez rencontrer lorsque vous connectez des instances de machines virtuelles (VM) Compute Engine exécutant un paiement à l'usage (PAYG) SUSE Linux Enterprise Server (SLES) au dépôt de l'outil de gestion des souscriptions SUSE (SMT).
Avant de commencer
- Assurez-vous que la VM est associée à un compte de service.
- Assurez-vous que l'API Service Metadata est accessible à partir de la VM.
- Utilisez l'outil sc-repocheck pour résoudre automatiquement les problèmes.
- Suivez les étapes décrites dans le guide de dépannage de SUSE PAYG.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Recherchez une adresse IP correspondant à la région de votre VM dans la liste des adresses IP SUSE SMT.
Modifiez le fichier pour ajouter l'adresse IP SUSE SMT et toutes les autres informations manquantes.
Réponse réussie :
Response code (>0 is OK): 200
Erreur d'expiration de requête:
Response code (>0 is OK): 000 curl: (28) Connection timed out after 5001 milliseconds
Erreur de domaine non résolu :
Response code (>0 is OK): 000 curl: (6) Could not resolve host: smt-gce.susecloud.net
Installer le package requis
sudo zypper install python3-susepubliccloudinfo
Utiliser la commande suivante avec une région spécifique
pint google servers --region us-central1
Le résultat positif contient une liste d'entrées au format XML.
<?xml version='1.0' encoding='UTF-8'?> <servers> <server ip="146.148.73.14" name="" region="us-central1" type="regionserver-sles"/> <server ip="162.222.182.90" name="" region="us-central1" type="regionserver-sap"/> <server ip="108.59.80.221" name="smt-gce.susecloud.net" region="us-central1" type="smt"/> <server ip="108.59.85.41" name="smt-gce.susecloud.net" region="us-central1" type="smt"/> <server ip="108.59.80.58" name="smt-gce.susecloud.net" region="us-central1" type="smt"/> </servers>
Erreur
SUSEConnect
:SUSEConnect error: Errno::ETIMEDOUT: Connection timed out - connect(2) for "smt-gce.susecloud.net" port 443
Erreur
zypper
:Error retrieving metadata for 'SLE-Module-Adv-Systems-Management12-Pool': Not ready to read within timeout. ...
Vérifiez que la VM dispose d'une adresse IP externe ou que le sous-réseau cloud privé virtuel utilise une NAT (Cloud NAT ou solution personnalisée).
Si vous avez modifié les règles de routage réseau par défaut, telles que la limitation de l'accès Internet public ou le routage du trafic via un réseau sur site, ajoutez des routes manuellement pour les adresses IP SMT via la passerelle par défaut de Compute Engine, en procédant comme suit :
Accédez à la page Routes dans la console Google Cloud.
Sous l'onglet Gestion des routes, recherchez une route qui inclut les adresses IP SMT SUSE et vérifiez que la passerelle par défaut de Compute Engine est définie comme saut suivant.
Si la route est manquante, vous pouvez l'ajouter en cliquant sur Créer une route et en saisissant les informations nécessaires.
Si vous utilisez un équilibreur de charge réseau interne passthrough, par exemple avec un logiciel réseau intermédiaire supplémentaire (pare-feu, NAT personnalisé, etc…), assurez-vous que l'équilibreur de charge est utilisé comme saut suivant pour le trafic de VM, en procédant comme suit :
Accédez à la page Instances de VM de la console Google Cloud.
Cliquez sur le nom de la VM que vous souhaitez vérifier. La page des détails de la VM s'affiche.
Dans la section Interfaces réseau, cliquez sur Afficher les détails.
Dans la section Détails des pare-feu et des routes, recherchez la route qui définit le chemin d'accès à la plage d'adresses IP souhaitée.
Cliquez sur le nom de la route et vérifiez que l'équilibreur de charge réseau passthrough interne ou que son adresse IP est définie comme saut suivant.
Si aucune route ne définit le chemin d'accès vers la plage d'adresses IP souhaitée ou si le saut suivant de la route est différent de l'équilibreur de charge réseau passthrough interne, sélectionnez Configurer l'équilibreur de charge réseau passthrough interne en tant que saut suivant.
Si vous utilisez un équilibreur de charge réseau passthrough interne, vérifiez qu'il se trouve dans la même région que la VM.
Accédez à la page Instances de VM de la console Google Cloud.
Recherchez la VM que vous souhaitez vérifier et notez sa région.
Accédez à la page Équilibrage de charge dans Google Cloud Console.
Localisez l'équilibreur de charge réseau passthrough interne utilisé et vérifiez s'il se trouve dans la même région que la VM.
Si la VM et l'équilibreur de charge réseau passthrough interne ne se trouvent pas dans la même région, activez l'accès mondial.
Accédez au répertoire
/etc/products.d
cd /etc/products.d
Exécutez la commande suivante en remplaçant
SLES.prod
parSLES_SAP.prod
si SLES pour SAP est installé:sudo ln -sf SLES.prod baseproduct
Arrêtez la VM :
gcloud compute instances stop VM_NAME
Ajoutez un compte de service à la VM:
gcloud compute instances set-service-account VM_NAME \ --service account SERVICE_ACCOUNT \ --no-scopes
Démarrez la VM :
gcloud compute instances start VM_NAME
Après avoir ajouté le compte de service manquant, exécutez la commande suivante à partir de la VM pour réenregistrer SLES:
sudo registercloudguest --force-new
Pour en savoir plus, consultez la section Réenregistrerment.
Supprimez le module SUSE Manager Client Tools, comme décrit dans le guide Supprimer des modules et des extensions.
Annulez l'enregistrement de SUMA en suivant le guide Comment annuler l'enregistrement de SUSE Manager Client.
Exécutez les commandes suivantes à partir de la VM pour nettoyer l'ancien enregistrement:
sudo SUSEConnect --cleanup && \ sudo registercloudguest --clean && \ sudo rm -f /etc/SUSEConnect && \ sudo rm -f /etc/zypp/{repos,services,credentials}.d/* && \ sudo rm -f /var/lib/cloudregister/* && \ sudo rm -rf /var/cache/zypp/* && \ sudo rm -rf /var/cache/cloudregister/* && \ sudo sed -i '/^# Added by SMT reg/,+1d' /etc/hosts
Exécutez la commande suivante pour réenregistrer le système:
sudo registercloudguest --force-new
Pour en savoir plus, consultez la section Réenregistrerment.
Une fois le processus d'enregistrement terminé, actualisez les services et les dépôts, et vérifiez si tous les dépôts attendus pour le système fourni par le serveur SMT sont présents:
sudo zypper ref -s && \ sudo zypper ls && \ sudo zypper lr -U
Problèmes de réseau
Nom de domaine non résolu
Vous pouvez rencontrer les problèmes suivants si la VM ne peut pas se connecter au serveur SMT
smt-gce.susecloud.net
:SUSEConnect error: SocketError: getaddrinfo: Name or service not known
ping: unknown host smt-gce.susecloud.net
Ces problèmes sont probablement causés par une résolution incorrecte du nom de domaine du serveur SMT
smt-gce.susecloud.net
. Ce domaine ne peut pas être résolu à l'échelle mondiale. Vous devez donc définir son adresse IP en fonction de la région de la VM en procédant comme suit:Vérifiez le fichier
/etc/hosts
pour vous assurer qu'il contient une entrée avec le domainesmt-gce.susecloud.net
.cat /etc/hosts | grep -i smt
Le résultat ressemble à ce qui suit, mais l'adresse IP peut être différente:
# Added by SMT registration do not remove, retain comment as well 108.59.80.221 smt-gce.susecloud.net smt-gce
Si le fichier
/etc/hosts
ne contient pas les mêmes lignes que l'exemple précédent, procédez comme suit:Indisponibilité du réseau
Vous pouvez rencontrer les erreurs suivantes en raison d'une indisponibilité du réseau, même si la VM est capable de résoudre le nom de domaine du serveur de mise à jour Compute Engine:
Unexpected exception. Not ready to read within timeout.
Repository 'SLE-Module-Adv-Systems-Management12-Pool' is invalid. Repository 'SLE-Module-Adv-Systems-Management12-Updates' is invalid.
Voici quelques exemples d'erreurs dans le fichier journal
/var/log/cloudregister
, que vous pouvez trouver lors de l'enquête:WARNING:Unable to remove client registration from server WARNING:HTTPSConnectionPool(host='smt-gce.susecloud.net', port=443): Max retries exceeded with url: /connect/systems (Caused by NewConnectionError('
: Failed to establish a new connection: [Errno 110] Connection timed out',)) INFO:Region server arguments: ?regionHint=europe-central2 ERROR:No response from: [('34.118.112.80', None), ('34.116.251.218', None), ('34.116.224.144', None)]
Pour en savoir plus sur la cause du problème, effectuez un test de connectivité réseau. L'exemple suivant montre comment tester une connexion HTTPS à l'aide de
cURL
:curl -sSI -m 5 -o /dev/null \ -w 'Response code (>0 is OK): %{http_code}\n' \ 'https://smt-gce.susecloud.net'
Le résultat de la commande contient un code de réponse HTTP ou un message d'erreur. Voici les réponses et les erreurs courantes:
Dans certains cas, par exemple dans le cas de règles de pare-feu d'hôte strictes, l'adresse IP par défaut associée au domaine
smt-gce.susecloud.net
peut ne pas être disponible. Pour vous assurer que le problème n'est pas uniquement lié à l'adresse IP actuelle, effectuez des tests de connectivité réseau pour les autres serveurs régionaux. Pour récupérer la liste des serveurs régionaux, procédez comme suit:WebUI
Accédez à SUSE WebUI pour obtenir la liste des serveurs de mise à jour régionaux.
CLI
Utilisez l'outil
pint
pour obtenir la liste des serveurs de mise à jour régionaux via la CLI.Pour trouver la liste complète des adresses IP de serveurs SUSE pour Google Cloud, consultez les documents suivants:
L'indisponibilité du réseau peut être due à une mauvaise configuration de la VM. En cas de problème, il est nécessaire d'effectuer des diagnostics réseau pour identifier la cause première.
Échec de l'enregistrement
Vous pouvez rencontrer l'erreur suivante si vous avez des VM disposant d'une adresse IP privée dans Cloud NAT:
ERROR: Registration failed: Registering system to registration proxy https://smt-gce.susecloud.net command '/usr/bin/zypper --non-interactive refs Python_3_Module_x86_64' failed Error: zypper returned 4 with 'Problem retrieving the repository index file for service 'Python_3_Module_x86_64': Timeout exceeded when accessing 'https://smt-gce.susecloud.net/services/2045/repo/repoindex.xml?credentials=Python_3_Module_x86_64'.
Pour résoudre ce problème, examinez la configuration Cloud NAT pour vérifier que le paramètre nombre minimal de ports par instance de VM est défini sur au moins 256.
Pour plus d'informations, consultez le bulletin d'assistance SUSE Échec de l'enregistrement et de zypper pour les instances Compute Engine derrière Cloud NAT.
Aucune réponse
Si votre VM rencontre des problèmes de communication avec les serveurs de mises à jour et de régions, vous pouvez rencontrer les erreurs suivantes:
Ces erreurs peuvent être causées par l'absence de réponse des serveurs de mise à jour et de région. Pour le vérifier, recherchez le contenu similaire dans les journaux
/var/log/cloudregister
:INFO:Region server arguments: ?regionHint=europe-central2 INFO:Using API: regionInfo INFO:Region server arguments: ?regionHint=europe-central2 INFO:Getting update server information, attempt 1 INFO: Using region server: 130.211.242.136 ERROR: No response from: 130.211.242.136 INFO: Using region server: 35.187.193.56 ERROR: No response from: 35.187.193.56 INFO: Using region server: 162.222.182.90 ERROR: No response from: 162.222.182.90 INFO: Using region server: 130.211.88.88 ERROR: No response from: 130.211.88.88 ERROR: None of the servers responded ERROR: Attempted: [IPv4Address('130.211.242.136'), IPv4Address('35.187.193.56'), IPv4Address('162.222.182.90'), IPv4Address('130.211.88.88')] ... ... ... ERROR:Request not answered by any server after 3 attempts ERROR:Exiting without registration
Pour résoudre ce problème, essayez une ou plusieurs des solutions suivantes :
Problèmes de configuration de l'OS
État d'enregistrement inconnu
Si vous ne savez pas si votre paiement à l'usage (PAYG) SUSE Linux Enterprise Server (SLES) est enregistré, exécutez la commande suivante:
sudo SUSEConnect --status-text
La sortie contient la version et l'état d'enregistrement des produits SUSE, y compris SUSE Linux Enterprise Server.
Installed Products: ------------------------------------------ SUSE Linux Enterprise Server 12 SP5 (SLES/12.5/x86_64) Registered ------------------------------------------ ...
Si l'état est
Not Registered
, reprenez la procédure de réenregistrement pour résoudre le problème.Lien symbolique du produit de base incorrect
Vous pouvez rencontrer les erreurs suivantes si le lien du produit de base pointe vers un fichier de produit incorrect:
ERROR:Unable to obtain product information from server "108.59.85.41,None" Unprocessable Entity {"type":"error","error":"Unmet product dependencies, activate one of these products first: SUSE Linux Enterprise Server 12 x86_64... ... Unable to register modules, exiting.
Cette erreur est due à un fichier produit incorrect (par exemple
sle-module-toolchain.prod
) vers lequel pointe le lien symbolique/etc/products.d/baseproduct
.Pour résoudre ce problème, mettez à jour le lien symbolique dans
/etc/products.d/baseproduct
pour qu'il pointe vers le fichier de produit de base approprié en procédant comme suit:Indisponibilité des informations sur l'identité de l'instance
Vous pouvez rencontrer les erreurs suivantes si les informations d'identité de l'instance ne sont pas disponibles pour la VM:
ERROR:Data collected from stderr for instance data collection "b'Unable to access instance identity information\n'"
Pour accéder aux métadonnées d'instance des jetons d'identité, toutes les VM doivent être associées à un compte de service.
Pour en savoir plus, consultez la page Mise à jour de l'infrastructure du cloud public.
Pour vérifier que la VM est pertinente dans cette situation, exécutez la commande suivante sur la VM:
curl -s -H 'Metadata-Flavor: Google' \ 'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=test'
Exemple de réponse réussie avec un jeton d'identité:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjkzOTd0MDQxSHQ2NDNxNzkzUjY1MDIwNzEyMjZPNnppaTdqNTl3eTciLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJ0ZXN0IiwiYXpwIjoiMjY1MDIwMDUyMzgzMjYyNTk0ODU2IiwiZXhwIjoxNjgzNzEyNTQzLCJpYXQiOjE2ODM3MTI4NjQsImlzcyI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbSIsInN1YiI6IjQ1NjA2MzQ5MDg5Mzc0Njg3ODI5NyJ9.EpzQ3NZ8mKStdpH10fL34qsKG0rjQEflzvLJLm2tVNX4xBJAkMhi8lcs5InUEY-QMK3njgbzdzNtD1fXoIfKoeWsqkA8vG3NkBz5zqRrtaB2STcO14H5tjIdTBsrCtET447tRXlGG5cvgMcWnRDZG92-jUZEpWki_Ri4T69X5-bBWkfE2Thm3oSUW4fScdeVOEmOgWnzD2jeVqQ_2YniywvpkT-rLzKfN-5AgN66zgBfXqJVTC90KFMebfiaOoL7z6ZSM9AjZGf45QEMZjxjd-Xzyee6ZWK8s0RE3hJlytb3zYcLt3tJwQ1WhnrC2ToJ-ZmKxxK3xKDLCvCQ6Ny5to
Si les métadonnées renvoyées ne sont pas un jeton, mais un message d'erreur tel que celui-ci, la VM est affectée:
{ "error": "invalid_request", "error_description": "Service account not enabled on this instance" }
Pour résoudre ce problème, procédez comme suit :
Enregistrement derrière les proxys
Vous pouvez rencontrer un problème si vos VM sont configurées pour utiliser n'importe quel type de logiciel proxy. L'exemple suivant illustre une tentative d'enregistrement de SLES via un proxy HTTP.
ERROR: Baseproduct registration failed ERROR: Registering system to registration proxy https://smt-gce.susecloud.net Announcing system to https://smt-gce.susecloud.net ... SUSEConnect error: Net::HTTPFatalError: 503 "Service Unavailable"
SUSE sur Compute Engine ne fournit pas de compatibilité officielle pour l'enregistrement des systèmes d'exploitation lors de l'exécution par des intermédiaires qui modifient la communication d'origine, tels que les proxys de type MITM (man-in-the-middle) ou non transparent.
La solution officielle pour résoudre ce problème consiste à configurer Cloud NAT et à acheminer le trafic des VM via Cloud NAT.
Solutions courantes
Réenregistrement
Dans certains cas, une approche de réenregistrement peut être utilisée pour contourner les problèmes d'enregistrement.
Pour forcer un nouvel enregistrement, utilisez la commande suivante:
sudo registercloudguest --force-new
Si l'opération réussit, la ligne suivante sera le résultat.
Registration succeeded
Vous trouverez les détails du processus de réenregistrement dans
/var/log/cloudregister
.Exemple de réussite
INFO:Forced new registration INFO:Clean current registration server: ('108.59.80.221', None) ... INFO:Starting new HTTP connection (1): 169.254.169.254 INFO:Region server arguments: ?regionHint=us-central1 INFO:Using region server: 130.211.242.136 INFO:Starting new HTTPS connection (1): 130.211.242.136 INFO:Starting new HTTPS connection (1): 108.59.80.58 INFO:Modified /etc/hosts, added: 108.59.80.58 smt-gce.susecloud.net smt-gce ... INFO:Starting new HTTPS connection (1): 108.59.80.58 DEBUG:"GET /api/health/status HTTP/1.1" 200 None INFO:Current update server will be used: "('108.59.80.58', None)" INFO:Starting new HTTPS connection (1): smt-gce.susecloud.net DEBUG:"POST /connect/systems/products/migrations HTTP/1.1" 422 None INFO:Registration: /usr/sbin/SUSEConnect --url https://smt-gce.susecloud.net --product sle-module-containers/12/x86_64 --instance-data /var/lib/cloudregister/9c982106-78de-48fe-a662-20383da4c760
Exemple d'échec
INFO:Forced new registration INFO:Using API: regionInfo INFO:Starting new HTTP connection (1): 169.254.169.254 INFO:Region server arguments: ?regionHint=us-central1 INFO:Using region server: 130.211.242.136 INFO:Starting new HTTPS connection (1): 130.211.242.136 ERROR:No response from: 130.211.242.136 INFO:Using region server: 130.211.88.88 INFO:Starting new HTTPS connection (1): 130.211.88.88 ERROR:No response from: 130.211.88.88 INFO:Using region server: 146.148.73.14 INFO:Starting new HTTPS connection (1): 146.148.73.14 ERROR:No response from: 146.148.73.14 ERROR:None of the servers responded ERROR: Attempted: ['130.211.242.136', '130.211.88.88', '146.148.73.14'] ERROR:Exiting without registration
Annulation de l'enregistrement
Dans certains cas, comme une mise à niveau de version majeure, vous pouvez rencontrer les erreurs suivantes, car le système est déjà enregistré auprès de SUMA:
Can't get available migrations from server: SUSE::Connect::ApiError: The requested products 'SUSE Manager Client Tools for SLE 12 x86_64' are not activated on the system.
This system is managed by SUSE manager.
Pour résoudre le problème, procédez comme suit:
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/12/22 (UTC).
-