Techfirm Cloud Architect Blog

テックファーム株式会社クラウドインフラグループのブログ

OSアップグレードツール「ELevate」を使ってみる

はじめに

先日、OSアップグレードツール「ELevate」がバージョンアップしてサードパーティのリポジトリが強化された記事を見ました。

実際に、EPELリポジトリからパッケージをインストールして、OSアップグレードを行うとどうなるか検証してみたいと思います。

使ってみる

検証環境の準備

AWSのCentOS 7イメージを使用します。

  • イメージID: ami-0fd48c6031f8700df

基本設定

最低限の設定のみ実施します。

sudo localectl set-locale LANG=ja_JP.UTF-8
sudo localectl set-keymap jp
sudo localectl set-x11-keymap jp
sudo timedatectl set-timezone Asia/Tokyo
sudo hostnamectl set-hostname C7test20240903

EPELパッケージ導入

執筆時点でアーカイブ化されているため、専用のサイトからパッケージを導入します。

sudo rpm --import https://archives.fedoraproject.org/pub/archive/epel/RPM-GPG-KEY-EPEL
sudo yum install https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm

エラー回避のため最低限のリポジトリのみ設定して、パッケージ例としてhtopをインストールします。

sudo yum install htop --enablerepo=epel --disablerepo=base,extras,updates

作業前の状態を確認します。

rpm -qi htop
Name        : htop
Version     : 2.2.0
Release     : 3.el7
Architecture: x86_64
Install Date: 2024年09月04日 16時28分12秒
Group       : Unspecified
Size        : 222730
License     : GPLv2+
Signature   : RSA/SHA256, 2019年01月17日 11時50分37秒, Key ID 6a2faea2352c64e5
Source RPM  : htop-2.2.0-3.el7.src.rpm
Build Date  : 2019年01月17日 11時46分51秒
Build Host  : buildvm-24.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://hisham.hm/htop/
Bug URL     : https://bugz.fedoraproject.org/htop
Summary     : Interactive process viewer
Description :
htop is an interactive text-mode process viewer for Linux, similar to
top(1).

AlmaLinux 8へのアップグレード

公式サイトの手順通りアップグレードします。

最新パッケージへの更新

sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://el7.repo.almalinux.org/centos/CentOS-Base.repo
sudo yum upgrade -y
sudo reboot

elevateパッケージ等必要パッケージをインストール

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-almalinux

アップグレード前のチェック実施

sudo leapp preupgrade

レポートファイル/var/log/leapp/leapp-report.txtを参照しInhibitorsとなっている項目を解消します。
今回は以下のコマンドで対応します。

echo PermitRootLogin no | sudo tee -a /etc/ssh/sshd_config
sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True

再度leapp preupgradeコマンドでチェックを行い、Inhibitorsとなっている項目が記録されないことを確認します。
念のため他の項目も目を通しましょう。

アップグレード実施

アップグレードコマンドを実施します。
A reboot is required to continue. Please reboot your system.
のメッセージを確認し再起動します。

sudo leapp upgrade
sudo reboot

アップグレード後作業

  • yum.confファイルの除外パッケージ設定を削除する
sudo cat /etc/dnf/dnf.conf
sudo dnf config-manager --save --setopt exclude=''
sudo cat /etc/dnf/dnf.conf
  • CentOS 7由来のパッケージを削除する
削除対象パッケージの確認
$ rpm -qa | grep el7|sort
elevate-release-1.0-2.el7.noarch
kernel-3.10.0-1160.119.1.el7.x86_64
kernel-3.10.0-1160.76.1.el7.x86_64
leapp-0.16.0-2.el7.noarch
leapp-data-almalinux-0.2-15.el7.20230823.noarch
leapp-upgrade-el7toel8-0.19.0-7.1.el7.noarch
python2-leapp-0.16.0-2.el7.noarch

削除
sudo /usr/bin/dnf remove \
elevate-release-1.0-2.el7.noarch \
kernel-3.10.0-1160.119.1.el7.x86_64 \
kernel-3.10.0-1160.76.1.el7.x86_64 \
leapp-0.16.0-2.el7.noarch \
leapp-data-almalinux-0.2-15.el7.20230823.noarch \
leapp-upgrade-el7toel8-0.19.0-7.1.el7.noarch \
python2-leapp-0.16.0-2.el7.noarch
  • アップグレードで使ったパッケージを削除する
削除対象パッケージの確認
$ rpm -qa | grep leapp
leapp-repository-deps-el8-5.0.8-100.202301271308Z.f7c82a24.master.el8.noarch
leapp-deps-el8-5.0.8-100.202301271308Z.f7c82a24.master.el8.noarch

削除
sudo /usr/bin/dnf remove \
leapp-repository-deps-el8-5.0.8-100.202301271308Z.f7c82a24.master.el8.noarch \
leapp-deps-el8-5.0.8-100.202301271308Z.f7c82a24.master.el8.noarch
  • /root/tmp_leapp_py3ディレクトリがあれば削除する
sudo ls -ld /root/tmp_leapp_py3
sudo rm -fr /root/tmp_leapp_py3
  • クリーンアップ
sudo dnf clean all

ここまででAlmaLinux 8へのアップグレード完了です。

AlmaLinux 9へのアップグレード

elevateパッケージ等必要パッケージをインストール

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-almalinux

アップグレード前のチェック実施

sudo leapp preupgrade

レポートファイル/var/log/leapp/leapp-report.txtを参照しInhibitorsとなっている項目があれば解消します。

アップグレード実施

アップグレードコマンドを実行します。
A reboot is required to continue. Please reboot your system.
のメッセージを確認し再起動します。

sudo leapp upgrade
sudo reboot

アップグレード後作業

  • yum.confファイルの除外パッケージ設定を削除する
sudo cat /etc/dnf/dnf.conf
sudo dnf config-manager --save --setopt exclude=''
sudo cat /etc/dnf/dnf.conf
  • AlmaLinux 8から残ったパッケージを削除する
削除対象パッケージの確認
$ rpm -qa | grep el8|sort
elevate-release-1.0-2.el8.noarch
kernel-4.18.0-553.16.1.el8_10.x86_64
kernel-core-4.18.0-553.16.1.el8_10.x86_64
kernel-modules-4.18.0-553.16.1.el8_10.x86_64
kernel-modules-extra-4.18.0-553.16.1.el8_10.x86_64
kernel-workaround-0.1-1.el8.noarch
leapp-0.16.0-2.el8.noarch
leapp-data-almalinux-0.2-15.el8.20230823.noarch
leapp-upgrade-el8toel9-0.19.0-7.1.el8.noarch
python3-leapp-0.16.0-2.el8.noarch

削除
sudo /usr/bin/dnf remove \
elevate-release-1.0-2.el8.noarch \
kernel-4.18.0-553.16.1.el8_10.x86_64 \
kernel-core-4.18.0-553.16.1.el8_10.x86_64 \
kernel-modules-4.18.0-553.16.1.el8_10.x86_64 \
kernel-modules-extra-4.18.0-553.16.1.el8_10.x86_64 \
kernel-workaround-0.1-1.el8.noarch \
leapp-0.16.0-2.el8.noarch \
leapp-data-almalinux-0.2-15.el8.20230823.noarch \
leapp-upgrade-el8toel9-0.19.0-7.1.el8.noarch \
python3-leapp-0.16.0-2.el8.noarch
  • /root/tmp_leapp_py3ディレクトリがあれば削除する
sudo ls -ld /root/tmp_leapp_py3
sudo rm -fr /root/tmp_leapp_py3
  • クリーンアップ
sudo dnf update --allowerasing

OSバージョンアップの確認

バージョンが9系に上がっていることを確認します。

cat /etc/redhat-release
AlmaLinux release 9.3 (Shamrock Pampas Cat)

作業後のhtopパッケージの確認

作業後の状態を確認します。

rpm -qi htop
Name        : htop
Version     : 3.3.0
Release     : 1.el9
Architecture: x86_64
Install Date: 2024年09月04日 17時26分58秒
Group       : Unspecified
Size        : 487469
License     : GPLv2+
Signature   : RSA/SHA256, 2024年01月16日 00時01分55秒, Key ID 8a3872bf3228467c
Source RPM  : htop-3.3.0-1.el9.src.rpm
Build Date  : 2024年01月15日 23時59分20秒
Build Host  : buildhw-x86-08.iad2.fedoraproject.org
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://hisham.hm/htop/
Bug URL     : https://bugz.fedoraproject.org/htop
Summary     : Interactive process viewer
Description :
htop is an interactive text-mode process viewer for Linux, similar to
top(1).

無事最新パッケージに更新されたことが確認できました。

その他

vi利用時のメッセージ

AlmaLinux 9へのアップグレード後、vi利用時に以下のメッセージが表示されました。

Error detected while processing /etc/virc:
line   40:
E319: Sorry, the command is not available in this version: let skip_defaults_vim=1
Press ENTER or type command to continue

let skip_defaults_vim=1 部分が有効ではないとのことなのでコメントアウト等で対応しましょう。

sudo sed -i.bak 's/^let skip_defaults_vim=1/"let skip_defaults_vim=1/' /etc/virc

SELinux

アップグレード時にpermissiveモードに設定されるので、必要に応じてenforcingモードに戻します。

sudo sed -i.bak s/^SELINUX=permissive/SELINUX=enforcing/ /etc/selinux/config
sudo grubby --update-kernel ALL --remove-args selinux
sudo reboot

確認

sudo sestatus
作業前
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

作業後
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

あとがき

サードパーティのリポジトリ利用が原因で移行できない環境に対し、一度アップグレード可能か試す良い機会かと思います。