CentOS8のサポート終了から早くも半年近く。先日、CentOS8のテスト環境をRockyLinuxに移行してみましたが、CentOS8のままのテスト環境はもうひとつあります。
同じくRockyLinuxに移行してしまってもいいのですが、せっかくなので、同じくRHEL/CentOSと完全互換を謳うAlmaLinuxに移行してみることにしました。
そう、今回のAlmaLinuxへの移行は、「せっかくなので」という安易な気持ちにより行われたのである。(サンホラの大塚明夫氏風に)
移行先候補
CentOS同様、RedHat Enterprise Linux(以降RHEL)の流れをくむ代表的なディストリビューションと言えば、
- Oracle Linux
- CentOS Stream
- Alma Linux
- Rocky Linux
あたりでしょうか。
それぞれの候補については、RockyLinuxに移行したときの記事をご参照ください。
今回は、バイナリレベルで完全互換なクローンだと謳っている、AlmaLinuxへ移行してみたいと思います。
Alma Linuxへの移行手順
移行手順は、RockyLinuxと同じく、公式サイトのマイグレーション手順に沿って進めればOKです!…というだけでは何なので、改めて移行手順をメモメモしていきます。
今回移行する環境ですが、ディストリビューションは「CentOS Linux release 8.5.2111」で、OSのリリース番号は「4.18.0-193.el8.x86_64」です。
マイグレーションツールの準備
マイグレーションツールの準備として、まず最初にCentOS8を最新の状態に更新しておきます。
ただし、2022年現在、CentOS8のリポジトリは既に使用できないため、以下のコマンドで保管用?リポジトリにつながるように書き換えを行う必要があります。
# sed -i 's|^mirrorlist=|#mirrorlist=|' /etc/yum.repos.d/CentOS-*
# sed -i 's|^#baseurl=http://mirror.centos.org/|baseurl=http://vault.centos.org/|' /etc/yum.repos.d/CentOS-*
この書き換えはRockyLinuxのときと同じ方法ですが、AlmaLinuxのサイトでは、下記のような書き換え方法が掲載されていました。どちらの方法でもいいかと思いますが、自分は上記方法で書き換えました。
# sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[baseos\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/BaseOS/$basearch/os' /etc/yum.repos.d/CentOS-Linux-BaseOS.repo
# sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[appstream\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/AppStream/$basearch/os' /etc/yum.repos.d/CentOS-Linux-AppStream.repo
# sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[cr\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/ContinuousRelease/$basearch/os' /etc/yum.repos.d/CentOS-Linux-ContinuousRelease.repo
# sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[devel\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/Devel/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Devel.repo
# sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[extras\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/extras/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Extras.repo
# sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[fasttrack\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/fasttrack/$basearch/os' /etc/yum.repos.d/CentOS-Linux-FastTrack.repo
# sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[ha\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/HighAvailability/$basearch/os' /etc/yum.repos.d/CentOS-Linux-HighAvailability.repo
# sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[plus\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/centosplus/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Plus.repo
# sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[powertools\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/PowerTools/$basearch/os' /etc/yum.repos.d/CentOS-Linux-PowerTools.repo
どちらかの方法で書き換えを行ったら、全パッケージのアップデートを行います。
# dnf -y update
AlmaLinuxのサイトでは、この後再起動するよう書かれていますので、念のため再起動しておきましょう。
# reboot
もしくは
# shutdown -r now
再起動後、必要に応じてシステムのバックアップを取っておきましょう。何かあったときのためです。
その後、マイグレーションツールをダウンロードします。
# curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
マイグレーションツールの実行
ダウンロードしたマイグレーションツールを実行します。
# bash almalinux-deploy.sh
処理が始まったら、後は何もやることはありません。終わるのをひたすら待つのみです。
今回作業した環境では、約5分ほどで処理が完了しました。以下のように表示されますので、システムを再起動します。
# reboot
もしくは
# shutdown -r now
一応、3700行ちょっとあるマイグレーション中のログを以下に貼り付けておきますので、興味のある方は参考までにどうぞ(笑)
AlmaLinuxの動作確認
マイグレーション後の再起動には少し時間がかかるようですが、無事にAlmaLinuxが起動しました。
移行後の環境は、ディストリビューションが「AlmaLinux release 8.6」で、OSのリリース番号は「4.18.0-372.9.1.el8.x86_64」になりました。
Rocky Linuxへのマイグレーションから数日後の話なので、ディストリビューションのバージョン番号も、OSのリリース番号も、Rocky Linuxと全く同じでした。
リポジトリ情報も、CentOSのものはファイル名の後ろに.rpmsaveと付与されてバックアップされ、almalinux-で始まる新しいものがインストールされています。
RockyLinuxと同じく、RHEL/CentOSの100%互換ディストリビューションなので、AlmaLinuxになったからと言って、特に大きな変化は感じられず。
dnfコマンドでインストールしたツールしか使っていないような環境であれば、それこそ「ディストリビューションの名前が変わっただけ」としか感じないかもしれませんね。
さいごに
ということで、CentOS8.5から、AlmaLinux8.6への移行(マイグレーション)手順でした。
「curlコマンドでツールをダウンロード」→「ツールを実行」というたった2ステップだけで移行が完了してしまうのは、正直驚きです。
RockyもAlmaも、マイグレーションツールという非常に簡単に移行できるツールを用意してくれているおかげですね。
これでもう1台のテスト環境も安心して使えるようになりました。お疲れ様でした!
コメント