Come posso risolvere i problemi che si verificano quando aggiorno il sistema operativo SUSE sulla mia istanza EC2?

4 minuti di lettura
0

Ho provato ad aggiornare il sistema operativo (SO) SUSE sulla mia istanza Amazon Elastic Compute Cloud (Amazon EC2) e ho ricevuto messaggi di errore, ad esempio errore nel controllo dello stato dell'istanza, registrazione dell’SO annullata o errore nei comandi Zypper.

Risoluzione

Verifica gli errori nel controllo dello stato dell’istanza

Per gli errori nel controlo dello stato dell’istanza, consulta la sezione I controlli dello stato delle istanze sulla mia istanza Linux EC2 hanno esito negativo a causa di problemi del sistema operativo. In che modo posso risolvere il problema?

Usa lo script susecloud-repocheck per diagnosticare e risolvere automaticamente problemi di minore entità

Lo script susecloud-repocheck esegue un controllo del repository del SO. Inoltre, corregge i problemi che impediscono all'istanza di registrarsi nell'infrastruttura di aggiornamento SUSE per quanto segue:

  • Microsoft Azure
  • AWS
  • Piattaforma Google Cloud (GCP)
  • Istanze on demand con pagamento a consumo (PAYG)

Per ulteriori informazioni, consulta susecloud-repocheck nel repository SUSE di GitHub.

Utilizza il comando seguente per eseguire lo script:

$ python3 <(curl -sL https://raw.githubusercontent.com/SUSE/susecloud-repocheck/main/sc-repocheck.py)

Lo script crea i log nella directory /var/log/ denominata sc-repocheck_<YYMMDD_hhmmss>.tar.xz.

Verifica manualmente la registrazione e risolvi eventuali errori di aggiornamento

Verifica il codice dell'istanza billingProducts o marketplaceProductCodes

Per PAYG vanilla SLES, verifica il codice billingProducts dell'istanza. Per PAYG SLES for SAP Applications, verifica il codice MarketplaceProductCodes.

Esegui il comando seguente per verificare il codice billingProducts o 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'

Di seguito è riportato l'output del comando:

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

Oppure

"marketplaceProductCodes" : \[ "\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*" \],

Verifica le voci della registrazione SMT nel file /etc/hosts

Nel file /etc/hosts cerca una voce che segua la riga # aggiunta dalla registrazione SMT, non rimuoverla, conserva anche il commento.

Nota: in una regione AWS è presente più di un server di aggiornamento cloud pubblico SUSE. Per ulteriori informazioni, consulta l'elenco degli indirizzi IP dei server di aggiornamento per le regioni AWS sul sito Web di SUSE Public Cloud Solutions.

Per verificare lo stato corrente della registrazione, esegui il comando seguente:

# SUSEConnect -s

Nell'output del comando precedente, verifica che il parametro Stato sia Registrato o Non registrato. Se l'output è Non registrato, registra nuovamente l'istanza.

Per rimuovere le voci dalle registrazioni precedenti, esegui il comando seguente:

# registercloudguest --clean

Per registrare nuovamente l'istanza, esegui il comando seguente:

# registercloudguest --force-new

Per verificare lo stato corrente della registrazione, esegui il comando seguente:

# SUSEConnect -s

Se la registrazione ha esito negativo, analizza i log in /var/log/cloudregister per determinare il motivo dell'errore. Di seguito è riportato un esempio di errore nei log:

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

Rimuovi eventuali voci di registrazione SMT duplicate o aggiuntive nel file /etc/hosts. Di seguito è riportato un esempio di una voce aggiunta dalla registrazione SMT:

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

Risolvi gli errori di registrazione più comuni

Per risolvere gli errori di registrazione più comuni, completa i seguenti passaggi:

  1. Per verificare che il cloud-regionsrv-client richiesto e i relativi pacchetti di dipendenza siano installati nel sistema operativo, esegui il seguente comando:

    # 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'

    Quanto segue è un esempio del comando precedente:

    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

    Se i pacchetti sono vecchi o mancanti e il sistema operativo non ha accesso a Zypper, esegui l'aggiornamento offline. Per eseguire l'aggiornamento offline, scarica i pacchetti rpm usando Zypper su un altro host funzionante e trasferisci l’rpm sull'host non funzionante. Quindi, esegui un'installazione Zypper dei pacchetti rpm

  2. Identifica i repository mancanti.

  3. Se nell’istanza SUSE mancano i repository software, esegui i seguenti comandi per forzare una nuova registrazione con tutti i repository disponibili.

    # registercloudguest --force-new
    # SUSEConnect --list-extensions
    # zypper lr --uri

Informazioni correlate

Domande frequenti su SUSE Linux Enterprise Server (SLES) su Amazon EC2

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa