
Oracle Linux 6.4 サーバーを、spacewalk サーバーに登録されている Oracle Linux 6.8 に更新しました。しかし、更新後、yum コマンドがサーバーで機能しません。
[root@j4server tmp]# yum update
Loaded plugins: aliases, changelog, kabi, presto, refresh-packagekit, rhnplugin, security, tmprepo, verify,
: versionlock
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 298, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 115, in main
base.getOptionsConfig(args)
File "/usr/share/yum-cli/cli.py", line 229, in getOptionsConfig
self.conf
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 911, in <lambda>
conf = property(fget=lambda self: self._getConfig(),
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 363, in _getConfig
self.plugins.run('init')
File "/usr/lib/python2.6/site-packages/yum/plugins.py", line 184, in run
func(conduitcls(self, self.base, conf, **kwargs))
File "/usr/share/yum-plugins/rhnplugin.py", line 115, in init_hook
login_info = up2dateAuth.getLoginInfo()
File "/usr/share/rhn/up2date_client/up2dateAuth.py", line 219, in getLoginInfo
login()
File "/usr/share/rhn/up2date_client/up2dateAuth.py", line 167, in login
if readCachedLogin():
File "/usr/share/rhn/up2date_client/up2dateAuth.py", line 133, in readCachedLogin
expireTime = float(li['X-RHN-Auth-Expiration'])
KeyError: 'X-RHN-Auth-Expiration'
この出力が返されます。rhn-plugin を無効にしようとすると、yum コマンドは機能し、spacewalk 上のパッケージを一覧表示しますが、ご想像のとおりインストールできません。
この状況について何かアイデアはありますか? ご協力いただければ幸いです!
答え1
解決策を見つけました。同じ状況に遭遇した人がいるかもしれないので、ここに解決策を投稿します。この障害の原因は、spacewalk 経由で「yum update」コマンドを使用して Oracle Linux サーバーを更新すると、yum update によってサーバーの spacewalk 対応 rhn プラグインが ULN 対応プラグインに置き換えられるためです。
「yum erasing up2date」と「yum erasing pirut」で up2date パッケージを消去した後、「RHEL 6.8」ISO を Oracle Linux サーバーにマウントしました。この ISO をローカル リポジトリとして追加した後、「yum install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin」で rhn ツールをインストールし、ローカル リポジトリ ファイルを削除しました。これですべて正常に動作します。
答え2
私も同じエラーに遭遇しましたが、理由は違うかもしれません。Oracle Linux 6.7 を spacewalk サーバーに登録しましたが、最初に spacewalk パッケージを更新するのを忘れていました。多くの調査を行っても、これが問題であること以外は何も分かりませんでした。(DNND のソリューションを試しましたが、rhn が yum を引き継ぎます。以下のコマンドの 1 つが彼のソリューションで機能します)
Python スクリプトに既知のバグがあります。 の 3 つのインスタンスを編集し て/usr/share/rhn/up2date_client/up2dateAuth.py
に変更します。:X-RHN-Auth-Expiration
X-RHN-Auth-Expire-Offset
DNND のように Linux ISO を使用するか、最新のリポジトリで rhn プラグインを無効にして yum を使用します。
yum --disableplugin=rhnplugin -y install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin
答え3
この問題の簡単な修正方法は次のとおりです。spacewalk/redhat satellite にクライアントを登録するために、複数のサーバーで同時にコマンドを実行すると、この問題が発生することがわかりましたrhnreg
。たとえば、このコマンドを 4 台のサーバーで実行しましたが、正常に登録されたのは 1 台のサーバーのみでした。
私のサーバーのうち 3 台が上記と同じエラーをスローしています。問題を解決するために行ったことは次のとおりです。
up2dateAuth.py
現在のファイルのバックアップを取った
cp /usr/share/rhn/up2date_client/up2dateAuth.py /usr/share/rhn/up2date_client/up2dateAuth.py_`date +%m_%d_%Y`
scp
スペースウォークサーバーに正常に登録された最初のサーバーから実行しました。
scp /usr/share/rhn/up2date_client/up2dateAuth.py root@server2:/usr/share/rhn/up2date_client/
ls -lrth /usr/share/rhn/up2date_client/up2dateAuth.py*
走る
yum repolist
rhnreg_ks --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --serverUrl=https://myspacewalkserver-corp.com/XMLRPC --activationkey=1-oraclelinux6-x86_64 --force
yum repolist (it work like a charm)
PS: rhnreg コマンドを実行する前に、cd /etc/yum.repos.d/; rm -rf spacewalk26-client.repo を削除することを忘れないでください。そうしないと、別のエラーが発生します。
Oracle Linux Yum Server リポジトリ構成ファイルで Spacewalk Client リポジトリへのアクセスを無効にするか、/etc/yum.repos.d/spacewalk26-client.repo を削除します。