EC2(RHEL)のyumが失敗する場合の対応について

記事タイトルとURLをコピーする

こんにちは。AWS CLIが好きな福島です。

はじめに

今回は、以下のエラーでyumが失敗する場合の対応方法について、記載いたします。

[ERROR]: Could not contact any CDS load balancers: https://rhui3.ap-northeast-1.aws.ce.redhat.com/pulp/content/

結論

rh-amazon-rhui-client のバージョンを3.x以上にアップデートします。
(上記パッケージのバージョンが 3.x よりも古い場合にエラーが発生します。)

対応方法

yumで対象のパッケージをアップデートしたいのですが、そもそもyumができないため、 対象のパッケージを、yumができる別のEC2から取得する必要があります。

上記を考慮した対応方法の流れは以下の通りです。

◆流れ
①rh-amazon-rhui-clientのバージョン 3.x を使用するEC2の構築(RHEL 7.9 の AMI等)
②①で構築したEC2上でrh-amazon-rhui-clientのパッケージをダウンロード
③②で取得したパッケージをyumができないEC2にアップロード
④yumができないEC2に②で取得したパッケージをインストール
⑤yumのキャッシュクリア
⑥動作確認

手順

事前確認

手順を実施する前に、rh-amazon-rhui-clientのバージョン確認します。
yum ができないEC2で以下のコマンドを実行します。

  • 実行コマンド
rpm -qa rh-amazon-rhui-client

以下のように、3.x より古い場合、以降の手順を進めます。
もし、3.x以上の場合、別の問題があるため、以降の手順は実施不要です...

  • 実行例
[root@ip-10-88-0-222 ~]# rpm -qa rh-amazon-rhui-client
rh-amazon-rhui-client-2.2.141-1.el7.noarch
[root@ip-10-88-0-222 ~]#

①rh-amazon-rhui-clientのバージョン 3.x を使用するEC2の構築(RHEL 7.9 の AMI等)

手順は割愛いたしますが、私は「ami-008e28833cf3548c9」のAMIを利用してEC2を構築しました。

②①で構築したEC2上でrh-amazon-rhui-clientのパッケージをダウンロード

  • 実行コマンド
sudo yumdownloader rh-amazon-rhui-client
  • 実行例
[ec2-user@ip-10-88-0-139 ~]$ sudo yumdownloader rh-amazon-rhui-client
Failed to set locale, defaulting to C
Loaded plugins: amazon-id
rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm                                                 |  33 kB  00:00:00
[ec2-user@ip-10-88-0-139 ~]$ ls -lrt
total 36
-rw-r--r--. 1 root root 33456 Nov 22 08:56 rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm
[ec2-user@ip-10-88-0-139 ~]$

③②で取得したパッケージを yum ができないEC2にアップロード

まずは、ローカルにダウンロードしたパッケージをダウンロードします。

  • 実行コマンド(ダウンロード)
scp -i [キーペア名] [ユーザー名]@[IP]:[取得したいパッケージのパス] ./
  • 実行例
# scp -i fk-test-key.pem ec2-user@10.88.0.139:~/rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm ./
rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm                                      100%   33KB 323.3KB/s   00:00
#

ローカルからyumができないEC2へアップロードします。

  • 実行コマンド(アップロード)
scp -i [キーペア名] ./[アップロードしたいパッケージのパス] [ユーザー名]@[IP]:~/
  • 実行例
# scp -i fk-test-key.pem ./rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm ec2-user@10.88.0.222:~/
rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm                                      100%   33KB   1.2MB/s   00:00
#

④yumができないEC2に②で取得したパッケージをインストール

  • 実行コマンド
sudo yum localinstall [アップロードしたパッケージ]
  • 実行例
[ec2-user@ip-10-88-0-222 ~]$ sudo yum localinstall rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm
Failed to set locale, defaulting to C
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
Examining rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm: rh-amazon-rhui-client-3.0.45-1.el7.noarch
Marking rh-amazon-rhui-client-3.0.45-1.el7.noarch.rpm as an update to rh-amazon-rhui-client-2.2.141-1.el7.noarch
Resolving Dependencies
--> Running transaction check
---> Package rh-amazon-rhui-client.noarch 0:2.2.141-1.el7 will be updated
---> Package rh-amazon-rhui-client.noarch 0:3.0.45-1.el7 will be obsoleting
---> Package rh-amazon-rhui-client-beta.noarch 0:2.2.141-1.el7 will be obsoleted
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================
 Package                     Arch         Version              Repository                                        Size
======================================================================================================================
Installing:
 rh-amazon-rhui-client       noarch       3.0.45-1.el7         /rh-amazon-rhui-client-3.0.45-1.el7.noarch        62 k
     replacing  rh-amazon-rhui-client-beta.noarch 2.2.141-1.el7

Transaction Summary
======================================================================================================================
Install  1 Package

Total size: 62 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : rh-amazon-rhui-client-3.0.45-1.el7.noarch                                                          1/3
warning: /etc/yum.repos.d/redhat-rhui-beta.repo saved as /etc/yum.repos.d/redhat-rhui-beta.repo.rpmsave
warning: /etc/yum.repos.d/redhat-rhui-client-config.repo saved as /etc/yum.repos.d/redhat-rhui-client-config.repo.rpmsave
warning: /etc/yum.repos.d/redhat-rhui.repo saved as /etc/yum.repos.d/redhat-rhui.repo.rpmsave
[INFO:choose_repo] choose_repo:37 2022-02-08 04:54:29,681: Enabling binary repos in redhat-rhui-beta.repo
[INFO:choose_repo] choose_repo:56 2022-02-08 04:54:29,681: Enabling client config repo
[INFO:choose_repo] choose_repo:66 2022-02-08 04:54:29,681: Executing [sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/redhat-rhui-client-config.repo]
  Erasing    : rh-amazon-rhui-client-beta-2.2.141-1.el7.noarch                                                    2/3
warning: /etc/yum/pluginconf.d/rhui-lb.conf saved as /etc/yum/pluginconf.d/rhui-lb.conf.rpmsave
warning: /etc/yum.repos.d/rhui-load-balancers.conf saved as /etc/yum.repos.d/rhui-load-balancers.conf.rpmsave
warning: /etc/yum.repos.d/redhat-rhui-client-config-beta.repo saved as /etc/yum.repos.d/redhat-rhui-client-config-beta.repo.rpmsave
  Cleanup    : rh-amazon-rhui-client-2.2.141-1.el7.noarch                                                         3/3
  Verifying  : rh-amazon-rhui-client-3.0.45-1.el7.noarch                                                          1/3
  Verifying  : rh-amazon-rhui-client-beta-2.2.141-1.el7.noarch                                                    2/3
  Verifying  : rh-amazon-rhui-client-2.2.141-1.el7.noarch                                                         3/3

Installed:
  rh-amazon-rhui-client.noarch 0:3.0.45-1.el7

Replaced:
  rh-amazon-rhui-client-beta.noarch 0:2.2.141-1.el7

Complete!
[ec2-user@ip-10-88-0-222 ~]$ 

⑤キャッシュのクリア

  • 実行コマンド
sudo yum clean all
  • 実行例
[ec2-user@ip-10-88-0-222 ~]$ sudo yum clean all
Failed to set locale, defaulting to C
Loaded plugins: amazon-id, search-disabled-repos
Cleaning repos: rhel-7-server-releases-rhui-beta rhui-client-config-server-7
[ec2-user@ip-10-88-0-222 ~]$

⑥動作確認

実行したいyumコマンドを実行し、正常にyumができることを確認します。 私はyum infoを実行してみました。

[ec2-user@ip-10-88-0-222 ~]$ sudo yum info | head -10
Failed to set locale, defaulting to C
Loaded plugins: amazon-id, search-disabled-repos
Installed Packages
Name        : GeoIP
Arch        : x86_64
Version     : 1.5.0
Release     : 13.el7
Size        : 3.7 M
Repo        : installed
From repo   : anaconda
Summary     : Library for country/city/organization to IP address or hostname


Exiting on Broken Pipe
[ec2-user@ip-10-88-0-222 ~]$

終わりに

今回は、EC2(RHEL)のyumが失敗する場合の対応についてブログに記載いたしました。
どなたかのお役に立てれば幸いです。

福島 和弥 (記事一覧)

SRE3課

2019/10 入社

AWS CLIが好きです。