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

4 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, como falha na verificação do status da instância, SO sem registro ou falha nos comandos do Zypper.

Resolução

Verificar se há 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 executa uma verificação do repositório do sistema operacional. Além disso, ele corrige problemas que impedem que a instância se registre na infraestrutura de atualização do SUSE para o seguinte:

  • 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.

Verificar o registro manualmente e resolver falhas de upgrade

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

Para SLES vanilla PAYG, verifique o código billingProducts da instância. Para o SLES para Aplicações SAP PAYG , verifique o código marketplaceProductCodes.

Execute o seguinte comando para verificar o código billingProducts ou 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'

A seguir está a 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 remover entradas de registros anteriores, execute o seguinte comando:

# registercloudguest --clean

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

# registercloudguest --force-new

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. Veja a seguir um exemplo de erro nos logs:

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

Remova todas as entradas de registro SMT duplicadas ou adicionais no arquivo /etc/hosts. Veja a seguir um exemplo de entrada adicionado pelo registro 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

Solucionar erros comuns de registro

Para solucionar erros comuns 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'

    Veja a seguir um exemplo do comando anterior:

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

Informações relacionadas

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

AWS OFICIAL
AWS OFICIALAtualizada há um ano