見出し画像

CentOS7+VirtualminをAlmaLinux8へマイグレ!

CentOS7+Virtualminで動作しているサーバーがいてるんです。
これをなんとかしなければってのが、前々からの喉元に刺さった小骨でした(^^;
モジュールにも、もうCentOS7環境だと更新できないのが出てきています。
かといって、新しいサーバー作って移転となるとそれはそれで大事です。
どうしたものかと思ってたらThe AlmaLinux Project のサブプロジェクトとして動いている「ELevate Project」に出会いました。

ELevate Projectって?

先にも書きましたようにThe AlmaLinux Project のサブプロジェクトとして動いていいます。だからといって、移行先がAlmaLinuxってわけでなく、Leappを使って、いくつかのディストリビューションに移行ができるようです。(AlmaLinux以外試してませんm(_ _)m)

テスト環境の構築

いきなり本番環境を使うわけには行きません。
そこで、ローカルでの開発環境であるProxmoxの上に、CentOS7+Virtualminの環境とVirtualmi上で仮想サーバーを作成しました。php-fpm環境です。
Virtualminのインストールはここでは関係ないので割愛します。

インストール開始!

1)移行前にインストールされているパッケージを最新バージョンへアップグレードし、再起動する。
# yum upgrade
といわれても、CentOS7のリポジトリはエラーになります(^^;
今回は/etc/yum.repos.d/CentOS-Base.repoのなかのbase_urlを変更しました。
mirrorlist.centos.org → vault.centos.org
再度、
# yum upgrade
# reboot
をしました。

【2024/09/10追記】
・Virtualminで実運用しているサーバーではまだ変更が必要でした。
epel.repo / CentOS-SCLo-scl-rh.repo / CentOS-SCLo-scl.repo / CentOS-Vault.repo
・ディレクトリの調整が必要でした。
7→7.9.2009
・環境変数が取得できない
$releaseverが7となったので、7.9.2009に書き換えました。

2)elevate-release-latest-el7 をインストールする。
# yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm


3)Leapp と AlmaLinux 向けの対応データをインストールする。
# yum install -y leapp-upgrade leapp-data-almalinux

4)アップグレード前にシステムの状態を確認する。
# leapp preupgrade

検査レポートは以下に生成されます。
レポートのパスは "/var/log/leapp/leapp-report.txt"
アンサーファイルは "/var/log/leapp/answerfile"

検査の結果は?

leapp-report.txtの内容の抜粋です。
Debug output written to /var/log/leapp/leapp-preupgrade.log

==========================================
                         REPORT OVERVIEW ==========================================

Upgrade has been inhibited due to the following problems:
1. Multiple devel kernels installed
2. Leapp detected loaded kernel drivers which have been removed in RHEL 8. Upgrade cannot proceed.
3. Missing required answers in the answer file

HIGH and MEDIUM severity reports:
1. Packages not signed by Red Hat found on the system
2. GRUB2 core will be automatically updated during the upgrade
3. Difference in Python versions and support in RHEL 8
4. chrony using default configuration
5. spamc no longer allows specifying the TLS version and no longer supports SSLv3
6. spamd no longer allows specifying the TLS version and no longer supports SSLv3
7. The type of the spamassassin systemd service has changed

Reports summary:
Errors: 0
Inhibitors: 3
HIGH severity reports: 3
MEDIUM severity reports: 4
LOW severity reports: 4
INFO severity reports: 2

Before continuing consult the full report:
A report has been generated at /var/log/leapp/leapp-report.json
A report has been generated at /var/log/leapp/leapp-report.txt

==========================================
                         END OF REPORT OVERVIEW ==========================================

Answerfile has been generated at /var/log/leapp/answerfile

ここではInhibitorsを対応します。

検査レポートの内容

レポートの抜粋です。
Risk Factor: high (inhibitor)
Title: Multiple devel kernels installed
Summary: DNF cannot produce a valid upgrade transaction when multiple kernel-devel packages are installed.
Remediation: [hint] Remove all but one kernel-devel packages before running Leapp again.
[command] yum -y remove kernel-devel-3.10.0-1160.71.1.el7
Key: 8ceea81afbbb1a329b7d82ca7212b21509e5b256
ーーーーーーーー
Risk Factor: high (inhibitor)
Title: Leapp detected loaded kernel drivers which have been removed in RHEL 8. Upgrade cannot proceed.
Summary: Support for the following RHEL 7 device drivers has been removed in RHEL 8:
- floppy
- pata_acpi
Key: f08a07da902958defa4f5c2699fae9ec2eb67c5b
ーーーーーーーー
Risk Factor: high (inhibitor)
Title: Missing required answers in the answer file
Summary: One or more sections in answerfile are missing user choices: remove_pam_pkcs11_module_check.confirm
For more information consult https://red.ht/leapp-dialogs.
Remediation: [hint] Please register user choices with leapp answer cli command or by manually editing the answerfile.
[command] leapp answer --section remove_pam_pkcs11_module_check.confirm=True
Key: d35f6c6b1b1fa6924ef442e3670d90fa92f0d54b

早速対応します。

まずは、具体的に記述されている内容を対処します。
・yum -y remove kernel-devel-3.10.0-1160.71.1.el7
・leapp answer --section remove_pam_pkcs11_module_check.confirm=True

さて、残りは、floppyとpata_acpiの各ドライバへの対応です。
コメントでは、RHEL 7からRHEL 8へのアップグレード中にサポートが削除されたカーネルドライバーがシステムに存在するため、アップグレードが進行できないことを示しています。具体的には、以下のドライバーを削除しろとなっています。
これにはハマりました。
バカ正直に削除しようとして、ブラックリストに入れたり、grubを変えたりして、再起動されてもローディングされないようにとしたのですが、どうやってもローディングされます。
ビルドインモジュールになってるのかとmodinfo floppyで調べたのですが、filenameが表示されたので、どうも違う。
なんなんだと。。。

ここで、再起動されなきゃいいんだと思いつき
modprobe -r floppy
modprobe -r pata_acpi
をしただけで対応しました。
※ドキュメントにも「sudo rmmod pata_acpi」とだけ、書いてありました

対応したら、先に勧めます。

# leapp upgrade
パッケージ関連の更新が始まります。
ここでも検査レポートが作成されます。
私のケースでは、以下のエラーが出ました。
RPM: warning: Generating 6 missing index(es), please wait...\nError: Transaction test error:
  file /usr/lib64/libzip.so.5 from install of libzip-1.5.1-2.module_el8.3.0+2010+7c76a223.x86_64 conflicts with file from package libzip5-1.10.1-1.el7.remi.x86_64
libzip-1.5.1-2.module_el8.3.0+2010+7c76a223.x86_64 のインストールからの /usr/lib64/libzip.so.5 は、パッケージ libzip5-1.10.1-1.el7.remi.x86_64 からのファイルとコンフリクトしるんで、el7のパッケージを削除しました。
# yum remove libzip5
# yum install libzip

再度、更新を行いました。
# leapp upgrade
今回は、無事に対応が必要な項目がなくなりましたんで、再起動しました。
# reboot

Virtualminの更新をします。

Virtualminに、無事ログインができました(^^)
で、パッケージの更新を行ったところ、以下のエラーが表示されました。Package wbm-virtual-server-7.20.1.gpl-1.noarch.rpm is not signed
Error: GPG check FAILED
対応方法:
# virtualmin setup-repos
Setting up Virtualmin software repositories ..
..done
# dnf clean all
このあと、パッケージ更新は完了できました。

あとがき。。。

テスト環境では、無事に完了できました。
次は、本番環境への対応です。
今は、サーバーのディストリビューションは、ubuntuを中心に行っています。
ようやく慣れてきたのに、またCentOS8のコマンドを覚えなきゃいけないのかと、ちょっとめげてます(^^;
何かありましたら、追記していきます。

【追記 2024/09/16】
DNF execution failed with non zero exit code.ってメッセージがerrorで出ます。
これってどうも、パッケージが更新できなかったときに出るようなんです。
その時なんですが、ログファイル(/var/log/leapp/leapp-upgrade.log)の方を開いて"Transaction test error:"となっているところを探してください。

【追記 2024/09/17】
leapp作業に入る前にCentOS7のモジュールを最新版にしておきます。
私はbase_urlを修正して対応をしています。
この際なんですが、webmin関連がCentOS7に対応したリポジトリと出会うことができない関係で更新ができないでいます。
そこで、ここはすっぱりと更新を諦めて、マイグレ後に対応をするようにしています。
具体的にはVirtualminのモジュールの更新一覧からwebmin関連のチェックを外し更新をしてしまっています。


いいなと思ったら応援しよう!