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:
- 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
- Identifique repositórios ausentes.
- 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