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

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

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

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

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

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

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

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

1
yum -y update

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

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

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

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

1
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/ и загружаем пакеты

1
cd /etc
1
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
1
yum localinstall preupgrade-assistant-*

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

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

1
nano /etc/yum.repos.d/upgradetool.repo
1
2
3
4
5
6
[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

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

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

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

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

1
preupg

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

1
2
3
4
5
[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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
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

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

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

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

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

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

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

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

1
2
3
4
5
6
...
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

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

1
reboot

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

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

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