修复 SUSE 15 存储库和注册问题

简介

如果你在管理 SUSE 15 机器,可能会遇到一个令人头疼的问题:存储库无法刷新,SUSEConnect 将所有产品显示为“Not Registered”。这个问题可能导致无法安装软件包,并扰乱你的正常运维。虽然 SUSE 的公开文档提供了排查步骤,但它们并不总能解决问题。本指南将带你了解症状、排查步骤以及一个经过验证的缓解策略,帮你修复 SUSE 15 存储库和注册问题。


问题症状

你可能会在 SUSE 15 机器上注意到以下症状:

  • Zypper 刷新失败:系统找不到任何存储库。
  • SUSEConnect 状态:运行 SUSEConnect --status 会将所有产品显示为“Not Registered”。

这些症状可能看起来像常见的注册或连接问题,但常规的排查步骤无法解决这个特定问题。


排查步骤

1. 验证基本连接和注册

先从 SUSE 文档中概述的基本排查步骤开始:

  • 运行:
SUSEConnect --cleanup  
registercloudguest --force-new  
SUSEConnect --status  

  • 使用 sc-repocheck.py 脚本检查连接:
python3 <(curl --location --silent https://raw.githubusercontent.com/rfparedes/susecloud-repocheck/main/sc-repocheck.py)  

如果这些步骤都失败了,你很可能遇到了一个与过期注册软件包有关的已知问题。


缓解策略

要解决这个问题,你需要在有问题的机器上手动更新注册软件包。具体方法如下:

步骤 1:从一台正常机器中提取注册软件包

  • 在一台相同 Service Pack (SP) 且工作正常的 SUSE 机器上,运行以下命令:
zypper --pkg-cache-dir /tmp/ts/packages/ download cloud-regionsrv-client cloud-regionsrv-client-plugin-azure regionServiceClientConfigAzure python3-azuremetadata SUSEConnect python3-cssselect python3-toml python3-lxml python3-M2Crypto python3-zypp-plugin  
mkdir /tmp/ts/rpms  
find /tmp/ts/packages/ -type f -name "*.rpm" -exec cp {} /tmp/ts/rpms/ \;  
cd /tmp/ts/  
tar -czvf suse-sp4-public-registration.tgz rpms  

  • 完成后,删除临时文件夹:
rm -rf /tmp/ts

步骤 2:在有问题的机器上复制并安装软件包

  • 将 suse-sp4-public-registration.tgz 文件传输到有问题的机器。
  • 解压文件:
tar xvfz suse-sp4-public-registration.tgz  
cd rpms  

  • 安装软件包:
zypper --no-refresh --no-remote install *.rpm  

  • 出现提示时,选择 选项 2,然后选择 是。
  • 运行以下命令来清理并重新注册系统:
SUSEConnect --cleanup  
registercloudguest --force-new  
SUSEConnect --status  

步骤 3:刷新存储库

最后,刷新存储库以确保一切正常:

zypper refresh  


其他说明

  • 做好预防措施:在进行更改之前,务必创建操作系统磁盘快照。
  • 保持软件包更新:过期的软件包往往是这些问题的根本原因。建议客户定期更新系统。
  • 已终止支持的产品:大多数情况涉及 SUSE 15 SP2、SP3 和 SP4,这些版本已终止支持。客户应确认自己是否拥有长期 Service Pack 支持 (LTSS)。

有关产品生命周期的更多详情,请参阅 SUSE 产品支持生命周期。


结论

SUSE 15 存储库和注册问题可能很难处理,尤其是在标准排查步骤无效时。通过手动更新注册软件包,你可以解决这个问题,并恢复系统安装软件包的能力。

如果你觉得本指南有帮助,请分享给你的同事,或收藏起来以备日后参考。想了解更多技巧和排查指南,请订阅我们的新闻通讯,或在下方留言!

发表评论