Обновление деривативов RedHat

Обновление деривативов RedHat

2024-09-12 · 8 мин. для прочтения
blog computer-science

Обновление деривативов RedHat.

Содержание

1 Общая информация

1.1 Проект ELevate

  • Сайт: https://almalinux.org/elevate/
  • Документация: https://wiki.almalinux.org/elevate/
  • Поддерживает следующие пути обновления и миграции:
    • обновление с CentOS 6 до CentOS 7;
    • обновление с CentOS 7 до AlmaLinux 8, CentOS Stream 8, Euro Linux 8, Oracle Linux 8 или Rocky Linux 8;
    • обновление Scientific Linux 7 до AlmaLinux 8;
    • обновление с 8.x до 9.x в том же дистрибутиве;
    • миграция на Oracle Linux 9 доступна с утилитой Oracle Leapp.

1.1.1 Scientific Linux 7

1.2 Предварительные действия

  • Определите версию операционной системы:
    cat /etc/os-release
    

2 7 → 8

2.1 Обновление Centos 7 до Rocky 8

2.1.1 Общая информация

  • Будем использовать проект Elevate.

2.1.2 Подготовка к обновлению

  • Возможно, придётся заменить репозитории: CentOS 8. Изменение адресов репозиториев

  • Удалите внешние репозитории:

    sudo yum -y remove epel-release
    sudo yum -y remove rpmforge-release
    sudo yum -y remove elrepo-release
    
  • Обновите систему:

    sudo yum -y upgrade
    
  • Перегрузите машину:

    sudo reboot
    
  • Установите пакет elevate-release:

    sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
    
  • Установите утилиты для миграции:

    sudo yum install -y leapp-upgrade leapp-data-rocky
    
    • Другие варианты установки: centos, almalinux, eurolinux, oraclelinux:
      sudo yum install -y leapp-upgrade leapp-data-almalinux
      
  • Лучше установить SELinux в permissive в файле /etc/selinux/config.

  • Перегрузите компьютер.

  • Восстановите метки SELinux:

    sudo restorecon -vR /
    
  • Удалите неподдерживаемые модули ядра:

    sudo rmmod pata_acpi
    sudo rmmod floppy
    
  • Проверьте возможность обновления:

    sudo leapp preupgrade
    
  • Отчёт находится в файле /var/log/leapp/leapp-report.txt.

  • Там же находятся и рекомендации по устранению проблем.

  • Тут же будет список неподписанных пакетов, которые, скорее всего, вам придётся установить заново после обновления.

  • Также создаётся файл /var/log/leapp/answerfile, где нужно подтвердить действия.

  • Подтвердите удаление модуля PAM PKCS#11:

    sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True
    
  • После исправления запустите утилиту опять. И так до устранения основных недостатков.

2.1.3 Обновление

  • После подготовки сделайте обновление:
    sudo leapp upgrade
    
  • После скачивания необходимых пакетов будет предложено перегрузить машину.
  • После перезагрузки начнётся процесс обновления.

2.1.4 После обновления

  • Удалите старые пакеты от Centos7:

    rpm -qa | grep -E 'el7[.-]' | xargs rpm -e
    rpm -qa | grep -E 'sl7[.-]' | xargs rpm -e
    
  • Выполните последующие действия либо обновляйте до следующей версии.

  • Установите внешние репозитории:

    dnf install epel-release
    
  • Обновите необновлённые пакеты:

    dnf -y update
    
  • Установите удалённые пакеты, например:

    dnf install fail2ban
    systemctl enable --now fail2ban.service
    
  • Если используете LVM, обновите метаданные:

    sudo vgck --updatemetadata <volume_group_name>
    
    • Можно в виде скрипта:
      for i in $(vgdisplay -A -c 2>/dev/null | cut -f1 -d: | xargs ); do sudo vgck --updatemetadata ${i}; done
      
  • Установите SELinux в enforcing в файле /etc/selinux/config.

3 8 → 9

3.1 Обновление Oracle 8 до Oracle 9

3.1.1 Общая информация

3.1.2 Подготовка к обновлению

  • Обновите систему:
    sudo dnf update
    
  • Установите утилиту Leapp:
    sudo dnf install leapp-upgrade --enablerepo=ol8_appstream,ol8_baseos_latest
    
  • Лучше установить SELinux в permissive в файле /etc/selinux/config.
  • Перегрузите компьютер.
  • Восстановите метки SELinux:
    sudo restorecon -vR /
    
  • Удалите внешние репозитории:
    dnf remove epel-release
    
  • Проверьте возможность обновления:
    sudo leapp preupgrade --oraclelinux
    
  • Отчёт находится в файле /var/log/leapp/leapp-report.txt.
  • Там же находятся и рекомендации по устранению проблем.
  • Тут же будет список неподписанных пакетов, которые, скорее всего, вам придётся установить заново после обновления.
  • Также создаётся файл /var/log/leapp/answerfile, где нужно подтвердить действия.
  • После исправления запустите утилиту опять. И так до устранения основных недостатков.

3.1.3 Обновление

  • После подготовки сделайте обновление:
    sudo leapp upgrade --oraclelinux
    
  • После скачивания необходимых пакетов будет предложено перегрузить машину.
  • После перезагрузки начнётся процесс обновления.

3.1.4 После обновления

  • Установите внешние репозитории:

    dnf install epel-release
    
  • Обновите необновлённые пакеты:

    dnf -y update
    
  • Установите удалённые пакеты, например:

    dnf install fail2ban
    systemctl enable --now fail2ban.service
    
    • Установите SELinux в enforcing в файле /etc/selinux/config.
    • Установите ядро Unbreakable Enterprise Kernel:
      dnf -y install kernel-uek kernel-uek-modules kernel-uek-modules-extra
      

3.2 Обновление Rocky 8 до Rocky 9

3.2.1 Общая информация

  • Будем использовать проект Elevate.

3.2.2 Подготовка к обновлению

  • Возможно, придётся заменить репозитории: CentOS 8. Изменение адресов репозиториев

  • Обновите систему:

    sudo dnf -y upgrade
    
  • Перегрузите машину:

    sudo reboot
    
  • Установите пакет elevate-release:

    sudo dnf install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
    
  • Отменить исключение пакетов, выполненное при предыдущем обновлении:

    sudo dnf config-manager --save --setopt exclude=''
    
  • Установите утилиты для миграции:

    sudo dnf install -y leapp-upgrade leapp-data-rocky
    
    • Другие варианты установки: centos, almalinux:
      sudo yum install -y leapp-upgrade leapp-data-almalinux
      
  • Лучше установить SELinux в permissive в файле /etc/selinux/config.

  • Перегрузите компьютер.

  • Восстановите метки SELinux:

    sudo restorecon -vR /
    
  • Удалите внешние репозитории:

    dnf remove epel-release
    
  • Проверьте возможность обновления:

    sudo leapp preupgrade
    
  • Отчёт находится в файле /var/log/leapp/leapp-report.txt.

  • Там же находятся и рекомендации по устранению проблем.

  • Тут же будет список неподписанных пакетов, которые, скорее всего, вам придётся установить заново после обновления.

  • Также создаётся файл /var/log/leapp/answerfile, где нужно подтвердить действия.

  • Общие исправления для Rocky Linux 8.

    • Изменение конфигурации firewalld:
      sudo sed -i "s/^AllowZoneDrifting=.*/AllowZoneDrifting=no/" /etc/firewalld/firewalld.conf
      
    • Удаление файла конфигурации сети для неподдерживаемого типа сетевого устройства:
      rm /etc/sysconfig/network-scripts/ifcfg-[device_name]
      
    • Обход требования проверки устройства VDO в файле ответов:
      sudo leapp answer --section check_vdo.no_vdo_devices=True
      
    • Удалите неподдерживаемые модули ядра:
      sudo rmmod ip_set
      
  • После исправления запустите утилиту опять. И так до устранения основных недостатков.

3.2.3 Обновление

  • Обычно пакеты make-devel и rocky-logos приводят к сбою обновления. Удалите их:
    dnf -y remove make-devel
    dnf -y remove rocky-logos
    
  • После подготовки сделайте обновление:
    sudo leapp upgrade
    
  • После скачивания необходимых пакетов будет предложено перегрузить машину.
  • После перезагрузки начнётся процесс обновления.

3.2.4 После обновления

  • Удалите старые пакеты от Rocky Linux 8:

    sudo rpm -qa | grep -E 'el8[.-]' | xargs rpm -e
    
  • Выполните последующие действия либо обновляйте до следующей версии.

  • Установите внешние репозитории:

    sudo dnf config-manager --set-enabled crb
    sudo dnf -y install epel-release
    sudo /usr/bin/crb enable
    
  • Обновите необновлённые пакеты:

    sudo dnf -y update
    
  • Установите удалённые пакеты, например:

    sudo dnf -y install fail2ban
    sudo systemctl enable --now fail2ban.service
    
  • Если используете LVM, обновите метаданные:

    sudo vgck --updatemetadata <volume_group_name>
    
    • Можно в виде скрипта:
      for i in $(vgdisplay -A -c 2>/dev/null | cut -f1 -d: | xargs ); do sudo vgck --updatemetadata ${i}; done
      
  • Установите SELinux в enforcing в файле /etc/selinux/config.

4 9 → 10

4.1 Обновление Alma 9 до Alma 10

4.1.1 Общая информация

  • Будем использовать проект Elevate.

4.1.2 Подготовка к обновлению

  1. Проверка готовности

    • Обновите систему:
      sudo dnf -y upgrade
      
    • Перегрузите машину:
      sudo reboot
      
    • Проверка архитектуры процессора (CPU).
      • AlmaLinux 10 требует поддержки архитектуры x86_64-v3.
      • Выполните команду, чтобы убедиться, что ваш процессор совместим.
        /usr/lib64/ld-linux-x86-64.so.2 --help | grep x86-64-v3
        
      • Если в выводе есть x86-64-v3 (supported, searched), то система готова к обновлению.
    • Убедитесь, что на корневом разделе (/) есть не менее 5 ГБ свободного места для загрузки и распаковки новых пакетов.
  1. Установка инструментов

    • Установите пакет elevate-release:
      sudo dnf install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
      
    • Отменить исключение пакетов, выполненное при предыдущем обновлении:
      sudo dnf config-manager --save --setopt exclude=''
      
    • Установите утилиты для миграции:
      sudo dnf install -y leapp-upgrade leapp-data-almalinux
      
    • Лучше установить SELinux в permissive в файле /etc/selinux/config.
    • Перегрузите компьютер.
    • Восстановите метки SELinux:
      sudo restorecon -vR /
      
    • Удалите внешние репозитории:
      dnf remove epel-release
      
  1. Проверка готовности (Preupgrade)

    • Проверьте возможность обновления:
      sudo leapp preupgrade
      
    • Отчёт находится в файле /var/log/leapp/leapp-report.txt.
    • Там же находятся и рекомендации по устранению проблем.
    • Тут же будет список неподписанных пакетов, которые, скорее всего, вам придётся установить заново после обновления.
    • Также создаётся файл /var/log/leapp/answerfile, где нужно подтвердить действия.
      • Ответить на них можно командой
        sudo leapp answer --section <имя_секции>.confirm=True
        
    • Нужно вносить исправления до тех пор, пока повторный запуск sudo leapp preupgrade не покажет 0 Inhibitors.
  1. Наиболее частые проблемы (ингибиторы)

    • Устаревшая сетевая конфигурация (Legacy network configuration).

      • Leapp сообщит, что обнаружены файлы в /etc/sysconfig/network-scripts/.
      • Нужно мигрировать конфигурацию в формат, поддерживаемый NetworkManager.
        sudo nmcli con migrate
        
      • Сами скрипты нужно удалить.
    • Модуль ядра qla4xxx.

      • Может вызывать конфликт.
      • Нужно выгрузить модуль.
        sudo rmmod qla4xxx
        
    • Репозиторий Ceph

      • Файл конфигурации этого репозитория может мешать обновлению.
      • Нужно удалить его.
        sudo rm /etc/yum.repos.d/ceph.repo
        

4.1.3 Обновление

  • Обычно пакеты make-devel и rocky-logos приводят к сбою обновления. Удалите их:
    dnf -y remove make-devel
    dnf -y remove rocky-logos
    
  • После подготовки сделайте обновление:
    sudo leapp upgrade
    
  • После скачивания необходимых пакетов будет предложено перегрузить машину.
  • Выполните перезагрузку:
    sudo reboot
    
  • После перезагрузки в меню GRUB автоматически будет выбран пункт ELevate-Upgrade-Initramfs (или аналогичный).
  • Не вмешивайтесь в процесс. Начнется финальная фаза обновления, в ходе которой будут заменены все пакеты.
  • Этот этап может занять от 10 до 30 минут и более, в зависимости от производительности сервера.
  • На экране будет отображаться прогресс.
  • По окончании этого процесса сервер снова перезагрузится автоматически и загрузится уже с ядром AlmaLinux 10.

4.1.4 После обновления

  • Проверьте версию ОС после входа в систему:

    cat /etc/almalinux-release
    # Ожидаемый вывод: AlmaLinux 10.X
    
    uname -r
    # Должно отображаться ядро версии 5.14.0 или новее
    
  • Удалите оставшиеся пакеты от AlmaLinux 9.

    # Посмотреть список пакетов с меткой el9
    rpm -qa | grep el9
    
    # Удалить их все одной командой (будьте внимательны!)
    sudo dnf remove $(rpm -qa | grep el9)
    
  • Верните SELinux в enforcing mode.

  • Отредактируйте файл конфигурации:

    sudo vi /etc/sysconfig/selinux
    
  • Установите параметр SELINUX=enforcing, затем перезагрузите сервер для применения настроек.

    sudo reboot
    
  • Установите внешние репозитории:

    sudo dnf config-manager --set-enabled crb
    sudo dnf -y install epel-release
    sudo /usr/bin/crb enable
    sudo dnf -y install almalinux-release-devel
    
  • Обновите необновлённые пакеты:

    sudo dnf -y update
    
  • Установите удалённые пакеты, например:

    sudo dnf -y install fail2ban
    sudo systemctl enable --now fail2ban.service
    
  • Если используете LVM, обновите метаданные:

    sudo vgck --updatemetadata <volume_group_name>
    
    • Можно в виде скрипта:
      for i in $(vgdisplay -A -c 2>/dev/null | cut -f1 -d: | xargs ); do sudo vgck --updatemetadata ${i}; done
      
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Работаю профессором на кафедре теории вероятностей и кибербезопасности Российского университета дружбы народов им. Патриса Лумумбы. Научные интересы относятся к области теоретической физики и математического моделирования.