本例通过x2openEuler,完成一次Centos 8 stream迁移到openEuler22.03-LTS的原地在线测试评估任务。
1、登录到x2openEuler,点击新建任务--系统信息收集评估测试,弹出如下窗口:
2、简单说明如下:
参数 |
说明 |
SSH传输须知 |
节点管理使用服务器默认的SSH传输通道,为了保护数据的安全完整,建议使用安全的ssh服务,如使用安全的ssh版本,配置使用安全的加密算法等。 |
待升级节点IP |
源节点IP地址。 说明: 源节点与部署openEuler web工具的环境需要保持可联通状态。 |
节点别名 |
源节点别名,该别名用于标记该节点用途。 |
端口 |
登录源节点的SSH协议端口。 |
用户名 |
登录源节点的用户名。 |
认证方式 |
密钥认证:通过私钥文件和私钥文件的密码短语进行认证。
说明:
|
口令认证:通过口令进行认证。 口令:登录源节点的密码口令。 说明:
|
|
源节点普通用户的密码 |
|
root密码 |
源节点root用户的密码 |
源操作系统版本 |
源节点操作系统版本,当前支持以下操作系统:
|
目标操作系统版本 |
openEuler20.03-LTS-SP1 |
repo源名称 |
输入已配置的repo源名称或单击右侧“选择”进行选择已配置的待升级节点在升级过程中需要的repo源,可参考进行配置repo源配置。 |
业务软件 |
须知:
|
3、参照说明进行配置,此处IP我打码了,请以自己实际的IP为准。
4、注意源系统选项没有Centos 8 stream,目标系统也没有openEuler22.03-LTS,需参照以下选择。
5、添加repo源,挂载内网openEuler22.03源,如下
6、填写业务软件信息(实测如果本地源中没有业务软件openEuler22.03-LTS现成的包,填了就无法测试通过,详见后面的填坑经历)。
7、下一步,直接确认。
8、测试任务已建立完成。
1、确定任务后开始进行连通性测试,显示测试未通过,如下:
详情显示远程登录失败,检查发现远程主机未开放管理机的端口访问权限,在远程主机上开放访问权限。
2、再次测试,报repo源连通检查失效:
检查日志
cat /usr/local/x2openEuler/portal/logs/task_manager.log
报错信息如下:
经排查系/opt/x2openEuler被笔者无意识移走了所致,还原后再次检查,连通性测试正常了。
1、在任务上点开始,进行收集和评估测试,继续报错,显示安装失败:
2、点击右边的下载环境信息和日志,检查发现x2openEuler-client-2.0.0-2.noarch安装有依赖包装不上:
2023-01-17 16:12:05 Tue|9846:140439092934400|deploy_x2_client_mixin.py:102|_install_x2_client|ERROR|$?"\r\n错误:\r\n 问题: conflicting requests\r\n - nothing provides binutils needed by x2openEuler-client-2.0.0-2.noarch\r\n(尝试添加 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)
2023-01-17 16:12:05 Tue|9846:140439092934400|deploy_x2_client_mixin.py:103|_install_x2_client|ERROR|failed to install x2openEuler-client
3、配置目标机的yum源为其当前操作系统正确的源,再点重试。
2023-01-17 16:15:12 Tue|9879:140439092934400|deploy_x2_client_mixin.py:132|_deploy_x2_client|INFO|x2openEuler-client is deployed on (zabbixdb 192.168.188.246:4422) node successfully
2023-01-17 16:15:12 Tue|9879:140439092934400|upgrade_check_start_check_actor.py:291|_collect_conflict_info|INFO|=== [conflict collect] start to execute x2openEuler-client upgrade-check-collect ===
2023-01-17 16:15:12 Tue|9879:140439092934400|upgrade_check_start_check_actor.py:316|_collect_conflict_info|ERROR|collect conflict information failed
2023-01-17 16:15:12 Tue|9879:140439092934400|upgrade_check_start_check_actor.py:317|_collect_conflict_info|ERROR|$?"\r\n-bash: /usr/bin/x2openEuler-client: /usr/bin/python: 解释器错误: 没有那个文件或目录\r\n
2023-01-17 16:15:12 Tue|9879:140439092934400|upgrade_check_start_check_actor.py:319|_collect_conflict_info|ERROR|the conflict information collection phase is complete, start to update database
2023-01-17 16:15:12 Tue|7527:140439084541696|task_scheduler.py:181|task_update|INFO|Node[1] current step[check] result is: check_outage.
继续报错,日志显示 /usr/bin/python: 解释器错误: 没有那个文件或目录。检查目标主机,有python3,但没有链接为 /usr/bin/python,复制/usr/bin/python3为/usr/bin/python
[root@CT-ZBXDB-10 opt]# which python
/usr/bin/which: no python in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@CT-ZBXDB-10 opt]# which python3
/usr/bin/python3
[root@CT-ZBXDB-10 opt]# ll /usr/bin/python3
lrwxrwxrwx 1 root root 25 8月 13 2021 /usr/bin/python3 -> /etc/alternatives/python3
[root@CT-ZBXDB-10 opt]# cp /usr/bin/python3 /usr/bin/python
4、再次重试,依旧报错,提示软件冲突检查执行失败:
点击下载环境信息和日志,可以看到以下最新出错日志
2023-01-17 16:28:28,075 - Client_IP:UNKNOWN - USER_ID:1003 - UUID:e14e2fb2-9640-11ed-8f4f-005056adcb29 - ERROR - Abnormal exit, error: /etc/x2openEuler/database_2.0.0.630/CentOS Stream 8/x86_64/primary not exists, please check whether the database is imported
可以看到系因为源系统为CentOS Stream 8,任务中无法选到CentOS Stream 8,选的centos8.2,导致检查脚本目录和源系统对不上,手动更改检查脚本目录名
[root@localhost yum.repos.d]# cd /etc/x2openEuler/
[root@localhost x2openEuler]# ll
总用量 36K
dr-xr-x---. 5 x2openEuler x2openEuler 112 1月 17 10:07 config
dr-xr-x---. 9 x2openEuler x2openEuler 207 1月 17 10:07 database_2.0.0.630
-r--r-----. 1 x2openEuler x2openEuler 35K 12月 28 16:10 x2openEuler-client-2.0.0-2.noarch.rpm
[root@localhost x2openEuler]# cd database_2.0.0.630/
[root@localhost database_2.0.0.630]# ll
总用量 0
dr-xr-x---. 3 x2openEuler x2openEuler 72 1月 17 10:07 centos6.8
dr-xr-x---. 4 x2openEuler x2openEuler 76 1月 17 10:07 centos6.8-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 87 1月 17 10:07 centos7.6
dr-xr-x---. 5 x2openEuler x2openEuler 91 1月 17 10:07 centos7.6-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 87 1月 17 10:07 centos8.2
dr-xr-x---. 5 x2openEuler x2openEuler 91 1月 17 10:07 centos8.2-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 113 1月 17 10:07 openEuler20.03-LTS-SP1
[root@localhost database_2.0.0.630]# cp -ar centos8.2 'CentOS Stream 8'
[root@localhost database_2.0.0.630]# ll
总用量 0
dr-xr-x---. 3 x2openEuler x2openEuler 72 1月 17 10:07 centos6.8
dr-xr-x---. 4 x2openEuler x2openEuler 76 1月 17 10:07 centos6.8-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 87 1月 17 10:07 centos7.6
dr-xr-x---. 5 x2openEuler x2openEuler 91 1月 17 10:07 centos7.6-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 87 1月 17 10:07 centos8.2
dr-xr-x---. 5 x2openEuler x2openEuler 91 1月 17 10:07 centos8.2-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 87 1月 17 10:07 'CentOS Stream 8'
dr-xr-x---. 4 x2openEuler x2openEuler 113 1月 17 10:07 openEuler20.03-LTS-SP1
[root@localhost database_2.0.0.630]# cp -ar centos8.2-openEuler20.03-LTS-SP1 'CentOS Stream 8-openEuler20.03-LTS-SP1'
[root@localhost database_2.0.0.630]# ll
总用量 0
dr-xr-x---. 3 x2openEuler x2openEuler 72 1月 17 10:07 centos6.8
dr-xr-x---. 4 x2openEuler x2openEuler 76 1月 17 10:07 centos6.8-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 87 1月 17 10:07 centos7.6
dr-xr-x---. 5 x2openEuler x2openEuler 91 1月 17 10:07 centos7.6-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 87 1月 17 10:07 centos8.2
dr-xr-x---. 5 x2openEuler x2openEuler 91 1月 17 10:07 centos8.2-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 87 1月 17 10:07 'CentOS Stream 8'
dr-xr-x---. 5 x2openEuler x2openEuler 91 1月 17 10:07 'CentOS Stream 8-openEuler20.03-LTS-SP1'
dr-xr-x---. 4 x2openEuler x2openEuler 113 1月 17 10:07 openEuler20.03-LTS-SP1
[root@localhost database_2.0.0.630]#
5、再次测试,继续报错“收集与评估中断,中断原因还是:软件冲突检查执行失败”
排查日志,报错信息如下,系检查脚本找不到:
2023-01-17 16:48:07,056 - Client_IP:UNKNOWN - USER_ID:1003 - UUID:9ff5d224-9643-11ed-8dc2-005056adcb29 - INFO - relationship file path :
2023-01-17 16:48:07,060 - Client_IP:UNKNOWN - USER_ID:1003 - UUID:9ff5d224-9643-11ed-8dc2-005Ce056adcb29 - ERROR - Abnormal exit, error: /etc/x2openEuler/database_2.0.0.630/CentOS Stream 8/CentOS Stream 8.json is not exist
2023-01-17 16:48:07,060 - Client_IP:UNKNOWN - USER_ID:1003 - UUID:9ff5d224-9643-11ed-8dc2-005056adcb29 - INFO - Analyse finished, total 0 items, 0 success, 0 failed
手动更改检查脚本文件名:
[root@localhost database_2.0.0.630]# cd CentOS\ Stream\ 8
[root@localhost CentOS Stream 8]# ll
总用量 4.4M
dr-xr-x---. 4 x2openEuler x2openEuler 38 1月 17 10:07 aarch64
-r--r-----. 1 x2openEuler x2openEuler 1.9M 12月 28 00:00 centos8.2.json
-r--r-----. 1 x2openEuler x2openEuler 2.5M 12月 28 00:00 centos8.2-service.json
dr-xr-x---. 4 x2openEuler x2openEuler 38 1月 17 10:07 x86_64
[root@localhost CentOS Stream 8]# mv centos8.2.json 'CentOS Stream 8'.json
[root@localhost CentOS Stream 8]# mv centos8.2-service.json 'centos Stream 8'-service.json
[root@localhost CentOS Stream 8]# ll
总用量 4.4M
dr-xr-x---. 4 x2openEuler x2openEuler 38 1月 17 10:07 aarch64
-r--r-----. 1 x2openEuler x2openEuler 1.9M 12月 28 00:00 'CentOS Stream 8.json'
-r--r-----. 1 x2openEuler x2openEuler 2.5M 12月 28 00:00 'centos Stream 8-service.json'
dr-xr-x---. 4 x2openEuler x2openEuler 38 1月 17 10:07 x86_64
[root@localhost database_2.0.0.630]# ll
总用量 0
dr-xr-x---. 3 x2openEuler x2openEuler 72 1月 17 10:07 centos6.8
dr-xr-x---. 4 x2openEuler x2openEuler 76 1月 17 10:07 centos6.8-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 87 1月 17 10:07 centos7.6
dr-xr-x---. 5 x2openEuler x2openEuler 91 1月 17 10:07 centos7.6-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 87 1月 17 10:07 centos8.2
dr-xr-x---. 5 x2openEuler x2openEuler 91 1月 17 10:07 centos8.2-openEuler20.03-LTS-SP1
dr-xr-x---. 4 x2openEuler x2openEuler 99 1月 17 16:54 'CentOS Stream 8'
dr-xr-x---. 5 x2openEuler x2openEuler 91 1月 17 10:07 'CentOS Stream 8-openEuler20.03-LTS-SP1'
dr-xr-x---. 4 x2openEuler x2openEuler 113 1月 17 10:07 openEuler20.03-LTS-SP1
[root@localhost database_2.0.0.630]# cd 'CentOS Stream 8-openEuler20.03-LTS-SP1'
[root@localhost CentOS Stream 8-openEuler20.03-LTS-SP1]# ll
总用量 1.4M
dr-xr-x---. 2 x2openEuler x2openEuler 114 1月 17 10:07 aarch64
-r--r-----. 1 x2openEuler x2openEuler 1.4M 12月 28 00:00 centos8.2-openEuler20.03-LTS-SP1.json
dr-xr-x---. 2 x2openEuler x2openEuler 31 1月 17 10:07 jdk
dr-xr-x---. 2 x2openEuler x2openEuler 114 1月 17 10:07 x86_64
[root@localhost CentOS Stream 8-openEuler20.03-LTS-SP1]# mv centos8.2-openEuler20.03-LTS-SP1.json 'CentOS Stream 8'-openEuler20.03-LTS-SP1.json
[root@localhost CentOS Stream 8-openEuler20.03-LTS-SP1]# ll
总用量 1.4M
dr-xr-x---. 2 x2openEuler x2openEuler 114 1月 17 10:07 aarch64
-r--r-----. 1 x2openEuler x2openEuler 1.4M 12月 28 00:00 'CentOS Stream 8-openEuler20.03-LTS-SP1.json'
dr-xr-x---. 2 x2openEuler x2openEuler 31 1月 17 10:07 jdk
dr-xr-x---. 2 x2openEuler x2openEuler 114 1月 17 10:07 x86_64
[root@localhost CentOS Stream 8-openEuler20.03-LTS-SP1]# tree x86_64/
x86_64/
├── centos8.2-openEuler20.03-LTS-SP1.sqlite
├── centos8.2.sqlite
└── openEuler20.03-LTS-SP1.sqlite
0 directories, 3 files
[root@localhost CentOS Stream 8-openEuler20.03-LTS-SP1]# cd x86_64/
[root@localhost x86_64]# mv centos8.2.sqlite 'CentOS Stream 8.sqlite'
[root@localhost x86_64]# mv centos8.2-openEuler20.03-LTS-SP1.sqlite 'CentOS Stream 8'-openEuler20.03-LTS-SP1.sqlite
[root@localhost x86_64]# tree
.
├── CentOS Stream 8-openEuler20.03-LTS-SP1.sqlite
├── CentOS Stream 8.sqlite
└── openEuler20.03-LTS-SP1.sqlite
0 directories, 3 files
6、继续测试,再次报错,日志显示没有软件包提供:
timescaledb-tools-0.14.1-0.el8.x86_64 are saved: /opt/x2openEuler/output/upgrade-check/179bfece-9645-11ed-80ec-005056adcb29/software_relation/timescaledb-tools-0.14.1-0.el8.x86_64.json
2023-01-17 17:01:20,490 - Client_IP:UNKNOWN - USER_ID:1003 - UUID:179bfece-9645-11ed-80ec-005056adcb29 - INFO - Relationship for 没有软件包提供 (NetworkManager are saved: /opt/x2openEuler/output/upgrade-check/179bfece-9645-11ed-80ec-005056adcb29/software_relation/没有软件包提供 (NetworkManager.json
"error_information": [
{
"src_pkg": "postgresql14-server-14.5-1PGDG.rhel8.x86_64",
"dest_pkg": "",
"conflict_details": "libicu-60.3-2.el8_1.x86_64: libicui18n.so.60()(64bit), libicu-60.3-2.el8_1.x86_64: libicuuc.so.60()(64bit), openldap-2.4.46-17.el8_4.x86_64: libldap-2.4.so.2()(64bit)",
"conflict_type": "require_missing",
"level": 3
},
{
"src_pkg": "postgresql14-libs-14.5-1PGDG.rhel8.x86_64",
"dest_pkg": "",
"conflict_details": "openldap-2.4.46-17.el8_4.x86_64: libldap_r-2.4.so.2()(64bit)",
"conflict_type": "require_missing",
"level": 3
},
{
"src_pkg": "postgresql14-14.5-1PGDG.rhel8.x86_64",
"dest_pkg": "",
"conflict_details": "readline-7.0-10.el8.x86_64: libreadline.so.7()(64bit)",
"conflict_type": "require_missing",
"level": 3
},
没有可用postgresql14相关软件包,检测失败,经查openEuler22.03-LTS就没有postgresql14的包,只有postgresql-server-13.3-5的包。
7、点击任务,初始化,这时候会重新将任务回到配置状态,修改任务去除业务软件中填的的rpm包等信息,重新输入目标机相关密码,保存任务
8、重新开始测试,因为其它参数前面都已经测试过了,所以很快就报测试通过,此时点击开始
再次进入收集与评估
9、此时评估通过,软件依赖关系图如下
硬件兼容性评估报告如下
软件冲突检查报告
至此,Centos 8 stream迁移到openEuler22.03-LTS的在线测试评估完成。