Ir para o conteúdo

Como posso solucionar problemas quando faço upgrade do sistema operacional SUSE na minha instância do EC2?

5 minuto de leitura
0

Tentei atualizar o sistema operacional (SO) SUSE na minha instância do Amazon Elastic Compute Cloud (Amazon EC2) e recebi erros.

Resolução

Verificar as falhas na verificação do status da instância

Para obter exemplos de falhas na verificação de status, consulte Como solucionar problemas de uma instância do Linux do EC2 que falhou na verificação do status da instância devido a problemas no sistema operacional?

Use o script susecloud-repocheck para diagnosticar e corrigir automaticamente problemas menores

O script susecloud-repocheck realiza uma verificação do repositório do sistema operacional e corrige problemas que impedem que a instância se registre na infraestrutura de atualização do SUSE para os seguintes serviços de computação em nuvem:

  • Microsoft Azure
  • AWS
  • Google Cloud Platform (GCP)
  • Instâncias sob demanda com pagamento conforme o uso (PAYG)

Para obter mais informações, consulte susecloud-repocheck no repositório do SUSE GitHub.

Para executar o script, use o seguinte comando:

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

O script cria logs no diretório /var/log/ com o nome sc-repocheck_<YYMMDD_hhmmss>.tar.xz.

Verifique o registro manualmente e resolva falhas de upgrade

Verifique o código billingProducts ou marketplaceProductCodes da instância

Para o PAYG vanilla SUSE Linux Enterprise Server (SLES), verifique o código BillingProducts da instância. Para o SLES para Aplicações SAP PAYG , verifique o código marketplaceProductCodes.

Para verificar o código billingProducts ou marketplaceProductCodes, execute o seguinte 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'

Você obtém a seguinte saída para o comando:

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

-ou-

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

Verifique as entradas de registro SMT no arquivo /etc/hosts

No arquivo /etc/hosts, procure uma entrada que siga a linha # Added by SMT registration do not remove, retain comment as well.

Observação: existe mais de um servidor de atualização de nuvem pública do SUSE em uma região da AWS. Para obter mais informações, consulte a lista de endereços IP de servidores de atualização para regiões da AWS, no site SUSE Public Cloud Solutions.

Para verificar o status atual do registro, execute o seguinte comando:

# 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, registre novamente a instância.

Para registrar novamente a instância, execute o seguinte comando:

# registercloudguest --force-new

Para remover entradas de registros anteriores, execute o seguinte comando:

# registercloudguest --clean

Para verificar o status atual do registro, execute o seguinte comando:

# SUSEConnect -s

Se o registro falhar, analise os logs em /var/log/cloudregister para determinar o motivo da falha.

Exemplo de erro nos logs:

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

Remova todas as entradas de registro duplicadas ou adicionais da ferramenta de gerenciamento de assinaturas (SMT) no arquivo /etc/hosts. Veja a seguir um exemplo de entrada que um registro SMT adicionou:

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

Solucionar erros de registro

Para solucionar erros de registro, conclua as etapas a seguir:

  1. Para verificar se os pacotes necessários cloud-regionsrv-client e os pacotes de dependência relacionados estão instalados no seu sistema operacional, execute o seguinte 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'
    Exemplo de saída:
    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
    Se os pacotes estiverem desatualizados ou ausentes e o sistema operacional não tiver acesso ao Zypper, faça upgrade offline. Para fazer upgrade offline, baixe os pacotes rpm usando o Zypper em outro host funcional e transfira o rpm para o host que não está funcionando. Em seguida, execute uma instalação do Zypper dos pacotes rpm
  2. Identifique repositórios ausentes.
  3. Se a sua instância do SUSE não tiver repositórios de software, execute os seguintes comandos para forçar um novo registro com todos os repositórios disponíveis.
    # registercloudguest --force-new
    # SUSEConnect --list-extensions
    # zypper lr --uri

Use o SUSE para forçar o novo registro

Se você ainda tiver problemas, consulte Instância de nuvem SUSE da AWS ou do Azure sem repositórios de software para forçar o novo registro no site da SUSE. Esse método é somente para instâncias PAYG no Amazon EC2. Esse método não funciona para instâncias de traga sua própria assinatura (BYOS).

Para redefinir e se registrar novamente, execute os seguintes 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

Para verificar o registro, execute os seguintes comandos:

# SUSEConnect -s
# zypper lr --uri

Atualize seu pacote

Uma instância não consegue se comunicar com a infraestrutura de atualização do SUSE devido a pacotes desatualizados. Para resolver esse problema, consulte Falha nos repositórios de instâncias de nuvem devido a pacotes desatualizados no site da SUSE.

Informações relacionadas

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

AWS OFICIALAtualizada há 7 meses