Saltar al contenido

¿Cómo soluciono los problemas al actualizar el sistema operativo SUSE en mi instancia EC2?

5 minutos de lectura
0

He intentado actualizar el sistema operativo (SO) de SUSE en mi instancia de Amazon Elastic Compute Cloud (Amazon EC2) y se muestran errores.

Resolución

Comprobación de fallos de comprobación del estado de la instancia

Si se muestran otros errores de comprobación de estado de instancias, consulta ¿Cómo puedo solucionar el problema de una instancia de EC2 de Linux que no supera la comprobación de estado debido a problemas con el sistema operativo?

Uso del script susecloud-repocheck para diagnosticar y corregir automáticamente los problemas menores

El script susecloud-repocheck comprueba el repositorio del sistema operativo y corrige los problemas que impiden que la instancia se registre en la infraestructura de actualizaciones de SUSE para los siguientes servicios de computación en nube:

  • Microsoft Azure
  • AWS
  • Google Cloud Platform (GCP)
  • Instancias bajo demanda de pago por uso (PAYG)

Para obtener más información, consulta susecloud-repocheck en el repositorio de SUSE GitHub.

Para ejecutar el script, utiliza el siguiente comando:

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

El script crea registros en el directorio /var/log/ con el nombre sc-repocheck_<YYMMDD_hhmmss>.tar.xz.

Verificación manual del registro y resolución de errores de actualización

Verifica el código de la instancia billingProducts o marketplaceProductCodes

En el caso de SUSE Linux Enterprise Server (SLES) estándar de PAYG, verifica el código billingProducts de la instancia. Para las aplicaciones PAYG SLES para SAP, verifica el código marketplaceProductCodes.

Para verificar el código billingProducts o marketplaceProductCodes, ejecuta el siguiente comando:

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

Obtendrás el siguiente resultado para el comando:

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

Alternativa:

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

Comprueba las entradas de registro SMT en el archivo /etc/hosts

En el archivo /etc/hosts, busca una entrada que siga la línea # Agregado por el registro SMT, no eliminar, conserva también el comentario.

Nota: Existe más de un servidor de actualizaciones de nube pública de SUSE en una región de AWS. Para obtener más información, consulta la lista de direcciones IP de servidores de actualizaciones para las regiones de AWS en el sitio web de SUSE Public Cloud Solutions.

Para comprobar el estado de registro actual, ejecuta el siguiente comando:

# SUSEConnect -s

En el resultado del comando anterior, comprueba que el parámetro Status es Resgistered o Not registered. Si el resultado es No registrado, vuelve a registrar la instancia.

Para volver a registrar la instancia, ejecuta el siguiente comando:

# registercloudguest --force-new

Para eliminar entradas de registros anteriores, ejecuta el siguiente comando:

# registercloudguest --clean

Para comprobar el estado de registro actual, ejecuta el siguiente comando:

# SUSEConnect -s

Si el registro falla, revisa los registros en /var/log/cloudregister para determinar el motivo del fallo.

Ejemplo de error en los registros:

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

Elimina cualquier entrada de registro duplicada o adicional de la herramienta de administración de suscripciones (SMT) del archivo /etc/hosts. El siguiente es un ejemplo de entrada que se ha agregado en un registro de 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

Solución de errores de registro

Para solucionar los errores de registro más comunes, sigue estos pasos:

  1. Para verificar que hayas instalado cloud-regionsrv-client y los paquetes de dependencias relacionados necesarios en tu sistema operativo, ejecuta el siguiente 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'
    Resultado de ejemplo:
    libzypp-17.31.20-150400.3.40.1.x86_64suseconnect-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 los paquetes están desactualizados o faltan y el sistema operativo no tiene acceso a zypper, realiza la actualización sin conexión. Para actualizar sin conexión, descarga los paquetes rpm con Zypper en otro host que funcione y transfiere los rpm al host que no funcione. A continuación, realiza una instalación en Zypper de los paquetes rpm
  2. Identifica los repositorios faltantes.
  3. Si a tu instancia de SUSE le faltan repositorios de software, ejecuta los siguientes comandos para forzar un nuevo registro con todos los repositorios disponibles.
    # registercloudguest --force-new
    # SUSEConnect --list-extensions
    # zypper lr --uri

Uso de SUSE para forzar la reinscripción

Si sigues teniendo problemas, consulta los repositorios de software que faltan en la instancia de nube de AWS o Azure SUSE para forzar el nuevo registro en el sitio web de SUSE. Este método solo es para instancias de PAYG en Amazon EC2. Este método no funciona para las instancias de uso de tu propia suscripción (BYOS).

Para restablecer y volver a registrarte, ejecuta los siguientes comandos:

# rm /etc/SUSEConnect
# rm -f /etc/zypp/{repos,services,credentials}.d/*
# rm -f /usr/lib/zypp/plugins/services/*
# sed -i '/^# Added by SMT reg/,+1d' /etc/hosts
# /usr/sbin/registercloudguest --force-new

Ejecuta los siguientes comandos para verificar el registro:

# SUSEConnect -s
# zypper lr --uri

Actualiza tu paquete

Una instancia no se comunica con la infraestructura de actualizaciones de SUSE debido a que los paquetes están desactualizados. Para resolver este problema, consulta Cloud instance repos fail due to outdated packages (Los repositorios de instancias de Cloud fallan debido a paquetes desactualizados en el sitio web de SUSE).

Información relacionada

SUSE Linux Enterprise Server (SLES) on Amazon EC2 FAQs (Preguntas frecuentes sobre SUSE Linux Enterprise Server (SLES) en Amazon EC2)

OFICIAL DE AWSActualizada hace 7 meses