Como posso resolver os problemas que ocorrem durante a atualização do sistema operacional SUSE na minha instância do EC2?

4 minuto de leitura
0

Estou atualizando o sistema operacional (OS) SUSE na minha instância do Amazon Elastic Compute Cloud (Amazon EC2). Estou tendo problemas durante a atualização, como falha na verificação do status da instância, sistema operacional cancelado ou falha nos comandos do zypper.

Resolução

Verificar a falha na verificação do status da instância

Se a verificação do status da instância falhar após a atualização do sistema operacional, consulte Minha instância Linux do EC2 falhou na verificação do status da instância devido a problemas no sistema operacional. Como solucionar isso?

Verificar automaticamente se há falhas de registro (somente instâncias gerenciadas)

Se sua instância for gerenciada no console do AWS Systems Manager, execute o documento de automação AWSSupport-TroubleshootSUSERegistration. O documento de automação AWSSupport-TroubleshootSUSERegistration ajuda a determinar a causa raiz da falha da atualização. Para obter mais informações, consulte Por que não consigo registrar minha instância do EC2 executando o SUSE na infraestrutura de atualização do SUSE para poder instalar ou atualizar pacotes?

Verificar manualmente as falhas de registro

Para instâncias que não são gerenciadas, verifique os seguintes itens:

Os dois principais pré-requisitos determinados para o registro da instância são:

  • Código da instância billingProducts ou marketplaceProductCodes.
  • O endereço IP de conexão de saída deve pertencer a um intervalo de IP da AWS.

1.    Execute o seguinte comando para verificar o código billingProducts ou marketplaceProductCodes:

# curl -s http://169.254.169.254/latest/dynamic/instance-identity/document

Veja a seguir um exemplo de saída para o seguinte comando:

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

2.    Verifique as entradas de registro SMT no arquivo /etc/hosts. Procure uma entrada após a linha**# Adicionada pelo registro SMT, não remova, retenha comentários também**.

Cada região da AWS tem um servidor SMT diferente. Para encontrar o endereço IP do servidor SMT para uma região sem usar a ferramenta pint, consulte a lista de endereços IP do servidor SMT no site susepubliccloudinfo.suse.com.

Execute o comando a seguir para verificar o status do registro:

# SUSEConnect -s

Na saída do comando anterior, verifique se o parâmetro Status é Registrado ou Não registrado. Se a saída for Não registrado, tente registrar novamente a instância.

Para registrar novamente, é uma prática recomendada remover registros anteriores. Execute os seguintes comandos para limpar credenciais e repositórios:

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/*

Além disso, remova a entrada SMT adicionada pelo registro anterior no arquivo /etc/hosts. Caso contrário, o novo registro criará várias entradas SMT. Remova ou comente a seguinte 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

Depois de limpar as entradas, execute o seguinte comando para registrar novamente a instância:

# registercloudguest --force-new
# SUSEConnect -s

Se o registro falhar, analise os registros em /var/log/cloudregister para determinar o motivo da falha. Veja a seguir um exemplo de erro nos logs:

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

Solucionar erros comuns de registro

1.    Execute o comando a seguir para verificar se a versão do cloud-regionsrv-client é 9.0.0 ou posterior:

rpm -qa | grep cloud-regionsrv-client

Veja a seguir um exemplo do comando anterior:

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

Execute o comando a seguir para atualizar o pacote:

# zypper update cloud-regionsrv-client

2.    Execute o comando a seguir para verificar se todos os pacotes necessários estão presentes em seu sistema operacional:

# rpm -qa | grep -iE "cloud-regionsrv-client|regionServiceClientConfigEC2|ec2metadata|SUSEConnect|libzypp|ruby-common"

Veja a seguir um exemplo de saída do 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

Se os pacotes forem antigos ou ausentes e o sistema operacional não tiver acesso ao zypper, conclua a atualização offline. Para obter mais informações, consulte Atualização da infraestrutura de nuvem pública no site suse.com. A documentação da atualização da infraestrutura de nuvem pública inclui os módulos necessários para a atualização e os pacotes de registro mais recentes:

# 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

3.    Identifique os repositórios ausentes.

Se sua instância SUSE não tiver repositórios de software, consulte os repositórios de software ausentes da instância de nuvem SUSE da AWS ou do Azure para forçar um novo registro em todos os repositórios disponíveis.

Informações relacionadas

Perguntas frequentes sobre o SUSE Linux Enterprise Server (SLES) no Amazon EC2

AWS OFICIAL
AWS OFICIALAtualizada há 10 meses