admin管理员组

文章数量:1529455

问题描述

从MarketPlace中使用RHEL 7.6的AMI启动EC2实例后执行yum update遇到下面错误:

[ec2-user@ip-172-31-43-28 ~]$ sudo yum update
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos


Could not contact any CDS load balancers: https://rhui3-northwest-1.aws.ce.redhat/pulp/content/.

问题原因

根据官方RHEL的生命周期声明: Red Hat Enterprise Linux Life Cycle RHEL 7.6 的Extended Update Support Add-on 都已经于2021年5月31日结束了, 同时RedHat官网上的说明: RHUI 3 Takes Over in AWS, Bringing New DNS Data

由于RHEL 7.6默认使用的还是版本号为2的 rh-amazon-rhui-client, 检查/etc/yum.repo.d/redhat-rhui开头的repo配置文件可以看到都是以https://rhui2-cds01.REGION.aws.ce.redhat开头的地址.

2020年7月份升级到RHUI 3以后更换了相关的hostname和IP地址, 这也就是导致无法继续使用原来的repo.

With the transition to RHUI 3, new host names and IP addresses are used. If you have firewall rules, proxy settings etc. that worked with the original RHUI 2 host names or their original IP addresses, you are likely affected, and will need to change these rules or settings to allow the new host names or IP addresses.

解决方法

参考re:post上的文章 记录一下实际操作的步骤

  1. 启动一台新的使用RHEL 7最后一个大版本实例, 我这里用的是RHEL-7.9_HVM-20211005-x86_64-0-Hourly2-GP2 - ami-0196d703168979cc6

  2. SSH连接到这台实例上, 使用下面命令下载最新版本的rh-amazon-rhui-client.noarch

    sudo yum install --downloadonly --downloaddir=/home/ec2-user/ rh-amazon-rhui-client.noarch
    
  3. 断开SSH连接, 在本地电脑上使用scp命令将安装包下载到本地, 下一步再传到有问题的7.6实例上

    # 从7.9下载安装包到本地桌面
    scp -i .\xxx.pem ec2-user@[RHEL 7.9的IP]:/home/ec2-user/rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm ./Desktop/
    
    scp -i .\xxx.pem .\Desktop\rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm ec2-user@[RHEL 7.6的IP]:/home/ec2-user/
    
  4. SSH连接到7.6实例中执行下面命令更新rh-amazon-rhui-client

    # 卸载7.6系统中自带的老版本的client和beta版
    sudo yum remove -y rh-amazon-rhui-client rh-amazon-rhui-client-beta
    # 手工安装下载好的新版本rpm包
    sudo rpm -ivh --nodeps ~/rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm
    # 通过yum再重新安装一遍解决包依赖的问题
    sudo yum reinstall -y rh-amazon-rhui-client
    # 刷新缓存和repo信息
    sudo yum clean all
    sudo yum repolist
    sudo yum list
    

新的问题及处理思路

经过测试, 上面的方法确实可以使用yum了, 但是试了几个常用的包, 发现居然都没有, 看来7.6官方停止支持后可能移除掉了repo仓库中的内容导致.

除了直接换用7.9版本的系统外, 如果确实需要继续使用7.6的话, 可以继续参考下面步骤切换使用CentOS的repo

注意: 使用CentOS的仓库;理论上是兼容的, 不过也有可能存在不稳定或兼容问题, 同时由于CentOS属于开源社区维护, 遇到问题可能无法从RedHat获取到技术支持, 请酌情使用

# 先将现有的repo备份
sudo -i
cd /etc/yum.repo.d
sudo mkdir bak
sudo mv *.repo ./bak/

# 下载CentOS的repo文件, 国内镜像站挺多的, 这里用网易的可以直接下载
curl -O http://mirrors.163/.help/CentOS7-Base-163.repo

注意这时候下载好了CentOS的repo后还不能直接用, 因为RHEL中关于系统发型版本的变量与CentOS不太一样, 直接yum update更新会报错:

failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.
http://mirrors.163/centos/7Server/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found

继续下面操作自定义变量进行替换:

echo 7 > /etc/yum/releasever

再次刷新缓存更新

yum clean all
yum update

本文标签: 报错yumRHELbalancersload