CentOS 8迁移Anolis OS 8

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系统。

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 FAQ

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

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

2)迁移出现问题怎么办?

a. 先在龙蜥社区知识库查看是否有同样的问题。

b. 保存迁移工具执行报错信息,并提供初始系统信息(系统版本,内核,软件包列表等等),附上迁移日志文件/var/log/centos2anolis.log,及时与我们联系获取帮助。


已有 0 条评论

    欢迎您,新朋友,感谢参与互动!