Risoluzione dei problemi relativi alla registrazione con pagamento a consumo SLES

Questo documento descrive come risolvere i problemi che potresti riscontrare quando connetti le istanze di macchine virtuali (VM) Compute Engine che eseguono il pagamento a consumo (PAYG) SUSE Linux Enterprise Server (SLES) alla gestione abbonamenti SUSE il repository di strumenti (SMT).

Prima di iniziare

  • Assicurati che alla VM sia associato un account di servizio.
  • Assicurati che l'API Service Metadata è accessibile dalla VM.
  • Utilizza lo strumento sc-repocheck per a risolvere automaticamente i problemi.
  • Verifica la procedura descritta in Guida alla risoluzione dei problemi relativi a SUSE PAYG.
  • Se non l'hai già fatto, configura l'autenticazione. Autenticazione è la procedura di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.

Problemi di rete

Nome di dominio irrisolvibile

Potresti riscontrare i seguenti problemi se la VM non riesce a connettersi al smt-gce.susecloud.net server SMT:

SUSEConnect error: SocketError: getaddrinfo: Name or service not known
ping: unknown host smt-gce.susecloud.net

Questi problemi sono probabilmente causati da una risoluzione errata del dominio del server SMT nome smt-gce.susecloud.net. Questo dominio non è risolvibile a livello globale, quindi deve impostare il proprio indirizzo IP in base alla regione della VM, procedendo nel seguente modo:

Controlla il file /etc/hosts per assicurarti che contenga una voce con smt-gce.susecloud.net dominio.

cat /etc/hosts | grep -i smt

L'output è simile al seguente, ma l'indirizzo IP potrebbe essere diverso:

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

Se il file /etc/hosts non contiene le stesse righe dell'esempio precedente, segui questi passaggi:

  1. Trova un indirizzo IP che corrisponda alla regione della tua VM dal elenco di indirizzi IP SUSE SMT.

  2. Modifica il file per aggiungere l'indirizzo IP SUSE SMT ed eventuali altre informazioni che manca.

di Gemini Advanced.

Mancata disponibilità della rete

Potresti riscontrare i seguenti errori a causa dell'indisponibilità della rete, anche se La VM è in grado di risolvere il nome di dominio del server di aggiornamento di 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.

Di seguito sono riportati alcuni esempi di errori nel log /var/log/cloudregister durante l'indagine potresti trovare:

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)]

Per saperne di più sulla causa del problema, esegui una connettività di rete test. L'esempio seguente mostra come testare una connessione HTTPS utilizzando cURL:

curl -sSI -m 5 -o /dev/null \
  -w 'Response code (>0 is OK): %{http_code}\n' \
  'https://smt-gce.susecloud.net'

L'output del comando contiene un codice di risposta HTTP o un messaggio di errore. Di seguito sono riportate le risposte e gli errori più comuni:

  • Risposta riuscita:

    Response code (>0 is OK): 200
    
  • Errore di timeout della richiesta:

    Response code (>0 is OK): 000
    curl: (28) Connection timed out after 5001 milliseconds
    
  • Errore di dominio non risolvibile:

    Response code (>0 is OK): 000
    curl: (6) Could not resolve host: smt-gce.susecloud.net
    
di Gemini Advanced.

In alcuni scenari, ad esempio regole firewall host rigide, l'indirizzo IP predefinito associati al dominio smt-gce.susecloud.net potrebbero non essere disponibili. Per garantire che il problema non riguarda solo l'indirizzo IP corrente, ma di connettività per server regionali alternativi. Recupera l'elenco delle istanze i server nel seguente modo:

WebUI

Vai a SUSE WebUI. per ottenere l'elenco dei server di aggiornamento regionali.

interfaccia a riga di comando

Utilizza lo strumento pint per ottenere l'elenco dei server di aggiornamento regionali tramite l'interfaccia a riga di comando.

  1. Installa pacchetto richiesto

    sudo zypper install python3-susepubliccloudinfo
    
  2. Utilizza il comando seguente con una regione specifica

    pint google servers --region us-central1
    
  3. L'output riuscito contiene un elenco di voci in formato 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>
    

Per trovare l'elenco completo degli IP dei server SUSE per Google Cloud, visualizza quanto segue documenti:

L'indisponibilità della rete potrebbe essere dovuta a un'errata configurazione della VM. In caso di problemi è necessario eseguire la diagnostica della rete per identificare la causa principale.

Registrazione non riuscita

Potresti riscontrare il seguente errore se hai VM con un indirizzo IP privato in 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'.

Per risolvere il problema, esamina la configurazione di Cloud NAT per verificare che Il parametro del minimo di porte per istanza VM è impostato su almeno 160.

Per ulteriori informazioni, consulta Registrazione e zypper non riusciti per le istanze Compute Engine dietro Cloud NAT Bollettino di supporto SUSE.

Nessuna risposta

Se la tua VM riscontra problemi di comunicazione con i server di aggiornamento e di regione, potresti notare i seguenti errori:

  • SUSEConnect errore:

    SUSEConnect error: Errno::ETIMEDOUT: Connection timed out - connect(2) for "smt-gce.susecloud.net" port 443
    
  • zypper errore:

    Error retrieving metadata for 'SLE-Module-Adv-Systems-Management12-Pool':
    Not ready to read within timeout.
    ...
    

Questi errori possono essere causati dall'assenza di una risposta dall'aggiornamento e dalla regione server web. Per verificare se è questo il caso, controlla i log di /var/log/cloudregister per contenuti simili:

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

Per risolvere il problema, prova una o più delle seguenti operazioni:

  • Verifica che la VM abbia un indirizzo IP esterno o che il Virtual Private Cloud utilizza un NAT (Cloud NAT o una soluzione personalizzata).

  • Se hai modificato le regole di routing di rete predefinite, ad esempio limitando il pubblico Accesso a internet o routing del traffico attraverso una rete on-premise, aggiungi route manualmente per gli IP SMT attraverso il gateway predefinito di Compute Engine, nel seguente modo:

    1. Vai alla pagina Route nella console Google Cloud.

      Vai alla pagina Route

    2. Nella scheda Gestione del percorso, cerca un percorso che includa il SUSE. indirizzi IP SMT e verifica che abbia il valore Compute Engine un gateway VPN ad alta disponibilità impostato come hop successivo.

    3. Se il percorso non è presente, puoi aggiungerlo facendo clic su Crea route. e inserendo le informazioni necessarie.

  • Se utilizzi un bilanciatore del carico di rete passthrough interno, ad esempio con software di rete intermediari (come firewall, NAT personalizzati, ecc.), che il bilanciatore del carico venga usato come hop successivo per il traffico delle VM nel seguente modo:

    1. Vai alla pagina Istanze VM nella console Google Cloud.

      Vai alla pagina Istanze VM

    2. Fai clic sul nome della VM che vuoi controllare. Si apre la pagina Dettagli VM.

    3. Nella sezione Interfacce di rete, fai clic su Visualizza dettagli.

    4. Nella sezione Dettagli firewall e route, individua la route definisce il percorso dell'intervallo di indirizzi IP desiderato.

    5. Fai clic sul nome della route e verifica che il bilanciatore del carico di rete passthrough interno o il relativo L'indirizzo IP è impostato come hop successivo.

    Se non esiste una route che definisca il percorso dell'intervallo di indirizzi IP desiderato, Se invece l'hop successivo della route è diverso dal bilanciatore del carico di rete passthrough interno, di configurare il bilanciatore del carico di rete passthrough interno come hop successivo.

  • Se utilizzi un bilanciatore del carico di rete passthrough interno, verifica che si trovi in nella stessa regione della VM.

    1. Vai alla pagina Istanze VM nella console Google Cloud.

      Vai alla pagina Istanze VM

    2. Individua la VM che vuoi controllare e prendi nota della sua regione.

    3. Vai alla pagina Bilanciamento del carico nella console Google Cloud.

      Vai alla pagina Bilanciamento del carico

    4. Individua il bilanciatore del carico di rete passthrough interno utilizzato e controlla se si trova nello stesso regione come VM.

    5. Se la VM e il bilanciatore del carico di rete passthrough interno non si trovano nella stessa regione, abilita accesso globale.

Problemi di configurazione del sistema operativo

Stato della registrazione sconosciuto

Se non sai con certezza se il tuo sistema di pagamento a consumo (PAYG) SUSE Linux Enterprise Il server (SLES) è registrato, esegui questo comando:

sudo SUSEConnect --status-text

L'output contiene la versione e lo stato della registrazione dei prodotti SUSE, incluso SUSE Linux Enterprise Server.

Installed Products:
------------------------------------------

  SUSE Linux Enterprise Server 12 SP5
  (SLES/12.5/x86_64)

  Registered

------------------------------------------
...

Se lo stato è Not Registered, inizia dalla nuova registrazione per risolvere il problema.

Potresti riscontrare i seguenti errori se il link al prodotto di base rimanda a un file del prodotto errato:

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.

Questo errore è causato da un file del prodotto errato (ad es. sle-module-toolchain.prod) a cui punta il link simbolico /etc/products.d/baseproduct.

Per risolvere il problema, aggiorna il link simbolico all'indirizzo /etc/products.d/baseproduct in rimanda al file dei prodotti di base appropriato nel seguente modo:

  1. Vai alla directory /etc/products.d

      cd /etc/products.d
    
  2. Esegui questo comando sostituendo SLES.prod con SLES_SAP.prod se è installato SLES for SAP:

      sudo ln -sf SLES.prod baseproduct
    
di Gemini Advanced.

Nessuna disponibilità delle informazioni sull'identità dell'istanza

Potresti riscontrare i seguenti errori se le informazioni sull'identità dell'istanza sono non disponibile per la VM:

ERROR:Data collected from stderr for instance data collection "b'Unable to access instance identity information\n'"

Per accedere ai metadati dell'istanza per i token di identità tutte le VM devono essere associate a un account di servizio.

Per ulteriori informazioni, leggi l'articolo Aggiornamento dell'infrastruttura cloud pubblica.

Per verificare che la VM sia pertinente alla situazione, esegui questo comando la VM:

curl -s -H 'Metadata-Flavor: Google' \
  'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=test'

Esempio di risposta positiva con un token di identità:

eyJhbGciOiJSUzI1NiIsImtpZCI6IjkzOTd0MDQxSHQ2NDNxNzkzUjY1MDIwNzEyMjZPNnppaTdqNTl3eTciLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJ0ZXN0IiwiYXpwIjoiMjY1MDIwMDUyMzgzMjYyNTk0ODU2IiwiZXhwIjoxNjgzNzEyNTQzLCJpYXQiOjE2ODM3MTI4NjQsImlzcyI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbSIsInN1YiI6IjQ1NjA2MzQ5MDg5Mzc0Njg3ODI5NyJ9.EpzQ3NZ8mKStdpH10fL34qsKG0rjQEflzvLJLm2tVNX4xBJAkMhi8lcs5InUEY-QMK3njgbzdzNtD1fXoIfKoeWsqkA8vG3NkBz5zqRrtaB2STcO14H5tjIdTBsrCtET447tRXlGG5cvgMcWnRDZG92-jUZEpWki_Ri4T69X5-bBWkfE2Thm3oSUW4fScdeVOEmOgWnzD2jeVqQ_2YniywvpkT-rLzKfN-5AgN66zgBfXqJVTC90KFMebfiaOoL7z6ZSM9AjZGf45QEMZjxjd-Xzyee6ZWK8s0RE3hJlytb3zYcLt3tJwQ1WhnrC2ToJ-ZmKxxK3xKDLCvCQ6Ny5to

Se i metadati restituiti non sono un token, ma un messaggio di errore come di seguito, la VM è interessata:

{
  "error": "invalid_request",
  "error_description": "Service account not enabled on this instance"
}

Per risolvere il problema:

  1. Arresta la VM:

    gcloud compute instances stop VM_NAME
    
  2. Aggiungi un account di servizio alla VM:

    gcloud compute instances set-service-account VM_NAME \
      --service account SERVICE_ACCOUNT \
      --no-scopes
    
  3. Avvia la VM:

    gcloud compute instances start VM_NAME
    
  4. Dopo aver aggiunto l'account di servizio mancante, esegui questo comando VM per registrare di nuovo lo SLES:

    sudo registercloudguest --force-new
    

    Controlla i dettagli nella sezione Nuova registrazione.

Registrazione dietro proxy

Potresti riscontrare un problema se le tue VM sono configurate per utilizzare qualsiasi tipo del software di proxy. L'esempio seguente mostra un tentativo di registrazione tramite 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 su Compute Engine non fornisce supporto ufficiale per il funzionamento registrazione al sistema se eseguita tramite intermediari che modificano comunicazione originale, ad esempio proxy man in the middle (MITM) o tipi non trasparenti.

La soluzione ufficiale per risolvere il problema è configurare Cloud NAT. e indirizzare il traffico delle VM al suo interno.

Soluzioni alternative comuni

Nuova registrazione

In alcuni casi, è possibile ricorrere all'approccio basato sulla nuova registrazione per aggirare problemi di registrazione.

Per forzare una nuova registrazione, utilizza il seguente comando:

sudo registercloudguest --force-new

Se l'operazione ha esito positivo, verrà restituita la riga seguente.

Registration succeeded

Puoi trovare i dettagli della procedura di nuova registrazione nel /var/log/cloudregister.

Esempio riuscito

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

Esempio di errore

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

Annullamento della registrazione

In alcuni casi, ad esempio in un upgrade principale della release, potresti riscontrare quanto segue: errori perché il sistema è già registrato in 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.

Risolvi il problema procedendo nel seguente modo:

  1. Rimuovi il modulo Strumenti client di SUSE Manager come descritto nella guida Eliminazione di moduli ed estensioni.

  2. Annulla la registrazione da SUMA seguendo la guida su come annullare la registrazione di un client SUSE Manager.

  3. Esegui i comandi seguenti dalla VM per ripulire la vecchia registrazione:

      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
    
  4. Esegui questo comando per registrare di nuovo il sistema:

      sudo registercloudguest --force-new
    

    Controlla i dettagli nella sezione Nuova registrazione.

  5. Al termine della procedura di registrazione, aggiorna i servizi e e controllare se tutti i repository previsti per il sistema forniti dal server SMT sono presenti:

      sudo zypper ref -s && \
        sudo zypper ls && \
        sudo zypper lr -U