Создайте подобный сайт на WordPress.com
Начало работы

Offline обновление CentOS

Обычно с обновлением linux, проблем не возникает: написал в командной строке yum update, подождал, перезагрузил и готово. Но бывают случаи, когда надо обновить до конкретной версии ядра или просто на серверах нет интернета. В такой момент очень помогает офлайн обновление.

Давайте попробуем на примере обновить CentOS версии 1611 до версии 1708:

  1. Проверяем текущую версию ОС
[root@test ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)

2. Подключаем образ ОС с версией 1708 и монтируем его в папку /mnt/iso

[root@test ~]# mkdir /mnt/iso
[root@test ~]# lsscsi
[0:0:0:0]    disk    ATA      VBOX HARDDISK    1.0   /dev/sda
[0:0:1:0]    cd/dvd  VBOX     CD-ROM           1.0   /dev/sr0
[root@test ~]# mount -t iso9660 -o ro /dev/sr0 /mnt/iso
[root@test ~]# ls -l /mnt/iso

#В данном примере мы монтируем физический диск, вставленный в сервер. 
#Если на сервере просто лежит ISO-образ, то команда монтирования будет следующей
[root@test ~]# mount -o loop <iso_name> /mnt/iso

3. Проверка числового значения, находящегося в первой строке файла .discinfo

[root@test iso]# head -n1 /mnt/iso/.discinfo
1504618416.850667

4. Переходим в каталог /etc/yum.repos.d/ и временно переносим от туда все каталоги с текущими репозиториями в каталог /root/old_repo:

[root@test iso]# cd /etc/yum.repos.d/
[root@test yum.repos.d]# ls -la
total 40
drwxr-xr-x.  2 root root  187 Nov 15  2016 .
drwxr-xr-x. 78 root root 8192 Jul 30 10:59 ..
-rw-r--r--.  1 root root 1664 Nov 29  2016 CentOS-Base.repo
-rw-r--r--.  1 root root 1309 Nov 29  2016 CentOS-CR.repo
-rw-r--r--.  1 root root  649 Nov 29  2016 CentOS-Debuginfo.repo
-rw-r--r--.  1 root root  314 Nov 29  2016 CentOS-fasttrack.repo
-rw-r--r--.  1 root root  630 Nov 29  2016 CentOS-Media.repo
-rw-r--r--.  1 root root 1331 Nov 29  2016 CentOS-Sources.repo
-rw-r--r--.  1 root root 2893 Nov 29  2016 CentOS-Vault.repo
[root@test yum.repos.d]# 
[root@test yum.repos.d]# 
[root@test yum.repos.d]# mkdir /root/old_repo
[root@test yum.repos.d]# mv *.repo /root/old_repo/
[root@test yum.repos.d]# ls -la
total 12
drwxr-xr-x.  2 root root    6 Jul 30 11:19 .
drwxr-xr-x. 78 root root 8192 Jul 30 10:59 ..
[root@test yum.repos.d]#

5. Создаём файл с расширением .repo (iso.repo) vi iso.repo и указываем его параметры:

[offline_repo] 
#В media_id указываем значение, которое получили в 3 пункте
mediaid=1504618416.850667
#name должно совпадать с именем репозитория в квадратных скобках
name=offline_repo
#Указываем адрес до смонтированного каталога
baseurl=file:///mnt/iso/
#Указываем наш ключ
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#Параметр показывает что к этому репозиторию можно обращаться
enabled=1 
#Включить проверку ключа
gpgcheck=1

6. Запускаем процесс обновления: yum update

7. После успешного обновления проверяем текущую версию ОС:

[root@test yum.repos.d]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

8. Отключаем диск с образом, перезагружаем ОС, возвращаем на место старые репозитории, удаляем файл с оффлайн репозиторием:

[root@test ~]# umount /mnt/iso
[root@test ~]# reboot

[vagrant@test ~]$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@test ~]# rm /etc/yum.repos.d/iso.repo
rm: remove regular file ‘/etc/yum.repos.d/iso.repo’? y
[root@test ~]#

#После удаления файла с нашим репозиторием в каталоге должны остаться файлы с другими репозиториями. У меня они подтянулись с перезагрузкой
[root@test ~]# ls -l /etc/yum.repos.d/
total 28
-rw-r--r--. 1 root root 1664 Aug 30  2017 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Aug 30  2017 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Aug 30  2017 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Aug 30  2017 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Aug 30  2017 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Aug 30  2017 CentOS-Sources.repo
-rw-r--r--. 1 root root 3830 Aug 30  2017 CentOS-Vault.repo
[root@test ~]#

Если после перезагрузки файлы не вернулись обратно в каталог — просто перенестите их из каталога /root/old_repo следующей командой:

mv /root/old_repo/*.repo /etc/yum.repos.d/

Если просто ввести команду yum update, то ОС обновится просто до последней версии репозитория.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

%d такие блоггеры, как: