我试用了AlmaLinux(后篇)
继前次
由于是从上一次继续的内容,所以给它标上以5开头的连续段落编号。
- AlmaLinuxを使ってみた(前編)
5. 使用迁移工具。
AlmaLinux提供了一个名为almalinux-deploy的迁移工具。使用该工具可以轻松地从现有的发行版迁移到AlmaLinux。需要注意的是,作为迁移源的发行版包括CentOS 8、RHEL 8和Oracle Linux 8。请详细参阅GitHub。
5.1. 运行迁移工具的步骤
请按照以下步骤进行操作。然而,您需要从原服务器访问互联网。
-
- 请下载升级脚本以将RHEL8.3以上版本更新。
-
- 执行迁移脚本。
- 根据需要,修改库信息。
这次除了在从ISO镜像安装的CentOS 8上进行确认,还将在AWS、Azure、Oracle Cloud等公共云中进行CentOS 8的确认。之所以特意在公共云确认,是因为它经常与个性化的纯CentOS存在差异。
另外,在使用迁移工具时,请务必提前备份数据。
5.2. 移行工具的前期准备
我使用从ISO映像安装的CentOS 8.3来运行环境。
- 检查当前的Linux操作系统版本。只需要确认是否为8.3或更高即可,如果是8.2或更早的版本,则需要进行更新(如果是8.2或更早的版本,脚本将被拒绝)。
$ 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. 脚本(版本0.1.7)大约有400行,主要执行以下内容。
-
- 移行元ディストリビューションのチェック
-
- ディストリビューション固有のパッケージ削除
-
- AlmaLinux固有のパッケージのインストール
- インストール済みパッケージのAlmaLinuxの置き換え
$ wc -l almalinux-deploy.sh
407 almalinux-deploy.sh
5.3. 运行迁移工具
执行脚本。执行时间取决于服务器性能、已安装的软件包数量和网络速度等因素。建议预计需要大约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
安装完成后,将以以下方式显示。它可能与GitHub的描述不同,但可能会根据脚本版本而有所变化。
Complete!
Run dnf distro-sync -y OK
Migration to AlmaLinux is completed
再启动不是必需的,但在迁移之前或之后,如果核心软件包如kernel、glibc、openssl等的版本发生变化,将需要重新启动。到此为止。
sudo systemctl reboot
5.4. 迁移后的确认
当移行完成后,请确认变更部分。
- /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
$ ls /etc/yum.repos.d/
almalinux-ha.repo almalinux.repo
5.5. 在公共云上的迁移
接下来,我将介绍在AWS、Azure和Oracle Cloud等公共云中运行的CentOS 8的结果。请注意,我正在确认以下两点。
-
- 移行ツールで移行できたか
- 移行後に修正すべき箇所はあるか
5.5.1. AWS中国区的CentOS 8版本
在AWS上,有许多CentOS 8的AMI已经注册了。这次我们使用了CentOS官方的AMI(CentOS Official AMI信息)。
移行结果
顺利完成了迁移,没有任何问题。
-
- 移行ツールで移行できたか:できた
- 移行後に修正すべき箇所はあるか:ない
在转换后,要确认是否还保留了现有的RPM软件包。
- 显示正在使用的供应商标签列表。除了AlmaLinux和CloudLinux之外,还有CentOS和(无)这些例子。
$ rpm -qa --qf '%{VENDOR}\n' | sort | uniq
AlmaLinux
CentOS
CloudLinux
(none)
2. 展示供应商标签除了显示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存储库,请执行以下命令进行修正。
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文件的方法也包括将其重命名。由于绝对不使用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云基础设施中,使用了由Oracle提供的CentOS 8。
移行的结果
顺利完成了移行,没有任何问题。
-
- 移行ツールで移行できたか:できた
- 移行後に修正すべき箇所はあるか:ない
当查看存储库时,会显示“加载插件失败”的消息。这与迁移无关,是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. 综述
迄今为止,我已经两次对 AlmaLinux 进行了评估。考虑到 CentOS 到 CentOS Stream 的宣布意图,AlmaLinux 在短短4个月内完成得很出色。不仅仅是产品本身,还包括构建起完善的支持体系,如社区等。这必定归功于 CloudLinux 的踊跃协作。
在作为CentOS继任者的新项目中,感觉已经取得了一定的领先地位。
嗯,尽管未来社群可能会瓦解,也有可能会有贡献者转身离开,但这种可能性无法完全排除。
如果对未来的转移目标有兴趣的话,请参阅我写的另一篇文章。
- CentOS 8の移行先を考える