
Я обновил свой сервер Oracle Linux 6.4 до Oracle Linux 6.8, который зарегистрирован на сервере spacewalk. Но после обновления команды 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
Я нашел решение, я публикую его здесь на случай, если кто-то столкнется с такой же ситуацией. Причина этой ошибки в том, что когда вы обновляете сервер Oracle Linux через spacewalk с помощью команды "yum update", yum update заменяет серверный плагин rhn с поддержкой spacewalk на плагин с поддержкой ULN.
Я удалил пакеты up2date с помощью "yum eras up2date" и "yum eras pirut", после этого я смонтировал ISO "RHEL 6.8" на сервере Oracle Linux. После этого я добавил этот iso как локальный репозиторий. Я установил rhn tools с помощью "yum install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin" и удалил файл локального репозитория. Теперь все работает отлично!
решение2
Я столкнулся с этой же ошибкой, хотя, возможно, по другой причине. Я зарегистрировал свой Oracle Linux 6.7 на сервере spacewalk, но забыл сначала обновить пакеты spacewalk. Многочисленные исследования не дали ничего, кроме того, что это проблема. (Я попробовал решение DNND, но rhn берет верх над yum. Одна из команд ниже будет работать с его решением)
В скрипте Python есть известная ошибка. Отредактируйте /usr/share/rhn/up2date_client/up2dateAuth.py
и измените 3 экземпляра :X-RHN-Auth-Expiration
на X-RHN-Auth-Expire-Offset
.
Либо используйте Linux ISO, как это сделал DNND, либо современный репозиторий, использующий yum, отключив плагин rhn:
yum --disableplugin=rhnplugin -y install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin
решение3
Вот простое решение этой проблемы. Я выяснил, что запуск rhnreg
команды одновременно на нескольких серверах для регистрации клиента на спутнике spacewalk/redhat вызывает эту проблему. Например, я запускаю эту команду на 4 своих серверах, и только один сервер успешно регистрируется.
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)
P.S. не забудьте удалить cd /etc/yum.repos.d/; rm -rf spacewalk26-client.repo перед запуском команды rhnreg, иначе возникнет другая ошибка.
Отключите доступ к репозиторию Spacewalk Client в файле конфигурации репозитория Oracle Linux Yum Server или удалите /etc/yum.repos.d/spacewalk26-client.repo.