RHEL osbuild-composer系统仓库自定义覆盖不生效故障咨询
问题
按照RHEL 8自定义系统镜像构建官方文档操作,使用自定义baseurl覆盖系统仓库时,执行blueprint依赖解析触发异常:
- 执行命令
composer-cli blueprints depsolve Test1-blueprint返回报错:
2022-06-09 08:06:58,841: Test1-blueprint: This system does not have any valid subscriptions. Subscribe it before specifying rhsm: true in sources
- 尝试重启服务排查问题后,osbuild-composer无法正常启动,报错信息:
ERROR: Info Error: Get "http://localhost/api/v1/projects/source/info/appstream": dial unix /run/weldr/api.socket: connect: connection refused
确认是否为遗漏配置步骤导致的故障。
解答
该故障不属于遗漏官方前置配置步骤,是配置参数冲突+服务异常退出残留文件共同导致,按以下步骤修复即可:
- 修复源配置的RHSM参数冲突
报错明确提示自定义源配置中开启了rhsm: true,但当前系统无有效红帽订阅。如果你本身就是要使用自定义baseurl替代官方RHSM源,不需要订阅鉴权,直接编辑/etc/osbuild-composer/repositories/目录下对应RHEL8版本的仓库配置json文件,将所有自定义源条目的rhsm字段改为false即可。
如果你确实需要使用红帽官方RHSM源,不要自定义baseurl覆盖,先执行subscription-manager register完成系统订阅注册,再保留rhsm: true配置即可,禁止混用自定义第三方源和RHSM源的鉴权参数。 - 修复osbuild-composer服务socket连接异常
连接被拒是因为服务异常退出后,weldr API对应的socket文件没有被正常创建/残留损坏,按顺序执行以下操作恢复:- 停止所有相关服务:
systemctl stop osbuild-composer.socket osbuild-composer.service cockpit-composer.service - 删除残留的损坏socket文件:
rm -f /run/weldr/api.socket - 重载systemd配置并按依赖顺序启动服务:
systemctl daemon-reload systemctl start osbuild-composer.socket systemctl start osbuild-composer.service - 验证服务状态:执行
composer-cli status show如果正常返回服务运行信息,说明socket通信恢复。
- 停止所有相关服务:
- 验证修复结果
重新执行composer-cli blueprints depsolve Test1-blueprint,如果能正常输出所有依赖包列表,说明故障完全解决。
内容的提问来源于stack exchange,提问作者Linuxuser
相关产品推荐
相关产品推荐

