¿Cómo puedo resolver los problemas que se producen al actualizar el sistema operativo SUSE en mi instancia EC2?

4 minutos de lectura
0

Estoy actualizando el sistema operativo (SO) SUSE en mi instancia de Amazon Elastic Compute Cloud (Amazon EC2). Estoy teniendo problemas durante la actualización, tales como fallos en la comprobación del estado de la instancia, sistemas operativos dados de baja o fallos en los comandos zypper.

Resolución

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

Si falla la comprobación del estado de una instancia después de actualizar el sistema operativo, consulte Mi instancia de EC2 Linux ha fallado en la comprobación del estado de la instancia debido a problemas con el sistema operativo. ¿Cómo lo puedo solucionar?

Comprobación automática de fallos de registro (solo instancias administradas)

Si su instancia es una instancia administrada en la consola de AWS Systems Manager, ejecute el documento de automatización AWSSupport-TroubleshootSUSERegistration. El documento de automatización AWSSupport-TroubleshootSUSERegistration ayuda a determinar la raíz del fallo de la actualización. Para más información, consulte ¿Por qué no puedo registrar mi instancia EC2 que ejecuta SUSE en la infraestructura de actualización de SUSE para poder instalar o actualizar paquetes?

Comprobación manual de los fallos de registro

Para las instancias que no son instancias administradas, compruebe los siguientes elementos:

Los dos principales requisitos previos determinados para el registro en la instancia son:

  • Instancia billingProducts o código marketplaceProductCodes.
  • La dirección IP de la conexión saliente debe pertenecer a un rango IP de AWS.
  1. Ejecute el siguiente comando para comprobar el código de billingProducts o marketplaceProductCodes:
# curl -s http://169.254.169.254/latest/dynamic/instance-identity/document

A continuación se muestra un ejemplo de resultado para el siguiente comando:

 billingProducts" : [ "bp-********" ]
  1. Compruebe las entradas de registro SMT en el archivo /etc/hosts. Busque una entrada después de la línea, # Añadida por registro de SMT, no elimine, retenga también el comentario.

Todas las regiones de AWS disponen de un servidor SMT diferente. Para encontrar la dirección IP del servidor SMT de una región sin utilizar la herramienta pint, consulte la lista de direcciones IP del servidor SMT en el sitio web susepubliccloudinfo.suse.com.

Ejecute el siguiente comando para verificar el estado del registro:

# SUSEConnect -s

En el resultado del comando anterior, compruebe que el parámetro Estado es Registrado o No registrado. Si el resultado es No registrado, intente volver a registrar la instancia.

Para volver a registrarlo, se recomienda eliminar los registros anteriores. Ejecute los siguientes comandos para limpiar las credenciales y los repositorios:

SUSEConnect --de-register
SUSEConnect --cleanup
rm -f /etc/SUSEConnect
rm -rf /etc/zypp/credentials.d/*
rm -rf /etc/zypp/repos.d/*
rm -f /etc/zypp/services.d/*

Elimine también la entrada de SMT añadida por el registro anterior en el archivo /etc/hosts. De lo contrario, el nuevo registro crea varias entradas SMT. Elimine o comente la siguiente entrada:

# vi /etc/hosts

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

Tras haber limpiado las entradas, ejecute el siguiente comando para volver a registrar la instancia:

# registercloudguest --force-new
# SUSEConnect -s

Si el registro falla, analice los registros en /var/log/cloudregister para determinar el motivo del fallo. A continuación se muestra un ejemplo de error en los registros:

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

Solucionar errores comunes de registro

  1. Ejecute el siguiente comando para comprobar que la versión de cloud-regionsrv-client es 9.0.0 o superior:
rpm -qa | grep cloud-regionsrv-client

A continuación se muestra un ejemplo del comando anterior:

cloud-regionsrv-client-9.0.3-52.16.1
cloud-regionsrv-client-plugin-ec2-1.0.0-52.16.1

Ejecute el siguiente comando para actualizar el paquete:

# zypper update cloud-regionsrv-client
  1. Ejecute el siguiente comando para comprobar que todos los paquetes necesarios están presentes en el sistema operativo:
# rpm -qa | grep -iE "cloud-regionsrv-client|regionServiceClientConfigEC2|ec2metadata|SUSEConnect|libzypp|ruby-common"

A continuación se muestra un ejemplo de resultado del comando anterior:

libzypp-17.31.8-150400.3.14.1.x86_64
python3-ec2metadata-4.0.0-150000.3.9.1.noarch
ruby-common-2.1-3.15.noarch
suseconnect-ng-1.0.0~git0.faee7c196dc1-150400.3.7.3.x86_64
libsuseconnect-1.0.0~git0.faee7c196dc1-150400.3.7.3.x86_64
suseconnect-ruby-bindings-1.0.0~git0.faee7c196dc1-150400.3.7.3.x86_64
regionServiceClientConfigEC2-4.1.0-150000.3.24.1.noarch
cloud-regionsrv-client-10.0.8-150000.6.86.1.noarch
cloud-regionsrv-client-plugin-ec2-1.0.2-150000.6.86.1.noarch

Si los paquetes son antiguos o faltan y el sistema operativo no tiene acceso a zypper, complete la actualización sin conexión. Para más información, consulte Actualización de la infraestructura de nube pública en el sitio web suse.com. La documentación de actualización de la infraestructura de nube pública incluye los módulos necesarios para la actualización y los últimos paquetes de registro:

# wget --no-check-certificate https://52.15.49.139/late_instance_offline_update_ec2_<arch>_<slebase>.tar.gz
# sha1sum late_instance_offline_update_ec2_<arch>_<slebase>.tar.gz
# tar -xf late_instance_offline_update_ec2_<arch>_<slebase>.tar.gz
# cd <arch>
# zypper --no-refresh --no-remote --non-interactive in *.rpm
  1. Identifique los repositorios faltantes.

Si a su instancia de SUSE le faltan repositorios de software, consulte Repositorios de software faltantes en la instancia en la nube de SUSE de AWS o Azure para forzar un nuevo registro con todos los repositorios disponibles.

Información relacionada

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

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 10 meses