😀

Azure の CentOS 8.3 を無料になった Miracle Linux 8.4 にマイグレーションしてみた

に公開

背景と目的

CentOS 8 のサポート終了に向けて、既存の CentOS 8.3 を簡単に Miracle Linux へマイグレーション出来るのか試してみました。

前提条件

コマンドの実施環境は、Mac + Azure CLI です。

bash
$ sw_vers
ProductName:    macOS
ProductVersion: 12.0.1
BuildVersion:   21A559

$ az version
{
  "azure-cli": "2.30.0",
  "azure-cli-core": "2.30.0",
  "azure-cli-telemetry": "1.0.6",
  "extensions": {}
}

実施内容

bash
# 環境変数を設定します
region=japaneast
prefix=mnrcentos

# VM のパスワードを生成します
vmpass=$(openssl rand -base64 16)
echo $vmpass

# リソースグループを作成します
az group create \
  --name ${prefix}-rg \
  --location $region

# VM イメージを探します
az vm image list \
  --offer centos \
  --publisher openlogic \
  --sku 8_3 \
  --all \
  --output table

Offer    Publisher    Sku       Urn                                       Version
-------  -----------  --------  ----------------------------------------  --------------
CentOS   OpenLogic    8_3       OpenLogic:CentOS:8_3:8.3.2020120900       8.3.2020120900
CentOS   OpenLogic    8_3       OpenLogic:CentOS:8_3:8.3.2021020400       8.3.2021020400
CentOS   OpenLogic    8_3-gen2  OpenLogic:CentOS:8_3-gen2:8.3.2020120901  8.3.2020120901
CentOS   OpenLogic    8_3-gen2  OpenLogic:CentOS:8_3-gen2:8.3.2021020401  8.3.2021020401

# VM を作成します
az vm create \
  --resource-group ${prefix}-rg \
  --name ${prefix}-vm \
  --os-disk-name ${prefix}-vmOSDisk \
  --image OpenLogic:CentOS:8_3:8.3.2021020400 \
  --admin-username azureuser \
  --admin-password $vmpass \
  --size Standard_A2_v2 \
  --nsg-rule NONE \
  --storage-sku Standard_LRS

# NSG に自身のパブリック IP から SSH 接続出来るようにします
az network nsg rule create \
  --resource-group ${prefix}-rg \
  --name Allow-SSH \
  --nsg-name $(az network nsg list \
  --resource-group ${prefix}-rg \
  --query "[].name" \
  --out tsv) \
  --priority 100 \
  --source-address-prefixes $(curl -s inet-ip.info) \
  --destination-port-ranges 22 \
  --access Allow \
  --protocol Tcp

# VM に SSH 接続します
ssh azureuser@$(az vm show \
  --resource-group ${prefix}-rg \
  --name ${prefix}-vm \
  --show-detail \
  --query publicIps \
  --output tsv)

実施結果

Miracle Linux へのマイグレーションは、とても簡単でした。

bash
# Miracle Linux のマイグレーションツールをダウンロードします
$ wget https://repo.dist.miraclelinux.net/miraclelinux/migration-tool/migrate2ml.sh

# Miracle Linux のマイグレーションツールを実行します
$ sudo bash ./migrate2ml.sh --core
migrate2ml.sh VERSION: 1.0.1
centos-release: CentOS Linux release 8.3.2011
Disabled CentOS repo files.
Copied MIRACLE LINUX repo files.
Clean dnf cache.
0 files removed
Imported MIRACLE LINUX GPG key.
Start download pkgs
MIRACLE LINUX  - AppStream                       32 MB/s |  23 MB     00:00    
MIRACLE LINUX  - BaseOS                          36 MB/s |  18 MB     00:00    
Last metadata expiration check: 0:00:10 ago on Tue Dec  7 11:45:35 2021.
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): redhat-release-8.4-0.1.el8.ML.1.x86_64.r 133 kB/s |  14 kB     00:00    
(2/3): asianux-release-8.0-10.el8.x86_64.rpm     56 kB/s | 7.6 kB     00:00    
(3/3): miraclelinux-release-8.4-0.1.el8.ML.3.x8  91 kB/s |  28 kB     00:00    
--------------------------------------------------------------------------------
Total                                           127 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:20 ago on Tue Dec  7 11:45:35 2021.
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.
Uninstalled specific packages.
Last metadata expiration check: 0:00:29 ago on Tue Dec  7 11:45:35 2021.
Dependencies resolved.
================================================================================
 Package                 Arch       Version                Repository      Size
================================================================================
Upgrading:
 grub2-common            noarch     1:2.02-99.el8.ML.2     ML8-BaseOS     889 k
 grub2-efi-x64           x86_64     1:2.02-99.el8.ML.2     ML8-BaseOS     474 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-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
Installing dependencies:
 grub2-tools-efi         x86_64     1:2.02-99.el8.ML.2     ML8-BaseOS     473 k

Transaction Summary
================================================================================
Install  1 Package
Upgrade  7 Packages

Total download size: 6.0 M
Downloading Packages:
(1/8): grub2-common-2.02-99.el8.ML.2.noarch.rpm 6.7 MB/s | 889 kB     00:00    
(2/8): grub2-efi-x64-2.02-99.el8.ML.2.x86_64.rp 2.9 MB/s | 474 kB     00:00    
(3/8): grub2-pc-2.02-99.el8.ML.2.x86_64.rpm     1.0 MB/s |  40 kB     00:00    
(4/8): grub2-tools-efi-2.02-99.el8.ML.2.x86_64. 2.4 MB/s | 473 kB     00:00    
(5/8): grub2-pc-modules-2.02-99.el8.ML.2.noarch  13 MB/s | 913 kB     00:00    
(6/8): grub2-tools-2.02-99.el8.ML.2.x86_64.rpm   21 MB/s | 2.0 MB     00:00    
(7/8): grub2-tools-minimal-2.02-99.el8.ML.2.x86 4.2 MB/s | 208 kB     00:00    
(8/8): grub2-tools-extra-2.02-99.el8.ML.2.x86_6  11 MB/s | 1.1 MB     00:00    
--------------------------------------------------------------------------------
Total                                            16 MB/s | 6.0 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 

(中略)

  tpm2-tools-4.1.1-2.el8.x86_64                                   tpm2-tss-2.3.2-3.el8.x86_64                      tracer-common-0.7.5-2.el8.noarch                      
  trousers-0.3.15-1.el8.x86_64                                    trousers-lib-0.3.15-1.el8.x86_64                 udisks2-2.9.0-6.el8.x86_64                            
  udisks2-iscsi-2.9.0-6.el8.x86_64                                udisks2-lvm2-2.9.0-6.el8.x86_64                  unbound-libs-1.7.3-15.el8.x86_64                      
  userspace-rcu-0.10.1-4.el8.x86_64                               volume_key-libs-0.3.11-5.el8.x86_64              xkeyboard-config-2.28-1.el8.noarch                    

完了しました!

# 再起動します
$ sudo reboot

# もう一度 VM に SSH 接続してから OS 情報を確認します
$ cat /etc/os-release
NAME="MIRACLE LINUX"
VERSION="8.4 (Peony)"
ID="miraclelinux"
ID_LIKE="rhel fedora"
PLATFORM_ID="platform:el8"
VERSION_ID="8"
PRETTY_NAME="MIRACLE LINUX 8.4 (Peony)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:cybertrust_japan:miracle_linux:8"
HOME_URL="https://www.cybertrust.co.jp/miracle-linux/"
DOCUMENTATION_URL="https://www.miraclelinux.com/support/miraclelinux8"
BUG_REPORT_URL="https://bugzilla.asianux.com/"
MIRACLELINUX_SUPPORT_PRODUCT="MIRACLE LINUX"
MIRACLELINUX_SUPPORT_PRODUCT_VERSION="8"

# waagent も動いてくれています
$ ps aux | grep waagent
root         935  0.2  0.6 335744 22984 ?        Ss   12:09   0:00 /usr/bin/python3.6 -u /usr/sbin/waagent -daemon
azureus+    1407  0.0  0.0 221924  1020 pts/0    S+   12:11   0:00 grep --color=auto waagent

参考

bash
# リソースグループを削除します
az group delete \
  --name ${prefix}-rg

https://www.cybertrust.co.jp/miraclelinux-license-free/docs/ml84-migrationtool-manual.pdf

Discussion