启动与虚拟机故障

排查 SUSE SLES VM 的连接和注册问题 - Virtual Machines

· 52CE 我爱测

适用于:✔️ Linux VM 总结 本文讨论使用 SUSE Linux Enterprise Server (SLES) 映像设置Microsoft Azure虚拟机(VM),但 VM 无法连接到 SUSE 订阅管理工具(SMT)存储库的问题。 本文提供了一些基本的故障排除步骤,以及针对特定情况应采取的措施,例如在 SUSE 中用于管理软件包的 Zypper 命令行工具发生故障时的处理方法。 Microsoft的 Linux 专家根据 SUSE 的支持经

适用于:✔️ Linux VM

总结

本文讨论使用 SUSE Linux Enterprise Server (SLES) 映像设置Microsoft Azure虚拟机(VM),但 VM 无法连接到 SUSE 订阅管理工具(SMT)存储库的问题。 本文提供了一些基本的故障排除步骤,以及针对特定情况应采取的措施,例如在 SUSE 中用于管理软件包的 Zypper 命令行工具发生故障时的处理方法。 Microsoft的 Linux 专家根据 SUSE 的支持经验和文档汇编了此信息。

请务必阅读每个命令的输出以获取更多线索。 保存结果和消息,以便进一步进行故障排除。

先决条件

备注

如果 SLES VM 位于代理服务器后面,请查看 通过代理访问公有云更新基础结构中讨论的技术注意事项。 对于Azure上的 SLES VM,以下条件适用:

  • 从 SLES VM 连接到更新服务器依赖于公共 DNS 服务器无法解析的主机名解析。 因此,某些 Linux/Unix 代理服务器实现可能需要在代理服务器端手动将记录 放入 /etc/hosts 中,以便可以解析“smt-azure”名称。

    下面是一个示例记录:

    52.165.88.13 smt-azure.susecloud.net smt-azure

    可用 IP 地址因Azure区域而异。 有关详细信息,请参阅此 smt XML 文件中的IP 地址列表。

  • 实例元数据服务(IMDS)使用的 IP 地址 168.63.129.16 和 169.254.169.254 应绕过代理访问。 无法通过代理服务器访问这些特殊的 IP 地址,SLES VM 需要来自 IMDS 的信息来识别它们正在运行的云环境,并查找适当的 SUSE 更新服务器。

    例如,NO_PROXY应在 SLES VM 上配置 /etc/sysconfig/proxy* 中的*变量,如下所示:

    NO_PROXY="localhost, 127.0.0.1, 168.63.129.16, 169.254.169.254"

故障排除清单

步骤 1:运行存储库诊断脚本

运行 SUSE 工程提供的 SUSEcloud 存储库检查脚本 。 此Python脚本执行以下任务:

  1. 检查是否连接到 SUSE 公有云存储库。
  2. 尝试解决任何现有问题。
  3. 在/var/log/目录中创建日志存档,并将其命名为 sc-repocheck_<>YYMMDD_hhmmss.tar.xzq。 如果连接或注册问题仍然存在,则此日志可能很有用。

若要启动脚本,请运行以下命令,将脚本从其GitHub位置传输到Python解释器:

sudo python3 <(curl --location --silent https://raw.githubusercontent.com/rfparedes/susecloud-repocheck/main/sc-repocheck.py)

若要成功运行,该命令需要从 VM 进行 Internet 访问。 否则,需要先下载脚本,然后修改命令,使其运行。

步骤 2:检查服务器 IP 地址在端口 443 上的连接性

VM 必须能够在端口 443 上与 SUSE 存储库服务器 smt-azure.susecloud.net (基于 VM 所在的区域)以及区域服务器打开 TCP 连接。 可以在以下位置找到存储库服务器和区域服务器的 IP 地址列表。

IP 地址类型 包含 IP 地址列表的 URL
所有区域的 SMT 服务器 IP 地址 https://susepubliccloudinfo.suse.com/v1/microsoft/servers/smt.xml
区域服务器 IP 地址 https://susepubliccloudinfo.suse.com/v1/microsoft/servers/regionserver.xml

要检查您所在区域的存储库服务器和区域服务器的连接,请使用 OpenSSL s_client 命令 来测试安全套接字层(SSL)和传输层安全(TLS)客户端连接。 将占位符的相应 IP 地址插入到以下语法中:

sudo openssl s_client -connect <IP address>:443

运行此命令后,将显示服务器证书。 该命令还会启动正确的 SSL 连接。

以下示例显示了美国东部 2 区域中 SUSE 存储库服务器的成功命令输出(位置代码: eastus2,IP 地址: 20.186.112.116):

$ echo "" | openssl s_client -connect 20.186.112.116:443
CONNECTED(00000003)
Can't use SSL_get_servername
depth=1 C = DE, ST = Bavaria, L = Nuremberg, O = SUSE, OU = CSM, CN = SUSE, emailAddress = suse-public-cloud@susecloud.net
verify return:1
depth=0 C = DE, ST = Bavaria, L = Nuremberg, O = SUSE, OU = Public Cloud, CN = Update server certificate (smt-azure.susecloud.net), emailAddress = suse-public-cloud@susecloud.net
verify return:1
---
Certificate chain
 0 s:C = DE, ST = Bavaria, L = Nuremberg, O = SUSE, OU = Public Cloud, CN = Update server certificate (smt-azure.susecloud.net), emailAddress = suse-public-cloud@susecloud.net
   i:C = DE, ST = Bavaria, L = Nuremberg, O = SUSE, OU = CSM, CN = SUSE, emailAddress = suse-public-cloud@susecloud.net
---
Server certificate
-----BEGIN CERTIFICATE-----
<64-character lines of printable ASCII characters>
    .
    .
    .
-----END CERTIFICATE-----
subject=C = DE, ST = Bavaria, L = Nuremberg, O = SUSE, OU = Public Cloud, CN = Update server certificate (smt-azure.susecloud.net), emailAddress = suse-public-cloud@susecloud.net

issuer=C = DE, ST = Bavaria, L = Nuremberg, O = SUSE, OU = CSM, CN = SUSE, emailAddress = suse-public-cloud@susecloud.net

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 2538 bytes and written 373 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 4096 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
DONE

备注

若要查看不同 SUSE 版本的支持范围,请参阅 SUSE 生命周期。

方案 1:未显示服务器证书或 SSL 会话

输出不显示服务器证书或 SSL 会话。

原因

当命令跨越执行 SSL 数据包检查的网络虚拟设备(NVA)时,通常会发生这种情况。 此检查会导致 NVA 将自己的 SSL 证书注入加密会话。

由于 SUSE 使用证书绑定,注入的另一个 SSL 证书可能会导致绑定操作中断。 如果固定断开,SUSE 存储库将拒绝连接。

解决方案

确保 NVA 不会执行以下操作:

  • 阻止访问 SUSE 存储库 IP 地址。
  • 对与 SUSE 存储库的安全连接执行 SSL 数据包检查。
  • 在服务器上插入 NVA SSL 证书。

场景 2:Cloud-regionsrv-client 问题和注册失败

若要诊断此方案,请从 Zypper 历史记录或已安装 RPM 包的列表检查已安装 cloud-regionsrv-client 包的状态:

  • 从 Zypper 历史记录:

    sudo grep cloud-region /var/log/zypp/history
    
    2021-07-12 08:20:49 cloud-regionsrv-client.rpm installed ok
    
  • 从已安装的 RPM 软件包列表中:

    sudo rpm -qa | grep cloud-region
    
    cloud-regionsrv-client-9.1.5-6.43.1.noarch
    cloud-regionsrv-client-plugin-azure-1.0.1-6.43.1.noarch
    

主客户端包应至少为版本 10.x。

如下例所示,如果重试手动重新注册或在步骤 1中使用存储库检查,将显示以下输出/var/log/cloudregister:

sudo tail /var/log/cloudregister
2025-01-29 20:20:05,876 INFO:Using API: regionInfo
2025-01-29 20:20:05,981 INFO:Region server arguments: ?regionHint=northcentralus
2025-01-29 20:20:05,981 INFO:Getting update server information, attempt 1
2025-01-29 20:20:05,981 INFO:   Using region server: 104.45.31.195
2025-01-29 20:20:06,184 ERROR:  No response from: 104.45.31.195
2025-01-29 20:20:06,184 INFO:   Using region server: 23.100.36.229
2025-01-29 20:20:06,286 ERROR:  No response from: 23.100.36.229
2025-01-29 20:20:06,286 INFO:   Using region server: 52.187.53.250
2025-01-29 20:20:06,915 INFO:No current registration server set.
2025-01-29 20:20:06,917 ERROR:No response from: [('23.101.171.119', '2603:1030:603::2e9'), ('23.101.164.199', '2603:1030:603::625'), ('23.96.231.74', '2603:1030:603::2e6')]

输出指示存在连接错误。 但是,此指示不是真的。 之所以发生此错误,是因为注册脚本中的错误处理过程不显示旧库中的证书错误。

脚本输出也可能错误地指示找不到命令输出中显示的 sudo tail /var/log/cloudregister 其中一个 SMT IP 的证书。 此问题也是库问题,而不是影响 VM 上的 CA 列表的问题。

原因

如果未定期更新实例,它们可能会与更新基础结构 API 不兼容。 这种情况会导致更新实例所需的存储库失败。

解决方案

  1. 创建一个即用即付实例,该实例使用与具有损坏存储库的 OS 相同的 OS。

  2. 创建临时目录。

    sudo mkdir -p /root/packages/rpms
    
  3. 根据受影响的 VM 的 SLES 版本下载以下包:

    SLES 12

    sudo zypper --pkg-cache-dir /root/packages/ download cloud-regionsrv-client cloud-regionsrv-client-plugin-azure regionServiceClientConfigAzure python3-azuremetadata python3-cssselect python3-lxml python3-M2Crypto python3-zypp-plugin python3-dnspython suseconnect-ruby-bindings suseconnect-ng
    

    SLES 15

    sudo zypper --pkg-cache-dir /root/packages/ download cloud-regionsrv-client cloud-regionsrv-client-plugin-azure regionServiceClientConfigAzure python3-azuremetadata suseconnect-ng python3-cssselect python3-toml python3-lxml python3-M2Crypto python3-zypp-plugin python3-dnspython libsuseconnect suseconnect-ruby-bindings docker docker-bash-completion runc containerd libcontainers-common bash-completion
    
  4. 运行以下命令。

    sudo find /root/packages/ -type f -name "*.rpm" -exec cp {} /root/packages/rpms/ \;
    sudo cd /root/packages
    sudo tar -czvf suse-public-registration.tgz rpms
    
  5. 将 suse-public-registration.tgz 传输到损坏的实例。

    sudo scp /root/packages/suse-public-registration.tgz user@targetip:/tmp
    

    备注

    替换 user 并 targetip 根据需要。

  6. 登录到损坏的实例以解压并安装这些软件包。

    sudo cd tmp
    sudo tar xvfz suse-public-registration.tgz
    sudo cd rpms
    sudo zypper --no-refresh --no-remote --non-interactive install --force *.rpm
    
  7. 再次注册 VM。

    sudo registercloudguest --force-new
    
  8. Zypper 无法在非交互模式下运行。 由于请求选择解决方案的其他依赖项,会发生此故障。 如果发生此故障,请运行以下命令并选择解决方案:

    sudo zypper --no-refresh --no-remote install --force *.rpm
    sudo registercloudguest --force-new
    
    • 若要以最后方式运行,请运行:
    sudo rpm -Uvh *.rpm --force
    sudo registercloudguest --force-new
    

有关详细信息,请参阅 云实例存储库由于包过时而失败。

方案 3:常规注册问题

原因

您的虚拟机用于访问软件仓库的凭据已过期,或者在尝试进行更新或安装后,您会收到提示您的系统尚未注册的消息。

解决方案

若要解决大多数注册问题,请使用参数指定 SUSEConnect 清理命令和 force-new 命令的组合:

sudo SUSEConnect --cleanup
sudo registercloudguest --force-new

备注

如果 VM 是 SLES SAP,则还可以使用 SLES SAP 产品的名称运行命令:

  1. SUSEConnect运行以下命令以获取当前注册状态,包括 SLES SAP 产品的名称:

    sudo SUSEConnect --url https://smt-azure.susecloud.net --status-text
    
  2. 运行SUSEConnect命令并使用产品名称来激活产品:

    sudo SUSEConnect --url https://smt-azure.susecloud.net --product <SLES-SAP-product-name>
    

如果这些命令不成功,请清理所有存储库信息,然后尝试注册 VM。 与证书和其他组件相关的任何错误消息都应消失。 运行以下命令:

sudo SUSEConnect --cleanup
sudo rm /etc/zypp/{credentials,services,repos}.d/*
sudo rm --force --recursive /var/cache/zypp/*
sudo rm /var/lib/cloudregister/*
sudo registercloudguest --force-new

最后,再次运行 SUSEConnect 验证 VM 注册状态:

sudo SUSEConnect --status

在 JSON 命令输出中,查找条目 "status":"Registered" 。

方案 4:未提供证明的数据(422)

运行 存储库诊断脚本后,脚本尝试修复影响 zypper update 命令的问题时,可能会看到以下错误条目:

Error: Activating SLES_SAP 12.5 x86_64 ... Error: Registration server returned 'Instance verification failed: No attested data supplied' (422)

原因

由于 SUSE 公有云包过时,VM 无法连接到 SUSE 存储库。

解决方案

  1. 再次运行存储库诊断脚本。

  2. 如果“422”错误仍然存在,请 /etc/regionserverclnt.cfg 修改配置文件以匹配以下文本:

    [server]
    api = regionInfo
    certLocation = /var/lib/regionService/certs
    regionsrv = 23.100.36.229,40.121.202.140,52.187.53.250,104.45.31.195,191.237.254.253
    
    [instance]
    dataProvider = /usr/bin/azuremetadata --api latest --subscriptionId --billingTag --attestedData --signature --xml
    instanceArgs = msftazure
    httpsOnly = true
    
  3. 重新注册 VM:

    sudo registercloudguest --force-new
    

方案 5:尝试注册到 SUSE 存储库时某些模块的错误

尝试将 VM 注册到 SUSE 存储库时,会看到以下 /var/log/cloudregister错误条目:

2024-01-31 19:22:44,947 INFO:Registration: /usr/sbin/SUSEConnect --url https://smt-azure.susecloud.net --product sle-module-legacy/12/x86_64 --instance-data /var/cache/cloudregister/0fc8a276-273c-4bd9-838d-6a2a41a637b0
2024-01-31 19:22:45,492 ERROR:  Registration failed: SUSEConnect error: Downloading https://smt-azure.susecloud.net/repo/SUSE/Products/SLE-Module-Legacy/12/x86_64/product.license/directory.yast failed (code: 401): <html>
<head><title>401 Authorization Required</title></head>
<body>
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.21.5</center>
</body>
</html>

原因

suseconnect-ng 软件包 1.4.0 版本中的一个缺陷会导致该问题。

这些错误仅在以下模块中发生:

  • sle-module-legacy
  • sle-module-web-scripting
  • sle-module-hpc
  • sle-sdk

解决方案

  1. 将以下文件从 /etc/products.d 文件夹移动到 /tmp 该文件夹:

    • sle-module-hpc.prod
    • sle-module-legacy.prod
    • sle-module-web-scripting.prod
    • sle-sdk.prod
    sudo cd /etc/products.d 
    sudo mv sle-module-hpc.prod sle-module-legacy.prod sle-module-web-scripting.prod sle-sdk.prod /tmp 
    
  2. 将 VM 注册到 SUSE 存储库:

    sudo registercloudguest --force-new
    
    Registration should now be successful.
    
  3. 刷新存储库缓存:

    sudo zypper ref -s  
    
  4. 如有必要,请将 suseconnect-ng 包更新为版本 1.6.0 或更高版本:

    备注

    若要验证版本 suseconnect-ng,请运行以下命令:

    sudo  rpm -q suseconnect-ng
    
     suseconnect-ng-1.4.0~git0.b0f7c25bfdfa-3.3.8.x86_64
    
    sudo zypper up suseconnect-ng
    
  5. 更新 suseconnect-ng 后,将模块定义文件还原到 /etc/products.d。

    sudo cd /tmp  
    sudo mv sle-module-hpc.prod sle-module-legacy.prod sle-module-web-scripting.prod sle-sdk.prod /etc/products.d
    
  6. 重新执行存储库的注册过程:

    sudo registercloudguest --force-new
    
    Registration Successful
    

方案 6:注册失败,凭据文件中出现“WARNING: 找到未知条目: system_token=”错误。

该 /var/log/cloudregister 日志显示“在凭据文件”system_token=“中发现未知条目的警告消息,并且 VM 无法注册到 SUSE 公有云存储库。

2023-10-24 17:50:58,140 DEBUG:Starting new HTTPS connection (1): smt-azure.susecloud.net:443
2023-10-24 17:50:58,243 ERROR:Registration with ('52.237.80.2', None) failed. Trying ('52.139.216.51', None)
2023-10-24 17:50:58,244 WARNING:Found unknown entry in credentials file "system_token=
"
2023-10-24 17:50:58,244 INFO:No current registration server set.
2023-10-24 17:50:58,247 INFO:Modified /etc/hosts, added: 52.139.216.51 smt-azure.susecloud.net smt-azure
2023-10-24 17:53:34,841 WARNING:Found unknown entry in credentials file "system_token=
"

原因

由于临时证书捆绑包不正确, ca-bundle.pem.tmp因此会发生此问题。

解决方案

  1. 删除该文件并更新 ca-certificates:

    sudo registercloudguest --clean
    sudo rm /var/lib/ca-certificates/ca-bundle.pem.tmp
    
  2. 更新证书:

    sudo update-ca-certificates
    
  3. 成功注册 VM:

    sudo registercloudguest --force-new
    

方案 7:VM 由于 azuremetadata 错误而无法连接到 SMT

检查 /var/log/cloudregister时,会看到以下 azuremetadata 错误消息:

sudo tail -10 /var/log/cloudregister
2020-10-30 22:47:43,200 INFO:No current registration server set.
2020-10-30 22:47:43,222 INFO:Modified /etc/hosts, added: 52.147.176.11 smt-azure.susecloud.net smt-azure

2020-10-30 22:48:03,358 ERROR:Data collected from stderr for instance data collection "b'An error occurred when fetching metadata:\ntimed out\nAn error occurred when fetching metadata:\ntimed out\nusage: azuremetadata [-h] [-x] [-j] [-o OUTPUT] [-a API] [--device [DEVICE]]\n [--attestedData [ATTESTEDDATA]]\n [--billingTag [BILLINGTAG]]\nazuremetadata: error: unrecognized arguments: --subscriptionId\n'"
2020-10-30 22:48:04,519 INFO:Writing SMT rootCA: /usr/share/pki/trust/anchors
2020-10-30 22:48:04,526 INFO:Updating CA certificates: update-ca-certificates
2020-10-30 22:48:06,569 INFO:No credentials entry for "*smt-azure_susecloud_net"
2020-10-30 22:48:06,608 ERROR:Unable to obtain product information from server "52.147.176.11,None"
Unprocessable Entity
{"type":"error","error":"The requested product 'SUSE Linux Enterprise Server for SAP Applications 15 SP2 x86_64' is not activated on this system.","localized_error":"The requested product 'SUSE Linux Enterprise Server for SAP Applications 15 SP2 x86_64' is not activated on this system."}
Unable to register modules, exiting.

由于 azuremetadata 错误,VM 无法连接到 Azure SUSE 云存储库,如以下输出所示:

sudo  SUSEConnect -s
Error: Invalid system credentials, probably because the registered system was deleted in SUSE Customer Center. Check https://scc.suse.com whether your system appears there. If it does not, please call SUSEConnect --cleanup and re-register this system.
sudo zypper repos
Warning: There are no enabled repositories defined. Use 'zypper addrepo' or 'zypper modifyrepo' commands to add or enable repositories.

原因 1

配置文件 /etc/regionserverclnt.cfg 包括 --subscriptionId 该条目。 此条目会导致 azuremetadata 命令出错:

sudo cat /etc/regionserverclnt.cfg
[server]
api = regionInfo

certLocation = /var/lib/regionService/certs
regionsrv = 23.100.36.229,40.121.202.140,52.187.53.250,104.45.31.195,191.237.254.253

[instance]
dataProvider = /usr/bin/azuremetadata --api 2019-08-15 --subscriptionId --billingTag --xml
instanceArgs = msftazure

解决方案 1

  1. 在配置文件 --subscriptionId 中删除 /etc/regionserverclnt.cfg:

    sudo sed -i "s/--subscriptionId //" regionserverclnt.cfg
    
  2. 重新注册 VM:

    sudo SUSEConnect --cleanup
    sudo rm -f /etc/SUSEConnect
    sudo rm -rf /etc/zypp/credentials.d/\*
    sudo rm /var/lib/cloudregister/*
    sudo rm /var/cache/zypp/*
    sudo sed -i '/^# Added by SMT reg/,+1d' /etc/hosts
    sudo registercloudguest --force-new
    

原因 2

使用 /usr/sbin/registercloudguest --force-new 命令将 SUSE 服务器注册到存储库时发生错误。 命令输出不指示注册成功,因为 /etc/zypp/credentials.d/SCCcredentials 文件已损坏。

解决方案 2

  1. 将 /etc/zypp/credentials.d 文件夹移动到临时文件夹:

    sudo mv /etc/zypp/credentials.d /tmp
    
  2. 重新注册 VM:

    sudo SUSEConnect --cleanup
    sudo rm -f /etc/SUSEConnect
    sudo rm -rf /etc/zypp/credentials.d/\*
    sudo rm /var/lib/cloudregister/*
    sudo rm /var/cache/zypp/*
    sudo sed -i '/^# Added by SMT reg/,+1d' /etc/hosts
    sudo registercloudguest --force-new
    

方案 8:由于 SLES 15 SP5 中 Python 3.11 的兼容性问题,导致 SUSE 注册失败。

运行 SUSE 存储库检查脚本 screpocheck.py 时,会显示一条 ModuleNotFoundError: No module named 'cloudregister' 错误信息:

sudo python3 sc-repocheck.py
2024-08-07 13:53:29,261 INFO:sc-repocheck 1.3.1 
2024-08-07 13:53:29,291 INFO: Checking package versions. 2024-08-07 13:53:29,307 INFO: Package versions OK. 2024-08-07 13:53:29,312 INFO: Checking baseproduct.
2024-08-07 13:53:29,316 INFO: SLES baseproduct OK.
2024-08-07 13:53:29,321 INFO: Checking /etc/hosts for multiple records. 2024-08-07 13:53:29,325 WARNING: No rmt records exist.
2024-08-07 13:53:29,325 INFO: Checking metadata access.
2024-08-07 13:53:29,360 INFO: Metadata OK.
2024-08-07 13:53:29,364 INFO: Checking regionserver access.
2024-08-07 13:53:31,160 INFO: Region server access OK.
2024-08-07 13:53:31,165 INFO: Checking RMT server entry is for correct region.
2024-08-07 13:53:31,241 ERROR: Cannot get IP of RMT server entry.
2024-08-07 13:53:31,252 INFO: http check unnecessary.
2024-08-07 13:53:31,246 INFO: Checking http port access to RMT servers.
2024-08-07 13:53:31,257 INFO: Checking https port access to RMT servers.
2024-08-07 13:53:31,337 INFO: https access OK.
2024-08-07 13:53:31,342 INFO: Checking https access using RMT certs.
2024-08-07 13:53:31,442 INFO: An exception of type ConnectionError occurred. Disregarding.
2024-08-07 13:53:31,449 INFO: EVERYTHING OK.
2024-08-07 13:53:31,453 INFO: Collecting debug data. Please wait 1-2 minutes maybe longer, depending on machine type. Traceback (most recent call last):
File "/usr/bin/azuremetadata", line 11, in <module>
from azuremetadata import azuremetadatautils, azuremetadata
ModuleNotFoundError: No module named 'azuremetadata'
2024-08-07 13:53:31,565 ERROR: PROBLEM: Issue with azuremetadata output. Check metadata access. Traceback (most recent call last):
File "/usr/sbin/registercloudguest", line 43, in <module>
import cloudregister.registerutils as utils
ModuleNotFoundError: No module named 'cloudregister'
2024-08-07 13:53:34,656 INFO: Check repositories. An attempt was made to fix.
2024-08-07 13:53:34,659 INFO: Debug data location: /var/log/sc-repocheck_240807_135331.tar.xz
2024-08-07 13:53:34,671 INFO: Report bugs to https://github.com/SUSE/susecloud-repocheck/issues

原因

不支持任何模块与 Python 3.11 一起使用。

解决方法

根据 SUSE,该包尚不支持 SLES15 SP5 上的 Python 3.11。 不要将 Python 3.11 用作现有 SLES 系统上的默认 python3 解释器,因为它目前在所有 SLES 系统中不受支持。

有关详细信息,请参阅 incompatible-changes-ahead-for-public-cloud-sdks。

若要解决此问题,请将 VM 设置为使用默认版本 3.6 Python:

  1. 将Python版本指向 3.6.x:

    sudo unlink /usr/bin/python3
    sudo ln -s /usr/bin/python3.6 /usr/bin/python3
    
  2. 验证 VM 中的python3版本:

    sudo python3 --version
    
    Python 3.6.15
    
  3. 重新注册 VM:

    sudo /usr/sbin/registercloudguest --force-new
    
    Registration succeeded
    
  4. 验证 VM 是否已成功注册:

    sudo SUSEConnect -s 
    
    [{"identifier":"SLES", "version":"15.5","arch":"x86_64","status":"Registered"},{"identifier": "sle-module-basesystem", "version":"15.5","arch":"x86_6
    ,"status":"Registered"},{"identifier": "sle-module-containers", "version":"15.5","arch":"x86 64","status":"Registered"},{"identifier": "sle-module-de top-applications","version":"15.5","arch":"x86 64","status":"Registered"},{"identifier": "sle-module-development-tools","version":"15.5"," 64","status":"Registered"},{"identifier":"sle-module-public-cloud", "version":"15.5","arch":"x86 64","status":"Registered"},{"identifier": "sle-modu -python3","version":"15.5","arch":"x86 64","status":"Registered"},{"identifier": "sle-module-server-applications","version":"15.5","arch":"x86 64",
    tatus":"Registered"}, {"identifier": "sle-module-web-scripting", "version":"15.5","arch":"x86 64","status":"Registered"}]
    

方案 9:已启用 LTSS 的 VM SLES 12 SP5 上的 SUSE 注册失败

启用了 LTSS 的 SLES 12 SP5 VM 无法连接到 SMT 存储库。 以下错误消息显示在 /var/log/cloudregister.

INFO:Registration: /usr/sbin/SUSEConnect --url [https://smt-azure.susecloud.net](https://smt-azure.susecloud.net) --de-register --product SLES-LTSS/12.5/x86_64
INFO:Non free extension SLES-LTSS/12.5/x86_64 failed to be removed

解决方法:

  1. 验证目录 /etc/products.d下已启用的模块列表。
sudo ls -l /etc/products.d/
   total 24
   -rw-r--r-- 1 root root 2746 2024-10-08 07:40 SLES-LTSS-Extended-Security.prod
   -rw-r--r-- 1 root root 2621 2024-10-08 05:13 SLES-LTSS.prod
   -rw-r--r-- 1 root root 2922 2024-09-25 14:21 SLES.prod
   lrwxrwxrwx 1 root root    9 2018-01-09 08:47 baseproduct -> SLES.prod
   -rw-r--r-- 1 root root 2254 2017-11-23 04:48 sle-module-web-scripting.prod
   -rw-r--r-- 1 root root 2363 2019-10-18 06:58 sle-sdk.prod
  1. 通过重命名 LTSS 相关模块来禁用它们。

    sudo mv SLES-LTSS.prod SLES-LTSS.prod-bkp 
    
    sudo mv  SLES-LTSS-Extended-Security.prod SLES-LTSS-Extended-Security.prod-bkp
    
 sudo ls -l /etc/products.d/ 
total 24
  -rw-r--r-- 1 root root 2746 2024-10-08 07:40 SLES-LTSS-Extended-Security.prod-bkp
  -rw-r--r-- 1 root root 2621 2024-10-08 05:13 SLES-LTSS.prod-bkp
  -rw-r--r-- 1 root root 2922 2024-09-25 14:21 SLES.prod
  lrwxrwxrwx 1 root root    9 2018-01-09 08:47 baseproduct -> SLES.prod
  -rw-r--r-- 1 root root 2254 2017-11-23 04:48 sle-module-web-scripting.prod
  -rw-r--r-- 1 root root 2363 2019-10-18 06:58 sle-sdk.prod
  1. 使用以下命令重新注册 VM。

    sudo SUSEConnect --cleanup
    sudo rm -f /etc/SUSEConnect
    sudo rm -rf /etc/zypp/credentials.d/*
    sudo rm -rf /etc/zypp/repos.d/*
    sudo rm -f /etc/zypp/services.d/*
    sudo rm /var/lib/cloudregister/*
    sudo rm -rf /var/cache/zypp/*
    sudo sed -i '/^# Added by SMT reg/,+1d' /etc/hosts
    sudo /usr/sbin/registercloudguest --force-new
    
     Registration succeeded
    
  2. 验证 SMT 存储库连接:

    sudo zypper refresh
    
    sudo SUSEConnect --status
    
  3. 成功注册 SMT 存储库后,重新启用 SUSE 文章中指定的 LTSS - 如何将长期 Service Pack 支持存储库分配给已安装的系统。

资料来源与适用范围

资料来源
微软官方 Linux 虚拟机排障文档
适用范围
Azure Linux 虚拟机;按正文发行版、内核及代理版本
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。