※この記事は2021年4月1日時点の情報です。
こんにちは、意識高い系フルスタックエンジニアで代表の内です。
CentOS8が2021年でサポートを終了するというアナウンスがされたため、CentOS8を現在使用している場合の移行先の選択肢や、これからRedHat系ディストリビューションを選択する場合の選択肢候補と比較表を前回記事にしました。(こちら)
そこでは、
- コミュニティ主導である
- サポートを2029年まで維持することを宣言している
- フリーかつオープンソースであることを維持する
という方針を打ち出している有力な移行先の候補として、RockyLinuxとAlmaLinuxがあるよ、と紹介しました。
2021年4月1日にAlmaLinuxのstable版がリリースされましたので、AWS上に構築した素のCentOS8インスタンスからAlmaLinuxへの移行を行ってみました。
ちなみにRockyLinuxは今どうなっているか?というと、AlmaLinuxのリリース予定より1日早い2021年3月31日にリリース予定でしたが、間に合わず、約1ヶ月後の4月30日になってます。
目次
AWSで最初からAlmaLinuxを使いたい場合
AWSで最初からAlmaLinuxを使いたい場合は、コミュニティAMIとMarketPlaceで公開されてます。コミュニティAMIは無償ですが、誰でもリリース出来るものなので、セキュリティ上、どこがリリースしているかの確認が必須です。
AWS Marketplace上で公開されているものは有償の可能性があります。
AWS Marketplace上で、SupportedImages社からAlmaLinuxのAMIが提供されていますが、
これはAlmaLinuxCommunityが提供している公式AMIではないため、EC2の料金以外に、割と高額なソフトウェア利用料がかかりますのでご注意ください。
例えばバージニア北部リージョンでt2.mediumを選んだ場合は、EC2の料金が$0.046/時間に対して、ソフトウェア料金が$0.1/時間かかり、合計で$0.146/時間かかります。
また同インスタンスタイプでAWSから提供されている素のCentOS8を選んだ場合はEC2の料金の$0.046/時間だけが発生します。
RedHatEnterpriseLinux8を選択した場合ですら、$0.106/時間の料金ですので、RedHatEnterpriseLinux8よりも高いということになります。
もちろんaws marketplaceでは、ビジネスとして有償でディストリビューションを配布することは違法でも何でもありませんので、理解して利用するのであれば問題ありませんが、再度お伝えすると、これは、AlmaLinux公式のイメージではないのでご注意。
これを利用せずに、当然CentOS8の公式AMIを起動した後に、
AlmaLinuxにアップデートする分にはソフトウェア料金がかかりません。
今回はこの方法をご紹介します。
※2021/04/01時点では、AlmaLinux公式のソフトウェア料金フリーのAMIが公開されてませんが、すぐに公開されるのではないかと思いますので、
そうしたら、ゼロからEC2構築時にはそのイメージを使用することを推奨します。
また、今回この記事用にCentOS8公式AMIをAlmaLinuxにコンバートしたAMIをコミュニティAMIとして無償公開してますので、即利用したい方はこちらをご利用も可能です。
us-east-1用:「ami-0e29efe5d531f71cb」で検索
ap-northeast-1用:「ami-0c6d27bbfaca58126」で検索
AMI-IDで検索すると以下のように出現します。
いづれもsshユーザー名はcentosのままです。
2021年5月31日にAlmaLinux OS FoundationからAWS Marketplaceに、無料の公式AMI「AlmaLinux8.4」が公開されました。今後はこちらを利用しましょう。
https://aws.amazon.com/marketplace/pp/prodview-mku4y3g4sjrye
CentOS8のイメージからAlmaLinuxにアップデートする。
今回は、AWS提供の素のCentOS8のEC2を起動して
パッケージの最新化、タイムゾーンとロケールを日本に設定済みの状態のところから実行します。
※ちなみに現時点でArmアーキテクチャには対応してません。
1 2 3 4 5 6 7 8 9 |
#パッケージ更新 yum -y update #タイムゾーン設定 timedatectl set-timezone Asia/Tokyo #言語設定 localectl set-locale LANG=ja_JP.utf8 localectl set-keymap jp106 |
AlmaLinuxへコンバート前のCentOS8では以下のような情報が表示されます。
コンバート前OS情報
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[root@ip-10-0-0-31 centos]# cat /etc/os-release NAME="CentOS Linux" VERSION="8" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="8" PLATFORM_ID="platform:el8" PRETTY_NAME="CentOS Linux 8" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:8" HOME_URL="https://centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-8" CENTOS_MANTISBT_PROJECT_VERSION="8" |
CentOS8ってなってます
1 2 |
[centos@ip-10-0-0-31 ~]$ cat /etc/system-release CentOS Linux release 8.3.2011 |
CentOS8.3ってなってます。
コンバート前リポジトリ情報
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[root@ip-10-0-0-31 centos]# yum repolist all repo id repo name status appstream CentOS Linux 8 - AppStream enabled appstream-source CentOS Linux 8 - AppStream - Source disabled baseos CentOS Linux 8 - BaseOS enabled baseos-source CentOS Linux 8 - BaseOS - Source disabled cr CentOS Linux 8 - ContinuousRelease disabled debuginfo CentOS Linux 8 - Debuginfo disabled devel CentOS Linux 8 - Devel WARNING! FOR BUILDROOT USE ONLY! disabled extras CentOS Linux 8 - Extras enabled extras-source CentOS Linux 8 - Extras - Source disabled fasttrack CentOS Linux 8 - FastTrack disabled ha CentOS Linux 8 - HighAvailability disabled media-appstream CentOS Linux 8 - Media - AppStream disabled media-baseos CentOS Linux 8 - Media - BaseOS disabled plus CentOS Linux 8 - Plus disabled plus-source CentOS Linux 8 - Plus - Source disabled powertools CentOS Linux 8 - PowerTools disabled |
CentOS Linux8ってなってます。
CentOS8をAlmaLinuxへ移行してみる
手順が乗っている公式githubリポジトリはこちら。
https://github.com/AlmaLinux/almalinux-deploy
1.バックアップを取りましょう
今回はEC2でやってるので、スナップショットをポチッと取るだけでOKです。
2.almalinux-deploy.shをダウンロード
1 2 3 4 |
[centos@ip-10-0-0-31 ~]$ curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 12343 100 12343 0 0 110k 0 --:--:-- --:--:-- --:--:-- 110k |
3.ダウンロードしたalmalinux-deploy.shを実行
1 |
[centos@ip-10-0-0-31 ~]$ sudo bash almalinux-deploy.sh |
すると、パッケージのダウンロードと再インストールが開始されます。
実行の様子は長いので省略して書くと以下のような感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
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 警告: /etc/dnf/vars/infra は /etc/dnf/vars/infra.rpmsave として保存されました。 Remove centos-linux-release package OK Remove centos-gpg-keys package OK Remove centos-linux-repos package OK Verifying... ################################# [100%] 準備しています... ################################# [100%] 更新中 / インストール中... 1:almalinux-release-8.3-4.el8 ################################# [100%] Install almalinux-release package OK Remove centos-logos package Install almalinux-logos package OK メタデータの期限切れの最終確認: 0:00:02 時間前の 2021年04月01日 16時40分17秒 に実施しました。 依存関係が解決しました。 ======================================================================================================================== パッケージ Arch バージョン リポジトリー サイズ ======================================================================================================================== アップグレード: NetworkManager x86_64 1:1.26.0-13.el8_3 baseos 2.4 M NetworkManager-libnm x86_64 1:1.26.0-13.el8_3 baseos 1.7 M NetworkManager-team x86_64 1:1.26.0-13.el8_3 baseos 141 k NetworkManager-tui x86_64 1:1.26.0-13.el8_3 baseos 319 k chrony x86_64 3.5-1.1.el8 baseos 269 k -----省略----- yum-utils noarch 4.0.17-5.el8 baseos 67 k zlib x86_64 1.2.11-16.el8_2 baseos 102 k ダウングレード: python3-requests noarch 2.20.0-2.1.el8 baseos 123 k トランザクションの概要 ======================================================================================================================== アップグレード 41 パッケージ ダウングレード 1 パッケージ ダウンロードサイズの合計: 395 M パッケージのダウンロード: (1/432): PackageKit-glib-1.1.12-6.el8.x86_64.rpm 1.0 MB/s | 139 kB 00:00 (2/432): python3-requests-2.20.0-2.1.el8.noarch.rpm 833 kB/s | 123 kB 00:00 (3/432): PackageKit-1.1.12-6.el8.x86_64.rpm 3.8 MB/s | 599 kB 00:00 -----省略----- (431/432): rhn-client-tools-2.8.16-13.module_el8.3.0+2053+3ddf2832.x86_64.rpm 13 MB/s | 384 kB 00:00 (432/432): glibc-all-langpacks-2.28-127.el8_3.2.x86_64.rpm 23 MB/s | 25 MB 00:01 ------------------------------------------------------------------------------------------------------------------------ 合計 36 MB/s | 395 MB 00:10 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 scriptletの実行中: filesystem-3.8-3.el8.x86_64 1/1 準備 : 1/1 scriptletの実行中: libgcc-8.3.1-5.1.el8.alma.x86_64 1/1 アップグレード : libgcc-8.3.1-5.1.el8.alma.x86_64 1/864 scriptletの実行中: libgcc-8.3.1-5.1.el8.alma.x86_64 1/864 再インストール : setup-2.12.2-6.el8.noarch 2/864 警告: /etc/shadow は /etc/shadow.rpmnew として作成されました。 scriptletの実行中: setup-2.12.2-6.el8.noarch 2/864 再インストール : filesystem-3.8-3.el8.x86_64 3/864 -----省略----- scriptletの実行中: systemd-udev-239-41.el8_3.1.x86_64 864/864 scriptletの実行中: fontconfig-2.13.1-3.el8.x86_64 864/864 scriptletの実行中: man-db-2.7.6.1-17.el8.x86_64 864/864 検証 : python3-requests-2.20.0-2.1.el8.noarch 1/864 検証 : python3-requests-2.20.0-2.1.el8_1.noarch 2/864 検証 : PackageKit-1.1.12-6.el8.x86_64 3/864 -----省略----- 検証 : rhn-client-tools-2.8.16-13.module_el8.3.0+2053+3ddf2832.x86_64 863/864 検証 : rhn-client-tools-2.8.16-13.module_el8.1.0+211+ad6c0bc7.x86_64 864/864 アップグレード済み: NetworkManager-1:1.26.0-13.el8_3.x86_64 NetworkManager-libnm-1:1.26.0-13.el8_3.x86_64 NetworkManager-team-1:1.26.0-13.el8_3.x86_64 NetworkManager-tui-1:1.26.0-13.el8_3.x86_64 -----省略----- xz-libs-5.2.4-3.el8.x86_64 yum-4.2.23-4.el8.noarch yum-utils-4.0.17-5.el8.noarch zlib-1.2.11-16.el8_2.x86_64 完了しました! Run dnf distro-sync -y |
スクリプトを実行して、実行結果でエラーがでないかを確認してください。
コンバート出来た確認
コンバート後OS情報
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[centos@ip-10-0-0-31 ~]$ cat /etc/os-release NAME="AlmaLinux" VERSION="8.3 (Purple Manul)" ID="almalinux" ID_LIKE="rhel centos fedora" VERSION_ID="8.3" PLATFORM_ID="platform:el8" PRETTY_NAME="AlmaLinux 8.3 (Purple Manul)" ANSI_COLOR="0;34" CPE_NAME="cpe:/o:almalinux:almalinux:8.3:GA" HOME_URL="https://almalinux.org/" BUG_REPORT_URL="https://bugs.almalinux.org/" ALMALINUX_MANTISBT_PROJECT="AlmaLinux-8" ALMALINUX_MANTISBT_PROJECT_VERSION="8.3" |
AlmaLinux8.3になってます。
1 2 |
[centos@ip-10-0-0-31 ~]$ cat /etc/redhat-release AlmaLinux release 8.3 (Purple Manul) |
AlmaLinux8.3になってます。
コンバート後リポジトリ情報
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[centos@ip-10-0-0-31 ~]$ yum repolist all repo id repo の名前 状態 appstream AlmaLinux 8 - AppStream 有効化 appstream-debuginfo AlmaLinux 8 - AppStream debuginfo 無効化 appstream-source AlmaLinux 8 - AppStream Source 無効化 baseos AlmaLinux 8 - BaseOS 有効化 baseos-debuginfo AlmaLinux 8 - BaseOS debuginfo 無効化 baseos-source AlmaLinux 8 - BaseOS Source 無効化 extras AlmaLinux 8 - Extras 有効化 extras-debuginfo AlmaLinux 8 - Extras debuginfo 無効化 extras-source AlmaLinux 8 - Extras Source 無効化 ha AlmaLinux 8 - HighAvailability 無効化 ha-debuginfo AlmaLinux 8 - HighAvailability debuginfo 無効化 ha-source AlmaLinux 8 - HighAvailability Source 無効化 powertools AlmaLinux 8 - PowerTools 有効化 powertools-debuginfo AlmaLinux 8 - PowerTools debuginfo 無効化 powertools-source AlmaLinux 8 - PowerTools Source 無効化 |
AlmaLinux8になってます。
1 2 |
[centos@ip-10-0-0-31 ~]$ sudo grubby --info DEFAULT | grep AlmaLinux title="AlmaLinux (4.18.0-240.15.1.el8_3.x86_64) 8.3 (Purple Manul)" |
AlmaLinux8になってます。
CentOS Stream8をAlmaLinuxにアップデートしようとする
ちなみに、CentOS Stream8をAlmaLinuxにコンバートしようとするとやっぱり無理で、以下のようにバージョンチェックエラーが出て実行できませんでした。
まとめ
AlmaLinuxへのコンバートは
1.ダウンロード
2.実行
の2行で超簡単に出来ますので、
あえてRedHatEnterpriseLinuxより高いMarketplace AMIを使うケースは非常に少ないのではないかと思いました。
次回は2021/4/30 RockyLinuxがリリースされたら、CentOS8→RockyLinuxやAlmaLinux→RockyLinux
などを試してみたいと思います。
- 2023年ギークフィードが評価されて表彰されたことの振り返りとアピール - 2023-12-24
- Linuxコンソールで、本番、ステージング、テスト環境を混同しないための4つの工夫 - 2023-09-13
- Amazon Linux 2023を触ってみて質問がありそうなことをまとめてみました。 - 2023-03-22
- AmazonLinux3じゃなくってAmazon Linux 2022 (AL2022) だってさ。 - 2022-01-31
- 【祝:月間PV6万越え】2021年のギークブログ大賞を発表します。 - 2022-01-10