CentOS8からAlmaLinux8に移行する

CentOS8のサポート終了から早くも半年近く。先日、CentOS8のテスト環境をRockyLinuxに移行してみましたが、CentOS8のままのテスト環境はもうひとつあります。

同じくRockyLinuxに移行してしまってもいいのですが、せっかくなので、同じくRHEL/CentOSと完全互換を謳うAlmaLinuxに移行してみることにしました。

そう、今回のAlmaLinuxへの移行は、「せっかくなので」という安易な気持ちにより行われたのである。(サンホラの大塚明夫氏風に)

移行先候補

CentOS同様、RedHat Enterprise Linux(以降RHEL)の流れをくむ代表的なディストリビューションと言えば、

  • Oracle Linux
  • CentOS Stream
  • Alma Linux
  • Rocky Linux

あたりでしょうか。

それぞれの候補については、RockyLinuxに移行したときの記事をご参照ください。

CentOS8のサポート終了から半年近く経ってしまいましたが、テスト環境として使用しているため、特に気にしていませんでした。 が、いくらテスト環境とは言っても...

今回は、バイナリレベルで完全互換なクローンだと謳っている、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起動

移行後の環境は、ディストリビューションが「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台のテスト環境も安心して使えるようになりました。お疲れ様でした!

初稿:2022年5月27日

この記事をシェア

アカウントをフォロー