CentOS 8迁移到Anolis OS 8

2024-12-27 13:51:58 110


欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。


1 迁移原理与注意事项

Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS8.x兼容,所以CentOS8.x迁移Anolis OS 8实现上,工具充分利用了兼容的特性,提供了一键式迁移脚本。centos2anolis.py。

CentOS 8.x迁移使用Anolis OS release相关的包替代CentOS release,通过yum distro-sync重装当前系统中所有的系统软件包。

软件重装的过程并不会修改当前系统基础配置,所以系统配置,业务配置,业务数据都不会被清除,迁移完成后这些数据无需重新设置。

使用迁移脚本前需要注意如下事项:

迁移过程涉及软件包重装,是不可逆过程,迁移前务必做好备份。

迁移过程涉及到访问Anolis OS 的官方repo,需要确保待迁移环境网络能够正常访问Anolis OS repo。

需要使用root用户执行,当前只支持CentOS8.x系统的迁移,不支持CentOS stream系统迁移。

迁移过程依赖于yum/dnf,确保这两个组件能够正常运行。

迁移脚本提供了Anolis OS repo访问加速的功能,如果访问Anolis OS官方repo速度较慢,可以通过-s选项进行加速访问。

Anolis OS 不提供i686架构的软件包,如您系统上安装了CentOS的i686架构的软件包,则无法正常迁移。


2 部署迁移工具

选项一 从本地 yum 源安装迁移工具

如果待迁移系统无法访问龙蜥 mirror,首先建议在内网搭建一套本地yum源。(如何做本地yum源 用户名: rsync_user , 密码: Rsync@2020) ,然后通过本地源安装迁移工具。假设本地源地址为 http:///local.repo.com/anolis , 则下载迁移工具软件源:

wget http:///local.repo.com/anolis/migration/anolis-migration.repo -O /etc/yum.repos.d/anolis-migration.repo

然后执行下述命令将 /etc/yum.repos.d/anolis-migration.repo 里面的baseurl地址替换为本地源地址。

sed -i "s#baseurl=https:///mirrors.openanolis.cn/#baseurl=http:///local.repo.com/#" /etc/yum.repos.d/anolis-migration.repo

sed -i "s#gpgkey=https:///mirrors.openanolis.cn/#gpgkey=http:///local.repo.com/#" /etc/yum.repos.d/anolis-migration.repo

安装迁移工具centos2anolis:

yum -y install centos2anolis

选项二 从社区 yum 源(mirrors.openanolis.cn) 安装迁移工具

如果待迁移系统可以联网,则下载迁移工具软件源:

wget https:///mirrors.openanolis.cn/anolis/migration/anolis-migration.repo -O /etc/yum.repos.d/anolis-migration.repo

安装迁移工具centos2anolis:

yum -y install centos2anolis


3 迁移执行

选项一 使用本地 yum 源执行迁移

针对本地配置的龙蜥 yum 源, 该如何使用迁移工具进行迁移操作?

在无法接入到mirrors.openanolis.cn 或 mirrors.aliyun.com 时,可以使用本地源迁移系统。(如何做本地yum源 用户名: rsync_user , 密码: Rsync@2020)

1.在运行工具之前,新建或者编辑Anolis仓库的repo文件:/etc/yum.repos.d/switch-to-anolis.repo (注意,请确保文件名为 switch-to-anolis.repo), 将对应的 repo baseurl 地址改成本地源 repo 地址, 譬如,假设本地源地址为 http:///local.repo.com/anolis , 则配置文件如下

[an8_baseos]

name=AnolisOS-8 - BaseOS

baseurl=http:///local.repo.com/anolis/8/BaseOS/$basearch/os

gpgcheck=0

enabled=1


[an8_appstream]

name=AnolisOS-8 - AppStream

baseurl=http:///local.repo.com/anolis/8/AppStream/$basearch/os

gpgcheck=0

enabled=1

1.执行下面命令进行迁移

centos2anolis.py -l

上述命令是默认迁移到带 ANCK 内核的龙蜥OS,如果你想迁移到带 RHCK 内核的龙蜥OS请执行下面的命令进行迁移

centos2anolis.py -l --rhck

选项二 使用社区 yum 源(mirrors.openanolis.cn) 执行迁移

直接执行下述命令即可

centos2anolis.py

上述命令是默认迁移到带 ANCK 内核的龙蜥OS,如果你想迁移到带 RHCK 内核的龙蜥OS请执行下面的命令进行迁移

centos2anolis.py --rhck

 

迁移完成后,系统会提示如下信息,表示迁移成功,重启即可进入Anolis OS系统。

image.png

centos2anolis.py提供了-V选项,用于记录迁移前后的软件包信息,您可以根据需要判断是否添加选项。添加-V选项,迁移完成后会在/var/tmp目录下生成迁移前后的rpm信息,命名格式为:

# 迁移前 

$(hostname)-rpms-list-before.log 

$(hostname)-rpms-verified-before.log 

# 迁移后 

$(hostname)-rpms-list-after.log 

$(hostname)-rpms-verified-after.log


4 迁移后配置检查

CentOS在2021年12月31号停止维护,相应的CentOS源在2022年1月31号从官网删除,导致CentOS实例无法正常使用repo,阿里云官方给出了切换使用CentOS Vault源的指导:https:///help.aliyun.com/document_detail/405635.html

如果您按照该指导切换使用CentOS Vault源或者自行配置使用Vault源,然后实施迁移Anolis OS,迁移完成后,需要检查当前系统中是否残留CentOS Vault源。

通过命令yum repolist检查:

# yum repolist

Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-Linux-epel.repo; 配置:ID 为 "failovermethod" 的 OptionBinding 不存在

Repository PowerTools is listed more than once in the configuration

Repository AppStream is listed more than once in the configuration

仓库 id                                                               仓库名称

AppStream                                                             AnolisOS-8 - AppStream

BaseOS                                                                AnolisOS-8 - BaseOS

Extras                                                                AnolisOS-8 - Extras

PowerTools                                                            AnolisOS-8 - PowerTools

base                                                                  CentOS-8.5.2111 - Base - mirrors.aliyun.com

epel                                                                  Extra Packages for Enterprise Linux 8 - x86_64

extras                                                                CentOS-8.5.2111 - Extras - mirrors.aliyun.com

如上述结果所示,“CentOS-8.5.2111 - Base - mirrors.aliyun.com”就是残留的CentOS repo,需要删除,否则会出现Anolis OS和CentOS源共存的问题,一旦执行yum update可能会错误地安装CentOS的包。

删除CentOS源的方法和步骤如下:

1.查找提供CentOS repo的配置文件

# grep -rn "CentOS-8.5.2111" /etc/yum.repos.d/*.repo

/etc/yum.repos.d/Centos-vault-8.5.2111.repo:14:name=CentOS-8.5.2111 - Base - mirrors.aliyun.com

/etc/yum.repos.d/Centos-vault-8.5.2111.repo:24:name=CentOS-8.5.2111 - Extras - mirrors.aliyun.com

/etc/yum.repos.d/Centos-vault-8.5.2111.repo:34:name=CentOS-8.5.2111 - Plus - mirrors.aliyun.com

/etc/yum.repos.d/Centos-vault-8.5.2111.repo:43:name=CentOS-8.5.2111 - PowerTools - mirrors.aliyun.com

/etc/yum.repos.d/Centos-vault-8.5.2111.repo:53:name=CentOS-8.5.2111 - AppStream - mirrors.aliyun.com

1.重命名步骤1找到的配置文件

mv /etc/yum.repos.d/Centos-vault-8.5.2111.repo /etc/yum.repos.d/Centos-vault-8.5.2111.repo.bak


5 迁移后验证

查看os版本:

# cat /etc/os-release

NAME="Anolis OS"

VERSION="8.5"

ID="anolis"

ID_LIKE="rhel fedora centos"

VERSION_ID="8.5"

PLATFORM_ID="platform:an8"

PRETTY_NAME="Anolis OS 8.5"

ANSI_COLOR="0;31"

HOME_URL="https:///openanolis.cn/"

通过命令查看当前系统中是否有残留CentOS软件包,如果残留kernel包,为正常现象,kernel包支持多版本共存。

rpm -qa --qf "%{NAME} %{VENDOR}\\\\n" | grep CentOS


6 注意

1)就地迁移失败是否可回滚?

迁移工具不支持回滚,迁移失败无法恢复到迁移初始状态,迁移前务必做好系统备份。


蓝队云官网拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,蓝队云期待与你一起探索。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: