Neste documento, descrevemos como resolver problemas que podem ocorrer ao conectar instâncias de máquina virtual (VM) do Compute Engine que executam o SUSE Linux Enterprise Server (SLES) de pagamento por utilização (PAYG) ao repositório de ferramentas de gerenciamento de assinaturas (SMT) do SUSE.
Antes de começar
- Verifique se a VM tem uma conta de serviço associada.
- Verifique se a API Service Metadata pode ser acessada pela VM.
- Use a ferramenta sc-repocheck para resolver os problemas automaticamente.
- Verifique as etapas descritas no guia Solução de problemas do SUSE PAYG.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine da seguinte maneira.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Encontre um endereço IP que corresponda à região da VM na lista de endereços IP do SUSE SMT.
Edite o arquivo para adicionar o endereço IP do SUSE SMT e qualquer outra informação que esteja faltando.
Resposta bem-sucedida:
Response code (>0 is OK): 200
Erro de tempo limite da solicitação:
Response code (>0 is OK): 000 curl: (28) Connection timed out after 5001 milliseconds
Erro de domínio não resolvido:
Response code (>0 is OK): 000 curl: (6) Could not resolve host: smt-gce.susecloud.net
Instalar o pacote necessário
sudo zypper install python3-susepubliccloudinfo
Use o comando a seguir com a região específica
pint google servers --region us-central1
A saída bem-sucedida contém uma lista de entradas no formato XML
<?xml version='1.0' encoding='UTF-8'?> <servers> <server ip="146.148.73.14" name="" region="us-central1" type="regionserver-sles"/> <server ip="162.222.182.90" name="" region="us-central1" type="regionserver-sap"/> <server ip="108.59.80.221" name="smt-gce.susecloud.net" region="us-central1" type="smt"/> <server ip="108.59.85.41" name="smt-gce.susecloud.net" region="us-central1" type="smt"/> <server ip="108.59.80.58" name="smt-gce.susecloud.net" region="us-central1" type="smt"/> </servers>
Erro
SUSEConnect
:SUSEConnect error: Errno::ETIMEDOUT: Connection timed out - connect(2) for "smt-gce.susecloud.net" port 443
Erro
zypper
:Error retrieving metadata for 'SLE-Module-Adv-Systems-Management12-Pool': Not ready to read within timeout. ...
Confirme se a VM tem um endereço IP externo ou se a sub-rede da nuvem privada virtual usa NAT (Cloud NAT ou uma solução personalizada).
Se você tiver modificado as regras de roteamento de rede padrão, como ao limitar o acesso público à Internet ou rotear o tráfego por meio de uma rede local, adicione rotas manualmente para IPs SMT pelo gateway padrão do Compute Engine fazendo o seguinte:
Acesse a página Rotas no console do Google Cloud.
Na guia Gerenciamento de rotas, procure uma rota que inclua os endereços IP SMT do SUSE e verifique se ela tem o gateway padrão do Compute Engine definido como o próximo salto.
Se a rota estiver ausente, adicione-a clicando em Criar rota e inserindo as informações necessárias.
Se você estiver usando um balanceador de carga de rede de passagem interna, por exemplo, com outro software de rede intermediário (como firewalls, NATs personalizados etc.), verifique se o balanceador de carga está sendo usado como o próximo salto para o tráfego de VMs fazendo o seguinte:
Acesse a página Instâncias de VMs no Console do Google Cloud.
Clique no nome da VM que você quer verificar. A página de detalhes da VM é aberta.
Na seção Interfaces de rede, clique em Conferir detalhes.
Na seção Detalhes de firewall e de rotas, localize a rota que define o caminho para o intervalo de endereços IP desejado.
Clique no nome da rota e confirme se o balanceador de carga de rede de passagem interna ou o endereço IP dele está definido como o próximo salto.
Se não houver nenhuma rota que defina o caminho para o intervalo de endereços IP desejado ou se o próximo salto da rota for diferente do balanceador de carga de rede de passagem interna, configure o balanceador de carga de rede de passagem interna como o próximo salto.
Se você estiver usando um balanceador de carga de rede de passagem interna, confirme se ele está na mesma região que a VM.
Acesse a página Instâncias de VMs no Console do Google Cloud.
Localize a VM que você quer verificar e anote a região dela.
Acesse a página Balanceamento de carga no Console do Google Cloud.
Localize o balanceador de carga de rede de passagem interna usado e verifique se ele está na mesma região que a VM.
Se a VM e o balanceador de carga de rede de passagem interna não estiverem na mesma região, ative o acesso global.
Navegue até o diretório
/etc/products.d
cd /etc/products.d
Execute o comando a seguir substituindo
SLES.prod
porSLES_SAP.prod
se o SLES para SAP estiver instalado:sudo ln -sf SLES.prod baseproduct
Pare a VM:
gcloud compute instances stop VM_NAME
Adicione uma conta de serviço à VM:
gcloud compute instances set-service-account VM_NAME \ --service account SERVICE_ACCOUNT \ --no-scopes
Inicie a VM:
gcloud compute instances start VM_NAME
Depois de adicionar a conta de serviço ausente, execute o seguinte comando na VM para registrar novamente o SLES:
sudo registercloudguest --force-new
Confira os detalhes na seção Novo registro.
Remova o módulo de ferramentas de cliente do gerenciador do SUSE, conforme descrito no guia Como excluir módulos e extensões.
Cancele o registro no SUMA seguindo o guia Como cancelar o registro de um cliente do gerenciador do SUSE.
Execute os seguintes comandos na VM para limpar o registro antigo:
sudo SUSEConnect --cleanup && \ sudo registercloudguest --clean && \ sudo rm -f /etc/SUSEConnect && \ sudo rm -f /etc/zypp/{repos,services,credentials}.d/* && \ sudo rm -f /var/lib/cloudregister/* && \ sudo rm -rf /var/cache/zypp/* && \ sudo rm -rf /var/cache/cloudregister/* && \ sudo sed -i '/^# Added by SMT reg/,+1d' /etc/hosts
Execute o seguinte comando para registrar o sistema novamente:
sudo registercloudguest --force-new
Confira os detalhes na seção Novo registro.
Quando o processo de registro estiver concluído, atualize os serviços e os repositórios e verifique se todos os repositórios esperados para o sistema fornecido pelo servidor SMT estão presentes:
sudo zypper ref -s && \ sudo zypper ls && \ sudo zypper lr -U
Problemas na rede
Nome de domínio não resolvido
Talvez você encontre os seguintes problemas se a VM não conseguir se conectar ao servidor SMT
smt-gce.susecloud.net
:SUSEConnect error: SocketError: getaddrinfo: Name or service not known
ping: unknown host smt-gce.susecloud.net
Esses problemas provavelmente são causados por uma resolução incorreta do nome de domínio do servidor SMT
smt-gce.susecloud.net
. Esse domínio não pode ser resolvido globalmente, portanto, é preciso definir o endereço IP de acordo com a região da VM da seguinte forma:Verifique o arquivo
/etc/hosts
para garantir que ele contenha uma entrada com o domíniosmt-gce.susecloud.net
.cat /etc/hosts | grep -i smt
A saída é semelhante à seguinte, mas o endereço IP pode ser diferente:
# Added by SMT registration do not remove, retain comment as well 108.59.80.221 smt-gce.susecloud.net smt-gce
Se o arquivo
/etc/hosts
não contiver as mesmas linhas do exemplo anterior, faça o seguinte:Indisponibilidade da rede
Os erros a seguir podem ocorrer devido à indisponibilidade da rede, mesmo que a VM consiga resolver o nome de domínio do servidor de atualização do Compute Engine:
Unexpected exception. Not ready to read within timeout.
Repository 'SLE-Module-Adv-Systems-Management12-Pool' is invalid. Repository 'SLE-Module-Adv-Systems-Management12-Updates' is invalid.
Confira os seguintes exemplos de erros no arquivo de registros
/var/log/cloudregister
que podem ser encontrados durante a investigação:WARNING:Unable to remove client registration from server WARNING:HTTPSConnectionPool(host='smt-gce.susecloud.net', port=443): Max retries exceeded with url: /connect/systems (Caused by NewConnectionError('
: Failed to establish a new connection: [Errno 110] Connection timed out',)) INFO:Region server arguments: ?regionHint=europe-central2 ERROR:No response from: [('34.118.112.80', None), ('34.116.251.218', None), ('34.116.224.144', None)]
Para saber mais sobre a causa do problema, execute um teste de conectividade de rede. O exemplo a seguir mostra como testar uma conexão HTTPS usando
cURL
:curl -sSI -m 5 -o /dev/null \ -w 'Response code (>0 is OK): %{http_code}\n' \ 'https://smt-gce.susecloud.net'
A saída do comando contém um código de resposta HTTP ou uma mensagem de erro. Confira as seguintes respostas e erros comuns:
Em determinados cenários, como regras rígidas de firewall de host, o endereço IP padrão associado ao domínio
smt-gce.susecloud.net
pode não estar disponível. Para garantir que o problema não seja relacionado apenas ao endereço IP atual, faça testes de conectividade de rede em servidores regionais alternativos. Recupere a lista de servidores regionais fazendo o seguinte:WebUI
Acesse a IU da Web do SUSE para consultar a lista de servidores de atualização regionais.
CLI
Use a ferramenta
pint
para acessar a lista de servidores de atualização regionais por meio da CLI.Para encontrar a lista completa de IPs de servidor do SUSE para o Google Cloud, consulte os seguintes documentos:
A indisponibilidade da rede pode ser causada por uma configuração incorreta da VM. No caso de problemas, é necessário realizar diagnósticos de rede para identificar a causa raiz.
Falha no registro
Talvez você encontre o seguinte erro se tiver VMs com um endereço IP particular no Cloud NAT:
ERROR: Registration failed: Registering system to registration proxy https://smt-gce.susecloud.net command '/usr/bin/zypper --non-interactive refs Python_3_Module_x86_64' failed Error: zypper returned 4 with 'Problem retrieving the repository index file for service 'Python_3_Module_x86_64': Timeout exceeded when accessing 'https://smt-gce.susecloud.net/services/2045/repo/repoindex.xml?credentials=Python_3_Module_x86_64'.
Para resolver esse problema, revise a configuração do Cloud NAT para verificar se o parâmetro de portas mínimas por instância de VM está definido para pelo menos 256.
Para mais informações, consulte o boletim de suporte Falha de registro e zypper para as instâncias do Compute Engine atrás do Cloud NAT do SUSE.
Sem resposta
Se a VM tiver problemas para se comunicar com os servidores de atualização e região, talvez você observe os seguintes erros:
Esses erros podem ser causados pela ausência de uma resposta dos servidores de atualização e região. Para verificar se esse é o caso, confira se há conteúdo semelhante nos registros
/var/log/cloudregister
:INFO:Region server arguments: ?regionHint=europe-central2 INFO:Using API: regionInfo INFO:Region server arguments: ?regionHint=europe-central2 INFO:Getting update server information, attempt 1 INFO: Using region server: 130.211.242.136 ERROR: No response from: 130.211.242.136 INFO: Using region server: 35.187.193.56 ERROR: No response from: 35.187.193.56 INFO: Using region server: 162.222.182.90 ERROR: No response from: 162.222.182.90 INFO: Using region server: 130.211.88.88 ERROR: No response from: 130.211.88.88 ERROR: None of the servers responded ERROR: Attempted: [IPv4Address('130.211.242.136'), IPv4Address('35.187.193.56'), IPv4Address('162.222.182.90'), IPv4Address('130.211.88.88')] ... ... ... ERROR:Request not answered by any server after 3 attempts ERROR:Exiting without registration
Para resolver esse problema, tente uma ou mais destas opções:
Problemas de configuração do SO
Status de registro desconhecido
Se você não sabe se o SUSE Linux Enterprise Server (SLES) de pagamento por utilização (PAYG) está registrado, execute o seguinte comando:
sudo SUSEConnect --status-text
A saída contém a versão e o status de registro dos produtos SUSE, incluindo o SUSE Linux Enterprise Server.
Installed Products: ------------------------------------------ SUSE Linux Enterprise Server 12 SP5 (SLES/12.5/x86_64) Registered ------------------------------------------ ...
Se o status for
Not Registered
, comece pelo processo de novo registro para corrigir o problema.Link simbólico de produto base incorreto
Talvez você encontre os seguintes erros se o link de produto base apontar para um arquivo de produto incorreto:
ERROR:Unable to obtain product information from server "108.59.85.41,None" Unprocessable Entity {"type":"error","error":"Unmet product dependencies, activate one of these products first: SUSE Linux Enterprise Server 12 x86_64... ... Unable to register modules, exiting.
Esse erro é causado por um arquivo de produto incorreto (por exemplo,
sle-module-toolchain.prod
) apontado pelo link simbólico/etc/products.d/baseproduct
.Para resolver esse problema, atualize o link simbólico em
/etc/products.d/baseproduct
para apontar para o arquivo de produto base apropriado, fazendo o seguinte:Indisponibilidade das informações de identidade da instância
Talvez você encontre os seguintes erros se as informações de identidade da instância não estiverem disponíveis para a VM:
ERROR:Data collected from stderr for instance data collection "b'Unable to access instance identity information\n'"
Para acessar os metadados da instância relativos a tokens de identidade, todas as VMs precisam estar associadas a uma conta de serviço.
Para mais informações, leia a Atualização da infraestrutura em nuvem pública.
Para verificar se a VM é relevante para essa situação, execute o seguinte comando na VM:
curl -s -H 'Metadata-Flavor: Google' \ 'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=test'
Exemplo de uma resposta bem-sucedida com um token de identidade:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjkzOTd0MDQxSHQ2NDNxNzkzUjY1MDIwNzEyMjZPNnppaTdqNTl3eTciLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJ0ZXN0IiwiYXpwIjoiMjY1MDIwMDUyMzgzMjYyNTk0ODU2IiwiZXhwIjoxNjgzNzEyNTQzLCJpYXQiOjE2ODM3MTI4NjQsImlzcyI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbSIsInN1YiI6IjQ1NjA2MzQ5MDg5Mzc0Njg3ODI5NyJ9.EpzQ3NZ8mKStdpH10fL34qsKG0rjQEflzvLJLm2tVNX4xBJAkMhi8lcs5InUEY-QMK3njgbzdzNtD1fXoIfKoeWsqkA8vG3NkBz5zqRrtaB2STcO14H5tjIdTBsrCtET447tRXlGG5cvgMcWnRDZG92-jUZEpWki_Ri4T69X5-bBWkfE2Thm3oSUW4fScdeVOEmOgWnzD2jeVqQ_2YniywvpkT-rLzKfN-5AgN66zgBfXqJVTC90KFMebfiaOoL7z6ZSM9AjZGf45QEMZjxjd-Xzyee6ZWK8s0RE3hJlytb3zYcLt3tJwQ1WhnrC2ToJ-ZmKxxK3xKDLCvCQ6Ny5to
Quando os metadados retornados não consistem em um token, mas em uma mensagem de erro como a seguinte, a VM foi afetada:
{ "error": "invalid_request", "error_description": "Service account not enabled on this instance" }
Para resolver esse problema, siga estas etapas:
Registro atrás de proxies
Poderá ocorrer um problema se as VMs estiverem configuradas para usar qualquer tipo de software de proxy. O exemplo a seguir demonstra uma tentativa de registrar o SLES por meio de um proxy HTTP.
ERROR: Baseproduct registration failed ERROR: Registering system to registration proxy https://smt-gce.susecloud.net Announcing system to https://smt-gce.susecloud.net ... SUSEConnect error: Net::HTTPFatalError: 503 "Service Unavailable"
O SUSE no Compute Engine não oferece suporte oficial para o registro de sistema operacional quando feito por intermediários que modificam a comunicação original, como proxies de man-in-the-middle (MITM) ou tipos não transparentes.
A solução oficial para resolver esse problema é configurar o Cloud NAT e rotear o tráfego da VM por meio dele.
Soluções alternativas comuns
Novo registro
Em alguns casos, uma abordagem de novo registro pode ser usada para resolver problemas de registro.
Para forçar um novo registro, use o seguinte comando:
sudo registercloudguest --force-new
Se a operação for bem-sucedida, a linha a seguir será exibida.
Registration succeeded
Detalhes do processo de novo registro podem ser encontrados em
/var/log/cloudregister
.Exemplo bem-sucedido
INFO:Forced new registration INFO:Clean current registration server: ('108.59.80.221', None) ... INFO:Starting new HTTP connection (1): 169.254.169.254 INFO:Region server arguments: ?regionHint=us-central1 INFO:Using region server: 130.211.242.136 INFO:Starting new HTTPS connection (1): 130.211.242.136 INFO:Starting new HTTPS connection (1): 108.59.80.58 INFO:Modified /etc/hosts, added: 108.59.80.58 smt-gce.susecloud.net smt-gce ... INFO:Starting new HTTPS connection (1): 108.59.80.58 DEBUG:"GET /api/health/status HTTP/1.1" 200 None INFO:Current update server will be used: "('108.59.80.58', None)" INFO:Starting new HTTPS connection (1): smt-gce.susecloud.net DEBUG:"POST /connect/systems/products/migrations HTTP/1.1" 422 None INFO:Registration: /usr/sbin/SUSEConnect --url https://smt-gce.susecloud.net --product sle-module-containers/12/x86_64 --instance-data /var/lib/cloudregister/9c982106-78de-48fe-a662-20383da4c760
Exemplo com falha
INFO:Forced new registration INFO:Using API: regionInfo INFO:Starting new HTTP connection (1): 169.254.169.254 INFO:Region server arguments: ?regionHint=us-central1 INFO:Using region server: 130.211.242.136 INFO:Starting new HTTPS connection (1): 130.211.242.136 ERROR:No response from: 130.211.242.136 INFO:Using region server: 130.211.88.88 INFO:Starting new HTTPS connection (1): 130.211.88.88 ERROR:No response from: 130.211.88.88 INFO:Using region server: 146.148.73.14 INFO:Starting new HTTPS connection (1): 146.148.73.14 ERROR:No response from: 146.148.73.14 ERROR:None of the servers responded ERROR: Attempted: ['130.211.242.136', '130.211.88.88', '146.148.73.14'] ERROR:Exiting without registration
Cancelamento de registro
Em alguns casos, como upgrade da versão principal, é possível encontrar os seguintes erros porque o sistema já está registrado no SUMA:
Can't get available migrations from server: SUSE::Connect::ApiError: The requested products 'SUSE Manager Client Tools for SLE 12 x86_64' are not activated on the system.
This system is managed by SUSE manager.
Para resolver o problema, faça o seguinte:
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-11-21 UTC.
-