Обновление CentOS с 6 на 7 версию

Безболезненное обновление версии CentOS с 6 до версии 7.

Небольшие особенности 7-ой версии

  • Поддержка Линуск контейнеров
  • Обновленное ядро 3.10.0
  • XFS файловая система по умолчанию
  • Создание LVM снепшотов с файловой системой ext4 или XFS
  • Переход с MySQL на MariaDB
  • Поддержка установки в UEFI режиме
  • и многое другое…

Обновление текущей CentOS 6

Перед тем, как начать - проверьте чтобы были установлены все последние обновления, это поможет избежать проблем в дальнейшем.

yum -y update

Проверяем текущую версию системы

Обновление до 7 версии возможно с версии CentOS 6.5 и CentOS 6.6. Если версия вашей системы ниже представленных, то рекомендую обновить её до последней в своей ветке.

# cat /etc/redhat-release
CentOS release 6.6 (Final)

Установка дополнительных пакетов и инструментов обновления

yum -y install openscap pcre-devel libxml2-devel libxslt-devel m2crypto python-simplejson mod_wsgi

Начиная с 7 версии RHEL обновление возможно с помощью утилиты redhat-upgrade-tool.
Для установки утилиты есть два пути: быстрый - подключение репозитория, и более долгий со скачиванием и установкой каждого пакета.

Для второго пути

Необходимо скачать требующиеся файлы http://dev.centos.org/centos/6/upg/x86_64/Packages/

Далее пакеты, которые вам понадобятся

  • preupgrade-assistant
  • preupgrade-assistant-contents
  • preupgrade-assistant-ui
  • redhat-upgrade-tool

Для скачивания и установки переходим в директорию /etc/ и загружаем пакеты

cd /etc
wget http://dev.centos.org/centos/6/upg/x86_64/Packages/preupgrade-assistant-1.0.2-33.0.3.el6.centos.x86_64.rpm http://dev.centos.org/centos/6/upg/x86_64/Packages/preupgrade-assistant-contents-0.5.13-1.0.5.el6.centos.noarch.rpm http://dev.centos.org/centos/6/upg/x86_64/Packages/preupgrade-assistant-ui-1.0.2-33.0.3.el6.centos.x86_64.rpm http://dev.centos.org/centos/6/upg/x86_64/Packages/redhat-upgrade-tool-0.7.22-3.el6.centos.noarch.rpm
yum localinstall preupgrade-assistant-*

Для первого (более быстрого) пути

Создаем новый файл репозитория со следующим содержанием

nano /etc/yum.repos.d/upgradetool.repo
[upg]
name=CentOS-$releasever - Upgrade Tool
baseurl=http://dev.centos.org/centos/6/upg/x86_64/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

И производим их установку

yum -y install redhat-upgrade-tool preupgrade-assistant-contents

Запуск прединсталляционного помощника

Запуск пред-инсталляционного помощника не выполняет никаких модернизаций, но будет проверять потенциальные проблемы, которые могут произойти после перехода с 6 на 7 версию CentOS

preupg

Утилита дополнительно спросит вас, хотим ли продолжить - отвечаем “yes”

[root@bogachev ~]# preupg
Preupg tool doesn't do the actual upgrade.
Please ensure you have backed up your system and/or data in the event of a failed upgrade
that would require a full re-install of the system from installation media.
Do you want to continue? y/n

Результат работы данной команды на моей системе

Gathering logs used by preupgrade assistant:
All installed packages : 01/11 ...finished (time 00:00s)
All changed files : 02/11 ...finished (time 00:37s)
Changed config files : 03/11 ...finished (time 00:00s)
All users : 04/11 ...finished (time 00:00s)
All groups : 05/11 ...finished (time 00:00s)
Service statuses : 06/11 ...finished (time 00:00s)
All installed files : 07/11 ...finished (time 00:01s)
All local files : 08/11 ...finished (time 00:01s)
All executable files : 09/11 ...finished (time 00:00s)
RedHat signed packages : 10/11 ...finished (time 00:00s)
CentOS signed packages : 11/11 ...finished (time 00:00s)
Assessment of the system, running checks / SCE scripts:
001/096 ...done (Configuration Files to Review)
002/096 ...done (File Lists for Manual Migration)
003/096 ...done (Bacula Backup Software)
004/096 ...done (MySQL configuration)
005/096 ...done (Migration of the MySQL data stack)
006/096 ...done (Changes related to moving from MySQL to MariaDB)
007/096 ...done (PostgreSQL upgrade content)
008/096 ...done (GNOME Desktop Environment underwent several design modifications in CentOS 7 release)
009/096 ...done (KDE Desktop Environment underwent several design modifications in CentOS 7 release)
010/096 ...done (several graphic drivers not supported in CentOS 7)
011/096 ...done (several input drivers not supported in CentOS 7)
012/096 ...done (several kernel networking drivers not available in CentOS 7)
013/096 ...done (several kernel storage drivers not available in CentOS 7)
014/096 ...done (Names, Options and Output Format Changes in arptables)
015/096 ...done (BIND9 running in a chroot environment check.)
016/096 ...done (BIND9 configuration compatibility check)
017/096 ...done (Move dhcpd/dhcprelay arguments from /etc/sysconfig/* to *.service files)
018/096 ...done (DNSMASQ configuration compatibility check)
019/096 ...done (Dovecot configuration compatibility check)
020/096 ...done (Compatibility Between iptables and ip6tables)
021/096 ...done (Net-SNMP check)
022/096 ...done (Squid configuration compatibility check)
023/096 ...done (Reusable Configuration Files)
024/096 ...done (VCS repositories)
025/096 ...done (Added and extended options for BIND9 configuration)
026/096 ...done (Added options in DNSMASQ configuration)
027/096 ...done (Packages not signed by CentOS)
028/096 ...done (Obsoleted rpms)
029/096 ...done (w3m not available in CentOS 7)
030/096 ...done (report incompatibilities between CentOS 6 and 7 in qemu-guest-agent package)
031/096 ...done (Removed options in coreutils binaries)
032/096 ...done (Removed options in gawk binaries)
033/096 ...done (Removed options in netstat binary)
034/096 ...done (Removed options in quota tools)
035/096 ...done (Removed rpms)
036/096 ...done (Replaced rpms)
037/096 ...done (GMP library incompatibilities)
038/096 ...done (package downgrades)
039/096 ...done (restore custom selinux configuration)
040/096 ...done (General)
041/096 ...done (samba shared directories selinux)
042/096 ...done (CUPS Browsing/BrowsePoll configuration)
043/096 ...done (CVS Package Split)
044/096 ...done (FreeRADIUS Upgrade Verification)
045/096 ...done (httpd configuration compatibility check)
046/096 ...done (bind-dyndb-ldap)
047/096 ...done (Identity Management Server compatibility check)
048/096 ...done (IPA Server CA Verification)
049/096 ...done (NTP configuration)
050/096 ...done (Information on time-sync.target)
051/096 ...done (OpenLDAP /etc/sysconfig and data compatibility)
052/096 ...done (OpenSSH sshd_config migration content)
053/096 ...done (OpenSSH sysconfig migration content)
054/096 ...done (Configuration for quota_nld service)
055/096 ...done (Disk quota netlink message daemon moved into quota-nld package)
056/096 ...done (SSSD compatibility check)
057/096 ...done (Luks encrypted partition)
058/096 ...done (Clvmd and cmirrord daemon management.)
059/096 ...done (State of LVM2 services.)
060/096 ...done (device-mapper-multipath configuration compatibility check)
061/096 ...done (Removal of scsi-target-utils)
062/096 ...done (Configuration for warnquota tool)
063/096 ...done (Disk quota tool warnquota moved into quota-warnquota package)
064/096 ...done (Architecture Support)
065/096 ...done (Binary rebuilds)
066/096 ...done (Debuginfo packages)
067/096 ...done (Cluster and High Availability)
068/096 ...done (Quorum implementation)
069/096 ...done (fix krb5kdc config file)
070/096 ...done (File Systems, Partitions and Mounts Configuration Review)
071/096 ...done (Read Only FHS directories)
072/096 ...done (Sonamebumped libs)
073/096 ...done (SonameKept Reusable Dynamic Libraries)
074/096 ...done (Removed .so libs)
075/096 ...done (In-place Upgrade Requirements for the /usr/ Directory)
076/096 ...done (CA certificate bundles modified)
077/096 ...done (Developer Tool Set packages)
078/096 ...done (Hyper-V)
079/096 ...done (Content for enabling and disabling services based on CentOS 6 system)
080/096 ...done (Check for ethernet interface naming)
081/096 ...done (User modification in /etc/rc.local and /etc/rc.d/rc.local)
082/096 ...done (cgroups configuration compatibility check)
083/096 ...done (Plugable authentication modules (PAM))
084/096 ...done (Foreign Perl modules)
085/096 ...done (Python 2.7.5)
086/096 ...done (Ruby 2.0.0)
087/096 ...done (SCL collections)
088/096 ...done (System kickstart)
089/096 ...done (YUM)
090/096 ...done (Check for usage of dangerous range of UID/GIDs)
091/096 ...done (Incorrect usage of reserved UID/GIDs)
092/096 ...done (NIS ypbind config files back-up)
093/096 ...done (NIS Makefile back-up)
094/096 ...done (NIS server maps check)
095/096 ...done (NIS server MAXUID and MAXGID limits check)
096/096 ...done (NIS server config file back-up)
Assessment finished (time 02:43s)
Result table with checks and their results for main contents:
---------------------------------------------------------------------------------------------------------------
|Bacula Backup Software |notapplicable |
|MySQL configuration |notapplicable |
|Migration of the MySQL data stack |notapplicable |
|Changes related to moving from MySQL to MariaDB |notapplicable |
|PostgreSQL upgrade content |notapplicable |
|GNOME Desktop Environment underwent several design modifications in CentOS 7 release |notapplicable |
|KDE Desktop Environment underwent several design modifications in CentOS 7 release |notapplicable |
|several graphic drivers not supported in CentOS 7 |notapplicable |
|several input drivers not supported in CentOS 7 |notapplicable |
|Names, Options and Output Format Changes in arptables |notapplicable |
|BIND9 running in a chroot environment check. |notapplicable |
|BIND9 configuration compatibility check |notapplicable |
|Move dhcpd/dhcprelay arguments from /etc/sysconfig/* to *.service files |notapplicable |
|DNSMASQ configuration compatibility check |notapplicable |
|Dovecot configuration compatibility check |notapplicable |
|Net-SNMP check |notapplicable |
|Squid configuration compatibility check |notapplicable |
|Added and extended options for BIND9 configuration |notapplicable |
|Added options in DNSMASQ configuration |notapplicable |
|w3m not available in CentOS 7 |notapplicable |
|report incompatibilities between CentOS 6 and 7 in qemu-guest-agent package |notapplicable |
|Removed options in quota tools |notapplicable |
|restore custom selinux configuration |notapplicable |
|samba shared directories selinux |notapplicable |
|CUPS Browsing/BrowsePoll configuration |notapplicable |
|CVS Package Split |notapplicable |
|FreeRADIUS Upgrade Verification |notapplicable |
|bind-dyndb-ldap |notapplicable |
|Identity Management Server compatibility check |notapplicable |
|IPA Server CA Verification |notapplicable |
|NTP configuration |notapplicable |
|Information on time-sync.target |notapplicable |
|OpenLDAP /etc/sysconfig and data compatibility |notapplicable |
|Configuration for quota_nld service |notapplicable |
|Disk quota netlink message daemon moved into quota-nld package |notapplicable |
|SSSD compatibility check |notapplicable |
|Clvmd and cmirrord daemon management. |notapplicable |
|Removal of scsi-target-utils |notapplicable |
|Configuration for warnquota tool |notapplicable |
|Disk quota tool warnquota moved into quota-warnquota package |notapplicable |
|Quorum implementation |notapplicable |
|fix krb5kdc config file |notapplicable |
|cgroups configuration compatibility check |notapplicable |
|Ruby 2.0.0 |notapplicable |
|SCL collections |notapplicable |
|NIS ypbind config files back-up |notapplicable |
|NIS Makefile back-up |notapplicable |
|NIS server maps check |notapplicable |
|NIS server MAXUID and MAXGID limits check |notapplicable |
|NIS server config file back-up |notapplicable |
|several kernel networking drivers not available in CentOS 7 |pass |
|several kernel storage drivers not available in CentOS 7 |pass |
|Compatibility Between iptables and ip6tables |pass |
|Reusable Configuration Files |pass |
|OpenSSH sshd_config migration content |pass |
|Luks encrypted partition |pass |
|Architecture Support |pass |
|Debuginfo packages |pass |
|Cluster and High Availability |pass |
|Read Only FHS directories |pass |
|In-place Upgrade Requirements for the /usr/ Directory |pass |
|CA certificate bundles modified |pass |
|Developer Tool Set packages |pass |
|Hyper-V |pass |
|Check for ethernet interface naming |pass |
|User modification in /etc/rc.local and /etc/rc.d/rc.local |pass |
|Plugable authentication modules (PAM) |pass |
|Python 2.7.5 |pass |
|System kickstart |pass |
|Check for usage of dangerous range of UID/GIDs |pass |
|Incorrect usage of reserved UID/GIDs |pass |
|VCS repositories |informational |
|Removed options in coreutils binaries |informational |
|Removed options in gawk binaries |informational |
|Removed options in netstat binary |informational |
|GMP library incompatibilities |informational |
|httpd configuration compatibility check |informational |
|File Systems, Partitions and Mounts Configuration Review |informational |
|Sonamebumped libs |informational |
|SonameKept Reusable Dynamic Libraries |informational |
|Removed .so libs |informational |
|Foreign Perl modules |informational |
|YUM |informational |
|Replaced rpms |fixed |
|package downgrades |fixed |
|OpenSSH sysconfig migration content |fixed |
|State of LVM2 services. |fixed |
|device-mapper-multipath configuration compatibility check |fixed |
|Configuration Files to Review |needs_inspection |
|File Lists for Manual Migration |needs_inspection |
|Obsoleted rpms |needs_inspection |
|Binary rebuilds |needs_inspection |
|Packages not signed by CentOS |needs_action |
|Removed rpms |needs_action |
|General |needs_action |
|Content for enabling and disabling services based on CentOS 6 system |needs_action |
---------------------------------------------------------------------------------------------------------------
Tarball with results is stored here /root/preupgrade-results/preupg_results-150318105406.tar.gz .
The latest assessment is stored in directory /root/preupgrade .
Summary information:
We found some potential in-place upgrade risks.
Read the file /root/preupgrade/result.html for more details.
Upload results to UI by command:
e.g. preupg -u http://127.0.0.1:8099/submit/ -r /root/preupgrade-results/preupg_results-*.tar.gz .

После завершения работы утилиты - получим результат с кодом выхода, далее представлено их значение.

PASS: Все в порядке;
FAIL: Что-то пошло не так, возможно будут проблемы с совместимостью;
FIXED: Обнаружена несовместимость, но есть решение исправить запуском postupgrade.d скриптов, после обновления;
INFORMATIONAL: Информация для администраторов;
NOT_APPLICABLE: Некоторые пакеты не установлены в вашей системе, но будут проверены;
ERROR: Есть ошибки в рамках самой утилиты (не стоит об этом беспокоиться);

Обновление с CentOS 6 на 7

После проверки прединсталляционной утилитой мы готовы приступить к обновлению.

Добавляем ключ

rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

И в завершении запускаем команду

centos-upgrade-tool-cli --network 7 --instrepo=http://mirror.centos.org/centos/7/os/x86_64/

Вы можете выбрать другое зеркало

После завершения процесса обновления, утилита попросит перезагрузить систему для завершения установки.

...
INPLACERISK: SLIGHT: We detected some files untracked by rpms. Some of these may need manual check/migration after redhat-upgrade-tool and/or can cause conflicts or troubles during the installation. Try to reduce unnecessary untracked files before running redhat-upgrade-tool.
INPLACERISK: SLIGHT: We detected some packages installed on the system changed their name between CentOS 6 and CentOS 7. Although they should be compatible, monitoring after the update is recommended.
INPLACERISK: SLIGHT: export shell commands will be deleted from /etc/sysconfig/sshd
INPLACERISK: SLIGHT: Some scripts untracked by RPM were discovered on the system and may not work properly after upgrade.
Continue with the upgrade [Y/N]? Y

Перезагружаем систему

reboot

После перезагрузки проверяем версию системы

# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)

Обновление завершено!

Поделиться Комментарии