CentOS 8、CentOS Stream 8をCentOS Stream 9を利用したい人向けです。Azure、AWSでの環境で検証を行っています。AzureでもCentOS Stream 9のイメージはマーケットプレイスに一応ありますが、よくわからないイメージです。課金もされるようなイメージもあるので要注意です。
AzureではCentOSのイメージは基本的に Rogue Wave Software (formerly OpenLogic) を利用するようにしています。
ただし、CentOS 8までしか公開していません。Streamでもありません。これをCentOS Stream 9にアップグレードして利用します。
手順はCentOS 8 → CentOS Stream 8 → CentOS Stream 9 にアップグレードしていきます。
Azure のCentOS 8 → CentOS Stream 8 へのアップグレードは前回紹介も参考にしてください。
-
AzureのCentOS 8をCentOS Stream 8 に変更してみる - 技術的な何か。
はじめに AzureでもCentOSを利用しているとは多々います。そこで、公開されているCentOS8のイメージを Stream 8 に変更する方法を紹介します。 元のCentOSはRogueのCen
level69.net
CentOS Stream 8 → CentOS Stream 9 にアップグレードを行っていきたいともいます。
作業を行う前には必ずバックアップをとってからアップグレードを行ってください。
またアップグレードによる正常動作を保証することはできません。動作については各自行ってください。
アップグレード
CentOS Stream 8 → CentOS Stream 9 へのアップグレードは下記を参考に行っています。
-
How to upgrade to CentOS Stream 9 from CentOS Stream 8
This article will show how to upgrade to CentOS Stream 9 from a minimal installation of CentOS Strea ...
ahelpme.com
CentOS 8 → CentOS Stream 8 → CentOS Stream 9 の手順です。
CentOS 8 → CentOS Stream 8
アップグレードは以下のコマンドで完了します。
dnf update -y dnf swap centos-linux-repos centos-stream-repos dnf distro-sync reboot
CentOS Stream 8 → CentOS Stream 9
最新のパッケージにアップデートし不要なパッケージをクリーンアップします。
dnf update -y dnf repoquery --unneeded dnf repoquery --extras
表示されたパッケージを削除します。例としてNetworkManager-initscripts-updown
dnf remove -y NetworkManager-initscripts-updown-1:1.40.2-1.el8.noarch
CentOS Stream 9のレポジトリをインストールします。
dnf install -y http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-stream-repos-9.0-18.el9.noarch.rpm http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-stream-release-9.0-18.el9.noarch.rpm http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-gpg-keys-9.0-18.el9.noarch.rpm
アップグレードします。
dnf -y --releasever=9-stream --allowerasing --setopt=deltarpm=false distro-sync
RPMのデータベースを再構築します。
rpmdb --rebuilddb
dnfのキャッシュを削除します。
dnf clean packages
アップデートします。
dnf update -y
アップデートするときにOpenLogicのレポジトリが404になっていることがわかります。参照しないように名前を変更します。削除しても問題ないです。
mv /etc/yum.repos.d/OpenLogic.repo /etc/yum.repos.d/OpenLogic.repo.rpmsave mv /etc/yum.repos.d/OpenLogicCentOS.repo /etc/yum.repos.d/OpenLogicCentOS.repo.rpmsave
アップデートします。エラーを出ないことを確認します。
dnf update -y
最小インストールとコアをgroupupdate しリブートします。
dnf -y groupupdate "Core" "Minimal Install" reboot
リブートは5分程度かかります。起動しない場合はシリアルコンソールに接続して確認しましょう。
古いKernelを削除します。
rpm -q kernel-core
表示されたel8のKernelを削除します。
dnf remove -y kernel-core-4.18.0-348.7.1.el8_5.x86_64 kernel-core-4.18.0-408.el8.x86_64
subscription-managerは関係ないので削除します。
dnf remove -y subscription-manager
ここで下記のようなものが表示されていると思います。
Problem: conflicting requests - nothing provides module(platform:el8) needed by module python36:3.6:8050020211109193439:982725ab.x86_64
これを解消するためにはdnfモジュールをリセットします。
dnf module reset -y python36
アップデートして確認すると表示が消えたことがわかります。
dnf update
他に、再起動が遅い問題があります。これを解消するためにはNetworkManager-wait-online.service を停止する必要があります。
systemctl disable NetworkManager-wait-online.service
以上ですべての作業は完了です。
リリースバージョン、カーネルがアップグレードされていることも確認でいます。
cat /etc/redhat-release CentOS Stream release 9 uname -a Linux centos 5.14.0-183.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Oct 31 09:18:51 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
まとめ
CentOS 8を CentOS Stream 9にアップグレードする方法を紹介しました。これはAzureに限らずやることは一緒です。どうしても、延命したいんだなどの方は試してみてはいかがでしょうか。ただし、インプレースアップグレードは既存の環境に致命的な問題が行る場合もあるので必ずバックアップを取ってから行いましょう。