35
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AlmaLinuxを使ってみた(後編)

Last updated at Posted at 2021-04-07

前回の続き

前回から続いた内容なので、5から始まる連続した段落番号をつけている。

5. 移行ツールを使う

AlmaLinuxは、almalinux-deployという移行ツールを提供している。このツールを使うと既存のディストリビューションから簡単に移行できる。なお、移行元ディストリビューションとして、CentOS 8やRHEL 8、Oracle Linux 8をサポートしている。詳しくはGitHubを見てほしい。

5.1. 移行ツールの実行手順

実行手順は以下のとおり。ただし、移行元のサーバーからインターネットにアクセスできる必要がある。

  1. RHEL8.3相当以上にアップデート
  2. 移行スクリプトのダウンロード
  3. 移行スクリプトの実行
  4. 必要に応じて、リポジトリ情報を修正

今回は、ISOイメージからインストールしたCentOS 8に加えて、AWSやAzure、Oracle CloudなどのCentOS 8でも確認する。わざわざパブリック・クラウドで確認するのは、カスタマイズされて素のCentOSと異なることが多いからだ。

なお、移行ツールを使用するときは必ず事前にバックアップすること。

5.2. 移行ツールの事前準備

利用環境は、ISOイメージからインストールしたCentOS 8.3を使用している。

  1. 現在のLinux OSバージョンを確認する。次のように8.3以上ならば問題ない。8.2以前のときにはアップデートが必要になる(8.2以前だとスクリプトにNGで蹴られる)。
$ cat /etc/centos-release
CentOS Linux release 8.3.2011
アップデートするとき
$ sudo dnf distro-sync -y

2.移行ツールをダウンロードする。

$ curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh

3.スクリプト(version 0.1.7)は約400行あり、おもに次のことを実行している。

  • 移行元ディストリビューションのチェック
  • ディストリビューション固有のパッケージ削除
  • AlmaLinux固有のパッケージのインストール
  • インストール済みパッケージのAlmaLinuxの置き換え
$ wc -l almalinux-deploy.sh
407 almalinux-deploy.sh

5.3. 移行ツールの実行

1.スクリプトを実行する。実行にかかる時間は、サーバー性能やインストール済みパッケージ数、ネットワーク速度などに依存する。10分から30分くらいは必要だと思ったほうがいいだろう。

sudo bash almalinux-deploy.sh
以下のようにチェックが走り、インストールが開始される
Check root privileges                                                 OK
Check Secure Boot disabled                                            OK
Check centos-8.x86_64 is supported                                    OK
Download RPM-GPG-KEY-AlmaLinux                                        OK
Import RPM-GPG-KEY-AlmaLinux to RPM DB                                OK
Download almalinux-release package                                    OK
Verify almalinux-release package                                      OK
Remove centos-linux-release package                                   OK
Remove centos-gpg-keys package                                        OK
Remove centos-linux-repos package                                     OK
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:almalinux-release-8.3-4.el8      ################################# [100%]
Install almalinux-release package                                     OK
Remove centos-logos package                                           OK
Install almalinux-logos package                                       OK

2.インストールが終わると以下のように表示される。GitHubの記述と異なるが、スクリプトのバージョンによって変わるかもしれない。

今回の結果
Complete!
Run dnf distro-sync -y                                                OK
GitHubの記述
Migration to AlmaLinux is completed

3.再起動は必須ではないが、移行の前後でkernelやglibc、opensslなどのコアパッケージのバージョンが変わっているときにはリブートする。以上で終了だ。

sudo systemctl reboot

5.4. 移行後の確認

移行が終わったら、変更箇所を確認しよう。

  1. /etc/*-releaseの中身は「AlmaLinux」に変更されている。
$ cat /etc/almalinux-release
AlmaLinux release 8.3 (Purple Manul)

$ cat /etc/centos-release
AlmaLinux release 8.3 (Purple Manul)

2.リポジトリもすべてAlmaLinuxに変更されている。

有効なリポジトリ
$ dnf repolist
repo id                          repo name
appstream                        AlmaLinux 8 - AppStream
baseos                           AlmaLinux 8 - BaseOS
extras                           AlmaLinux 8 - Extras
powertools                       AlmaLinux 8 - PowerTools
すべてのリポジトリ
$ dnf repolist all
repo id                        repo name                                status
appstream                      AlmaLinux 8 - AppStream                  enabled
appstream-debuginfo            AlmaLinux 8 - AppStream debuginfo        disabled
appstream-source               AlmaLinux 8 - AppStream Source           disabled
baseos                         AlmaLinux 8 - BaseOS                     enabled
baseos-debuginfo               AlmaLinux 8 - BaseOS debuginfo           disabled
baseos-source                  AlmaLinux 8 - BaseOS Source              disabled
extras                         AlmaLinux 8 - Extras                     enabled
extras-debuginfo               AlmaLinux 8 - Extras debuginfo           disabled
extras-source                  AlmaLinux 8 - Extras Source              disabled
ha                             AlmaLinux 8 - HighAvailability           disabled
ha-debuginfo                   AlmaLinux 8 - HighAvailability debuginfo disabled
ha-source                      AlmaLinux 8 - HighAvailability Source    disabled
powertools                     AlmaLinux 8 - PowerTools                 enabled
powertools-debuginfo           AlmaLinux 8 - PowerTools debuginfo       disabled
powertools-source              AlmaLinux 8 - PowerTools Source          disabled
repoファイル
$ ls /etc/yum.repos.d/
almalinux-ha.repo almalinux.repo

5.5. パブリック・クラウドでの移行

次に、AWSやAzure、Oracle Cloudなどのパブリック・クラウドで提供しているCentOS 8で実行した結果を紹介する。なお、以下の2点を確認している。

  • 移行ツールで移行できたか
  • 移行後に修正すべき箇所はあるか

5.5.1. AWSのCentOS 8

AWSには、CentOS 8のAMIが数多く登録されている。今回はCentOS公式のAMIを使用した(CentOS Official AMI情報)。

key value
Region ap-northeast-1
AMI Name CentOS 8.3.2011 x86_64
AMI ID ami-0d9bf167cb68ac889

移行結果
何の問題も無く移行が完了した。

  • 移行ツールで移行できたか:できた
  • 移行後に修正すべき箇所はあるか:ない

おまけ
移行後に既存のRPMパッケージが残っているか確認する。

  1. 使われているVenderタグの一覧を表示する。この例ではAlmaLinuxとCloudLinux以外に、CentOSと(none)がある。
$ rpm -qa --qf '%{VENDOR}\n' | sort | uniq
AlmaLinux
CentOS
CloudLinux
(none)

2.VenderタグがAlmaLinuxとCloudLinux以外のパッケージを表示する。これを見ると古いカーネルとGPG KEYだけだ。つまり現在使用しているパッケージはすべてAlmaLinuxに置き換えられている。

$ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{VENDOR}\n' | grep -v AlmaLinux | grep -v CloudLinux
gpg-pubkey-3abb34f8-5ffd890e    (none)
kernel-core-4.18.0-240.1.1.el8_3        CentOS
kernel-modules-4.18.0-240.1.1.el8_3     CentOS
kernel-4.18.0-240.1.1.el8_3     CentOS

5.5.2. AzureのCentOS 8

Azureも、AWSと同様に数多くのCentOS 8イメージが公開されている。そのためOpenLogicの仮想マシンイメージを使用した。

移行結果
問題なく移行できたがリポジトリ情報を修正する必要があった。

  • 移行ツールで移行できたか:できた
  • 移行後に修正すべき箇所はあるか:ある

問題箇所
移行後にリポジトリを表示すると、OpenLogicのリポジトリが存在するため以下のエラーが発生した。

$ sudo dnf repolist

errors during downloading metadata for repository 'AppStream-openlogic':
  - Status code: 404 for http://olcentgbl.trafficmanager.net/almalinux/8/AppStream/x86_64/os/repodata/repomd.xml (IP: 138.91.1.67)
Error: Failed to download metadata for repo 'AppStream-openlogic': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
CentOS-8 - Base (OpenLogic)    
エラーを除外してリポジトリだけを表示
$ sudo dnf repolist
repo id                       repo name
AppStream-openlogic           CentOS-8 - AppStream (OpenLogic)
BaseOS-openlogic              CentOS-8 - Base (OpenLogic)
appstream                     AlmaLinux 8 - AppStream
baseos                        AlmaLinux 8 - BaseOS
extras                        AlmaLinux 8 - Extras
extras-openlogic              CentOS-8 - Extras (OpenLogic)
openlogic                     CentOS-8 - OpenLogic packages for x86_64
powertools                    AlmaLinux 8 - PowerTools

OpenLogicのリポジトリを無効にする
修正するには、次のコマンドでOpenLogicのリポジトリを無効にすればよい。

sudo dnf config-manager --disable AppStream-openlogic BaseOS-openlogic extras-openlogic openlogic

無効にすると、エラー無しにdnfを実行できる。

$ sudo dnf repolist
repo id                  repo name
appstream                AlmaLinux 8 - AppStream
baseos                   AlmaLinux 8 - BaseOS
extras                   AlmaLinux 8 - Extras
powertools               AlmaLinux 8 - PowerTools

repoファイルを無効にする
別の方法としてrepoファイルをリネームする方法もある。OpenLogicのリポジトリは絶対に利用しないので、こちらの方が確実といえる。

/etc/yum.repos.d/には以下の有効なrepoファイルがある。

$ ls /etc/yum.repos.d/*repo
/etc/yum.repos.d/almalinux-ha.repo  /etc/yum.repos.d/OpenLogicCentOS.repo
/etc/yum.repos.d/almalinux.repo     /etc/yum.repos.d/OpenLogic.repo

OpenLogicのrepoファイルをリネームする。

$ sudo rename repo repo.bak /etc/yum.repos.d/OpenLogic*

確認すると.bakという拡張子が付いて無効になっている。

$ ls /etc/yum.repos.d/OpenLogic*
/etc/yum.repos.d/OpenLogicCentOS.repo.bak  /etc/yum.repos.d/OpenLogic.repo.bak

5.5.3. Oracle CloudのCentOS 8

Oracle Cloud Infrastructureでは、Oracleが提供するCentOS 8を利用した。

移行結果
何の問題も無く移行が完了した。

  • 移行ツールで移行できたか:できた
  • 移行後に修正すべき箇所はあるか:ない

問題箇所
リポジトリを表示するとFailed loading pluginのメッセージが表示される。これは移行とは関係なく、Oracle CloudのCentOS系イメージの問題なので無視してよい。

$ dnf repolist
Failed loading plugin "osmsplugin": No module named 'librepo'
repo id                          repo name
appstream                        AlmaLinux 8 - AppStream
baseos                           AlmaLinux 8 - BaseOS
extras                           AlmaLinux 8 - Extras
powertools                       AlmaLinux 8 - PowerTools

6. これまでのまとめ

AlmaLinuxの概要

  • AlmaLinuxはRHEL互換のLinux OSで、CentOSと同じ位置づけ
  • AlmaLinuxは、少なくとも2029年までサポートを保証(RHEL8と同等)
  • AlmaLinuxは、CloudLinux社のスポンサードを受けながらもコミュティードリブンで開発
  • 2021/03/30に正式安定版をリリース

AlmaLinuxの機能

  • CentOSと、まったく同じように扱える。違うのは/etc/almalinux-releaseがあること
  • アップデートパッケージも十分早くリリースされている
  • 現時点(2021/04/06)で60以上のミラーサイトが用意され、日本でも5サイトある

AlmaLinuxへの移行

  • 移行ツールを利用するとCentOS 8からAlmaLinuxへ簡単に移行できる
  • パブリック・クラウドのCentOS 8もAlmaLinuxに移行できる
  • 移行ツールの前提条件として、インターネットへのアクセスが可能なことと、CentOS 8.3以上の必要がある(※1)

※1. CentOSはエンタープライズ利用が多いことを考えると、インターネットにアクセスできないか、アクセスできてもホワイトリスト申請が必要な可能性がある。共にダメだった場合は、スクリプトを少し修正し、ローカルリポジトリを立てればできそうだ。経験が無いとそれなりに面倒なので、台数が多い場合の選択肢としてはあり得るだろう。

7. 総評

これまで2回にわたってAlmaLinuxを見てきた。CentOSからCentOS Streamへの意向表明から、たった4カ月で仕上げてきたAlmaLinuxは見事というしかない。モノだけでなく、コミュニティーなどのバックアップ体制まで構築できたことは驚嘆に値する。CloudLinuxの主体的な協力による成果だろう。

CentOSの後継となる新しいプロジェクトでは一歩リードした感がある。

まあ、今後コミュニティーが崩壊することや、コントリビューターにそっぽを向かれる可能性は捨てきれないが...。

今後の移行先に関する議論は別のエントリとして書いたので、興味のある方はどうぞ。

35
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?