はじめに
先日のメモ「またまた地味なサイト・リニューアル」では、CentOS 8からUbuntu Linux 22.04 LTSへ移行したという事柄について説明をしました。今回は、その際に検討して選択しなかった、CentOS 8からCentOS 8互換の他のディストリビューションへの移行を実験的にしてみたということについて書いてみたいと思います。
移行先はサイバートラストのMIRACLE LINUX 8
タイトルに書いているので、すでに見当はついているかとは思いますが実験移行先はサイバートラストのMIRACLE LINUX 8です。同社のサービスは私も仕事で使用しており、CentOS 8からの移行先としては最も高く信頼できるのではないかと考えていました。もしもCentOS 8互換ディストリビューションにとどまるという選択をするのであれば、これを選択していたであろうという思われるディストリビューションです。
オプションで有償サポート・メニューを選択できるところもポイントが高いです。
移行元のCentOS 8環境
今回の移行元CentOS 8環境は、当サイトのUbuntu Linux 22.04 LTSへの移行前環境です。つまり、今回の移行作業を行うまで本番環境だったところです。これから解約してしまいますので、その前に気になっているMIRACLE LINUX 8への移行作業を実際にしてみようということでもあります。要は、もしかしたら選択したかもしれない未来の1つをやってみたのが本メモです。
事前調査
これまでに経験のあるディストリビューションの切り替え作業は、以前にRed Hat Enterprise Linux 6(以下、RHEL 6)系からCentOS 6系に切り替えたことがあるだけです。この時は検証環境に入っているRHEL 6に対する予算措置がなく、パッケージ・レポジトリーがすでに使用できなくなっているので、CentOS 6へ切り替えたいというものでした。当時の印象としては、事細かに覚えているわけではないのですが、それほど手間をかけずに、ただ時間はそれなりにかかって移行したのではなかったかと思います。※1
今回はサイバートラストが公開している2つの資料を参考にしました:※2
- MIRACLE LINUX 移行ツール — MIRACLE LINUX サポート&テクノロジー | サイバートラスト株式会社
- 【公開】 MIRACLE LINUX 8.4 移行ツールマニュアル(※PDFです)
確認したうえで、今回は推奨されている「--core
」を指定して、移行をすることにしました。
実際に移行をしてみる
あとは実行してみるだけです。対象の移行元CentOS 8は「CentOS Linux release 8.5.2111
」です。
[root@tk2-205-12217 ~]# wget https://repo.dist.miraclelinux.net/miraclelinux/migration-tool/migrate2ml.sh
--2023-01-09 14:21:20-- https://repo.dist.miraclelinux.net/miraclelinux/migration-tool/migrate2ml.sh
Resolving repo.dist.miraclelinux.net (repo.dist.miraclelinux.net)... 2606:4700:10::6816:29c3, 2606:4700:10::ac43:426, 2606:4700:10::6816:28c3, ...
Connecting to repo.dist.miraclelinux.net (repo.dist.miraclelinux.net)|2606:4700:10::6816:29c3|:443... failed: No route to host.
Connecting to repo.dist.miraclelinux.net (repo.dist.miraclelinux.net)|2606:4700:10::ac43:426|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20833 (20K) [application/x-sh]
Saving to: ‘migrate2ml.sh’
migrate2ml.sh 0%[ ] 0 --.-KB/s migrate2ml.sh 100%[=================================================================================================>] 20.34K --.-KB/s in 0s
2023-01-09 14:21:21 (43.3 MB/s) - ‘migrate2ml.sh’ saved [20833/20833]
[root@tk2-205-12217 ~]# chmoidod +x migrate2ml.sh
[root@tk2-205-12217 ~]# ./migrate2ml.sh --core
migrate2ml.sh VERSION: 1.0.1
centos-release: CentOS Linux release 8.5.2111
Disabled CentOS repo files.
Copied MIRACLE LINUX repo files.
Clean dnf cache.
36 files removed
Imported MIRACLE LINUX GPG key.
Start download pkgs
MIRACLE LINUX - AppStream 10 MB/s | 42 MB 00:04
MIRACLE LINUX - BaseOS 10 MB/s | 33 MB 00:03
Last metadata expiration check: 0:00:07 ago on Mon Jan 9 14:32:23 2023.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
miraclelinux-release x86_64 8.4-0.1.el8.ML.3 ML8-BaseOS 28 k
redhat-release x86_64 8.4-0.1.el8.ML.1 ML8-BaseOS 14 k
Installing dependencies:
asianux-release x86_64 8.0-10.el8 ML8-BaseOS 7.6 k
Transaction Summary
================================================================================
Install 3 Packages
Total download size: 49 k
Installed size: 42 k
DNF will only download packages for the transaction.
Downloading Packages:
(1/3): asianux-release-8.0-10.el8.x86_64.rpm 124 kB/s | 7.6 kB 00:00
(2/3): miraclelinux-release-8.4-0.1.el8.ML.3.x8 376 kB/s | 28 kB 00:00
(3/3): redhat-release-8.4-0.1.el8.ML.1.x86_64.r 178 kB/s | 14 kB 00:00
--------------------------------------------------------------------------------
Total 443 kB/s | 49 kB 00:00
Complete!
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Last metadata expiration check: 0:00:14 ago on Mon Jan 9 14:32:23 2023.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
miraclelinux-release x86_64 8.4-0.1.el8.ML.3 ML8-BaseOS 28 k
redhat-release x86_64 8.4-0.1.el8.ML.1 ML8-BaseOS 14 k
Installing dependencies:
asianux-release x86_64 8.0-10.el8 ML8-BaseOS 7.6 k
Transaction Summary
================================================================================
Install 3 Packages
Total size: 49 k
Installed size: 42 k
Downloading Packages:
[SKIPPED] asianux-release-8.0-10.el8.x86_64.rpm: Already downloaded
[SKIPPED] miraclelinux-release-8.4-0.1.el8.ML.3.x86_64.rpm: Already downloaded
[SKIPPED] redhat-release-8.4-0.1.el8.ML.1.x86_64.rpm: Already downloaded
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : asianux-release-8.0-10.el8.x86_64 1/3
Installing : miraclelinux-release-8.4-0.1.el8.ML.3.x86_64 2/3
Installing : redhat-release-8.4-0.1.el8.ML.1.x86_64 3/3
Running scriptlet: redhat-release-8.4-0.1.el8.ML.1.x86_64 3/3
Verifying : asianux-release-8.0-10.el8.x86_64 1/3
Verifying : miraclelinux-release-8.4-0.1.el8.ML.3.x86_64 2/3
Verifying : redhat-release-8.4-0.1.el8.ML.1.x86_64 3/3
Installed:
asianux-release-8.0-10.el8.x86_64
miraclelinux-release-8.4-0.1.el8.ML.3.x86_64
redhat-release-8.4-0.1.el8.ML.1.x86_64
Complete!
Replaced os-release pkgs.
Replace brand pkgs.
Last metadata expiration check: 0:00:19 ago on Mon Jan 9 14:32:23 2023.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
miraclelinux-logos-httpd noarch 84.4-3.el8 ML8-BaseOS 12 k
Transaction Summary
================================================================================
Install 1 Package
Total download size: 12 k
Installed size: 7.3 k
DNF will only download packages for the transaction.
Downloading Packages:
miraclelinux-logos-httpd-84.4-3.el8.noarch.rpm 220 kB/s | 12 kB 00:00
--------------------------------------------------------------------------------
Total 126 kB/s | 12 kB 00:00
Complete!
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Uninstalled: centos-logos-httpd
Last metadata expiration check: 0:00:23 ago on Mon Jan 9 14:32:23 2023.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
miraclelinux-logos-httpd noarch 84.4-3.el8 ML8-BaseOS 12 k
Transaction Summary
================================================================================
Install 1 Package
Total size: 12 k
Installed size: 7.3 k
Downloading Packages:
[SKIPPED] miraclelinux-logos-httpd-84.4-3.el8.noarch.rpm: Already downloaded
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : miraclelinux-logos-httpd-84.4-3.el8.noarch 1/1
Verifying : miraclelinux-logos-httpd-84.4-3.el8.noarch 1/1
Installed:
miraclelinux-logos-httpd-84.4-3.el8.noarch
Complete!
Replaced brand pkgs to ML.
Uninstalled specific packages.
Last metadata expiration check: 0:00:27 ago on Mon Jan 9 14:32:23 2023.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Downgrading:
grub2-common noarch 1:2.02-99.el8.ML.2 ML8-BaseOS 889 k
grub2-pc x86_64 1:2.02-99.el8.ML.2 ML8-BaseOS 40 k
grub2-pc-modules noarch 1:2.02-99.el8.ML.2 ML8-BaseOS 913 k
grub2-tools x86_64 1:2.02-99.el8.ML.2 ML8-BaseOS 2.0 M
grub2-tools-efi x86_64 1:2.02-99.el8.ML.2 ML8-BaseOS 473 k
grub2-tools-extra x86_64 1:2.02-99.el8.ML.2 ML8-BaseOS 1.1 M
grub2-tools-minimal x86_64 1:2.02-99.el8.ML.2 ML8-BaseOS 208 k
Transaction Summary
================================================================================
Downgrade 7 Packages
Total download size: 5.5 M
Downloading Packages:
(1/7): grub2-pc-2.02-99.el8.ML.2.x86_64.rpm 488 kB/s | 40 kB 00:00
(2/7): grub2-pc-modules-2.02-99.el8.ML.2.noarch 3.0 MB/s | 913 kB 00:00
(3/7): grub2-common-2.02-99.el8.ML.2.noarch.rpm 2.7 MB/s | 889 kB 00:00
(4/7): grub2-tools-efi-2.02-99.el8.ML.2.x86_64. 3.0 MB/s | 473 kB 00:00
(5/7): grub2-tools-minimal-2.02-99.el8.ML.2.x86 2.1 MB/s | 208 kB 00:00
(6/7): grub2-tools-2.02-99.el8.ML.2.x86_64.rpm 3.8 MB/s | 2.0 MB 00:00
(7/7): grub2-tools-extra-2.02-99.el8.ML.2.x86_6 3.8 MB/s | 1.1 MB 00:00
--------------------------------------------------------------------------------
Total 8.6 MB/s | 5.5 MB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: grub2-common-1:2.02-99.el8.ML.2.noarch 1/1
Downgrading : grub2-common-1:2.02-99.el8.ML.2.noarch 1/14
Downgrading : grub2-tools-minimal-1:2.02-99.el8.ML.2.x86_64 2/14
Downgrading : grub2-tools-extra-1:2.02-99.el8.ML.2.x86_64 3/14
Downgrading : grub2-pc-modules-1:2.02-99.el8.ML.2.noarch 4/14
Running scriptlet: grub2-tools-1:2.02-99.el8.ML.2.x86_64 5/14
Downgrading : grub2-tools-1:2.02-99.el8.ML.2.x86_64 5/14
Running scriptlet: grub2-tools-1:2.02-99.el8.ML.2.x86_64 5/14
Downgrading : grub2-pc-1:2.02-99.el8.ML.2.x86_64 6/14
Downgrading : grub2-tools-efi-1:2.02-99.el8.ML.2.x86_64 7/14
Cleanup : grub2-pc-1:2.02-106.el8.x86_64 8/14
Cleanup : grub2-tools-extra-1:2.02-106.el8.x86_64 9/14
Cleanup : grub2-pc-modules-1:2.02-106.el8.noarch 10/14
Cleanup : grub2-tools-minimal-1:2.02-106.el8.x86_64 11/14
Running scriptlet: grub2-tools-1:2.02-106.el8.x86_64 12/14
Cleanup : grub2-tools-1:2.02-106.el8.x86_64 12/14
Cleanup : grub2-tools-efi-1:2.02-106.el8.x86_64 13/14
Cleanup : grub2-common-1:2.02-106.el8.noarch 14/14
Running scriptlet: grub2-common-1:2.02-106.el8.noarch 14/14
Verifying : grub2-common-1:2.02-99.el8.ML.2.noarch 1/14
Verifying : grub2-common-1:2.02-106.el8.noarch 2/14
Verifying : grub2-pc-1:2.02-99.el8.ML.2.x86_64 3/14
Verifying : grub2-pc-1:2.02-106.el8.x86_64 4/14
Verifying : grub2-pc-modules-1:2.02-99.el8.ML.2.noarch 5/14
Verifying : grub2-pc-modules-1:2.02-106.el8.noarch 6/14
Verifying : grub2-tools-1:2.02-99.el8.ML.2.x86_64 7/14
Verifying : grub2-tools-1:2.02-106.el8.x86_64 8/14
Verifying : grub2-tools-efi-1:2.02-99.el8.ML.2.x86_64 9/14
Verifying : grub2-tools-efi-1:2.02-106.el8.x86_64 10/14
Verifying : grub2-tools-extra-1:2.02-99.el8.ML.2.x86_64 11/14
Verifying : grub2-tools-extra-1:2.02-106.el8.x86_64 12/14
Verifying : grub2-tools-minimal-1:2.02-99.el8.ML.2.x86_64 13/14
Verifying : grub2-tools-minimal-1:2.02-106.el8.x86_64 14/14
Downgraded:
grub2-common-1:2.02-99.el8.ML.2.noarch
grub2-pc-1:2.02-99.el8.ML.2.x86_64
grub2-pc-modules-1:2.02-99.el8.ML.2.noarch
grub2-tools-1:2.02-99.el8.ML.2.x86_64
grub2-tools-efi-1:2.02-99.el8.ML.2.x86_64
grub2-tools-extra-1:2.02-99.el8.ML.2.x86_64
grub2-tools-minimal-1:2.02-99.el8.ML.2.x86_64
Complete!
Upgraded of grub2 packages.
Skipped grub2-mkconfig.
Not UEFI environment, skipped registering EFI Boot Record.
Core package migration is completed!
このように正常に移行が完了したらroot
ユーザーあるいはsudo
をつけて「dnf -y update
」でパッケージを更新して再起動すればMIRACLE LINUX 8への切り替えが完了します。※3
移行の結果
前回の移行で構築したApache HTTP Serverとphp-fpm、MariaDBによるWordPressの実行環境は特別に何もすることなく従来通り正常に動作しました。これとは別に独自に導入したTomcat 9環境における自作のコードも特別に何かすることなく正常に動作することを確認しました。
これらを含めて確認した範囲で正常に動作しているようです。移行は成功したといってよいでしょう。
まとめ
私の環境の特記事項としてはSELinuxを無効化していないところにあります。それでも問題なく移行できたことから、多くのケースにおいて問題なく移行できそうな感触を得ることができました。もしもCentOS 8にとどまっていて、新しいコードの適用ができていない環境が存在しているのであれば、移行対象として選択することを検討すべき1つとなるのではないかと思います。
また、企業ユースなどで、最終的にはお金で解決したいというような場合にもサイバートラストは日本企業ということで相談をしやすいのではないかと思われます。
個人的な移行例ではありますが、公開したことで何等かのお役に立てば幸いです。
- 確か、
yum
の向き先をCentOS側にレポジトリーに向けてから、yum
コマンドですべてアップデートを行ってリブートしたのではなかったかという、ぼんやりとした記憶があります。 - 実はこれらのドキュメントで実行することが指定されている
migrate2ml.sh
の中身を眺めてみて、「おお、これは面白い」と感じたことが、実際に移行(マイグレーション)を実行してみようと思った理由だったりします。 - 私個人としては回線切断で実行中のプロセスが終了してしまわないように
nohup
コマンドを併用することが多いです。