CentOS 8環境をMIRACLE LINUX 8環境に移行してみた

はじめに

先日のメモ「またまた地味なサイト・リニューアル」では、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

確認したうえで、今回は推奨されている「--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 Serverphp-fpmMariaDBによるWordPressの実行環境は特別に何もすることなく従来通り正常に動作しました。これとは別に独自に導入したTomcat 9環境における自作のコードも特別に何かすることなく正常に動作することを確認しました。

これらを含めて確認した範囲で正常に動作しているようです。移行は成功したといってよいでしょう。

まとめ

私の環境の特記事項としてはSELinuxを無効化していないところにあります。それでも問題なく移行できたことから、多くのケースにおいて問題なく移行できそうな感触を得ることができました。もしもCentOS 8にとどまっていて、新しいコードの適用ができていない環境が存在しているのであれば、移行対象として選択することを検討すべき1つとなるのではないかと思います。

また、企業ユースなどで、最終的にはお金で解決したいというような場合にもサイバートラストは日本企業ということで相談をしやすいのではないかと思われます。

個人的な移行例ではありますが、公開したことで何等かのお役に立てば幸いです。


  • 確か、yumの向き先をCentOS側にレポジトリーに向けてから、yumコマンドですべてアップデートを行ってリブートしたのではなかったかという、ぼんやりとした記憶があります。
  • 実はこれらのドキュメントで実行することが指定されているmigrate2ml.shの中身を眺めてみて、「おお、これは面白い」と感じたことが、実際に移行(マイグレーション)を実行してみようと思った理由だったりします。
  • 私個人としては回線切断で実行中のプロセスが終了してしまわないようにnohupコマンドを併用することが多いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です