0%

欧拉系统软件包配置迁移测试

第一轮测试

1.mac进入root状态

# 打开终端
sudo -i
# 然后输入本机账号的密码0000

2.mac连接远程服务器

# 先进入root状态
ssh 服务器用户名@ip # ssh rpmtest@172.29.7.204
# 输入服务器连接密码

*查看已安装rpm包 若没有 则安装

rpm -qi 包名
yum list installed|grep dbus #模糊查询
sudo yum install dconf-editor-3.28.0-1.el7 #安装

3.在centos服务器上的test文件夹下运行test.py生成迁移脚本

cd test
ls #查看文件列表
python3 test.py dbus-1.10.24-12.el7.x86_64.rpm x86_64
# 生成对应的.sh和.json文件

4.将.sh发送到欧拉服务器上的test文件夹下

scp dbus-1.10.24-12.el7.x86_64.rpm.sh 172.29.7.209:~/test
# 输入ls 查看有无backup 和 configfile 文件夹

5.在centos服务器上查看对应的.json文件

vim dbus-1.10.24-12.el7.x86_64.rpm x86_64.json
# 输入:
# %! python3 -m json.tool 后输入该条指令将该json文件夹格式化方便查看

6.比对

查看configfile文件夹中修改后的系统配置文件并与backup文件夹中的原文件进行比较,查看修改部分是否同之前的json文件中的内容保持一致(修改后配置项的值应为src_current_value),也可以与对应sh脚本中echo和sed内容进行对比是否一致,若不一致,需记录。

第二轮测试

1.mac进入root状态

# 打开终端
sudo -i
# 然后输入本机账号的密码0000

2.mac连接远程服务器

# 先进入root状态
ssh 服务器用户名@ip # ssh rpmtest@172.29.7.221
# 输入服务器连接密码

3.进入linux的 etc/yum.repos.d 目录

# cd ~    回到根目录
cd /etc/yum.repos.d

4.查看所有可用软件包

# 要测试 clamav-milter-0.103.5-1.el7.x86_64.rpm 包
yum --disablerepo='*' --enablerepo='huawei-*' list clamav-milter --showduplicate
# 结果如下图 说明要降级软件包
image-20220811163753844

5.升级/降级软件包

# 升级
sudo yum upgrade clamav-milter-0.103.5-1.el7

# 降级
sudo yum downgrade clamav-milter-0.103.5-1.el7

# 根据提示信息同时升级/降级软件包依赖(大文件放最后)
sudo yum downgrade python-firewall-0.5.3-5.el7 firewalld-filesystem-0.5.3-5.el7 firewalld-0.5.3-5.el7
image-20220811174709752
# 有其他的包依赖需要降级的这个包,因此两个需要一起downgrade就可以了
sudo yum downgrade cronie-anacron-1.4.11-19.el7 cronie-1.4.11-19.el7

6.备份配置文件

cd ~/test
python3 test.py cronie-1.4.11-19.el7.x86_64.rpm x86_64

image-20220811181850807

  • 第一个是CentOS当前配置文件路径
  • 第二个是CentOS默认配置文件路径
  • 第三个是OpenEuler默认配置文件路径
# 首先以root权限备份CentOS当前配置文件和OpenEuler默认配置文件到backup文件夹对应的子文件夹下。backup文件夹分别有两个子文件夹centos_default\openeuler。backup文件夹分别有两个子文件夹centos_current 、openeuler。
cp -p /usr/lib/systemd/system/crond.service backup/centos_current/
cp -p database/service_and_socket_data/openEuler20.03-SP1/x86_64/everything/service/crond.service backup/openeuler/
# 此时~/test/backup/centos_current/crond.service 和~/test/backup/openeuler/crond.service已经建立

7.修改配置项

sudo vim /usr/lib/systemd/system/crond.service
image-20220811184451341 image-20220811193700367
sudo vim  database/service_and_socket_data/openEuler20.03-SP1/x86_64/everything/service/crond.service
image-20220811193525150

8.在centos服务器上的test文件夹下运行test.py生成迁移脚本

cd test
ls #查看文件列表
python3 test.py cronie-1.4.11-19.el7.x86_64.rpm x86_64
# 生成对应的.sh和.json文件

9.将.sh发送到欧拉服务器上的test文件夹下

scp cronie-1.4.11-19.el7.x86_64.rpm.sh 172.29.7.209:~/test
# 输入ls 查看有无backup 和 configfile 文件夹

10.在centos服务器上查看对应的.json文件

vim dbus-1.10.24-12.el7.x86_64.rpm x86_64.json
# 输入:
# %! python3 -m json.tool 后输入该条指令将该json文件夹格式化方便查看

11.比对

检查OpenEuler服务器上是否有对应版本的rpm包,若没有,则安装。若存在,则复制脚本到OpenEuler服务器,以root权限运行该脚本。脚本会备份要修改的配置文件到同目录下backup文件夹,修改后的配置文件到同目录下configfile文件夹。若有错误日志输出,需记录。

# yum list clamav-milter --showduplicate
# sudo yum install XXX

sudo ./cronie-1.4.11-19.el7.x86_64.rpm.sh

vim backup/crond.service

对比openeuler服务器上backup和configfile目录下配置项的值,是否符合json文件中is_sync为true的配置项

backup为修改前默认配置文件,值是json文件中的openeuler_default_value

configfile为后修改后的配置文件,值是json文件中src_current_value

image-20220811205126703 image-20220811205336588
// src_current_value的值为当前centos环境的配置项值,从环境中查询
// src_default_value的值为centos的rpm包的配置项默认值,从数据库中查询
// openEuler_default_value的值为对应openEuler上rpm包的配置项默认值,从数据库中查询
"crond.service": {
"rpm_name": "cronie-1.4.11-19.el7.x86_64.rpm",
"filename": "crond.service",
"src_os": "centos",
"target_os ": "openeuler",
"arch": "x86_64",
"data": {
"Description": {
"src_current_value": null,
"src_default_value": "Command Scheduler",
"openEuler_default_value": "Command Scheduler",
"is_default_diff": false,
"is_customer_change": true,
"section": "Unit",
"type": "changed",
"is_sync": true
},
"After": {
"src_current_value": null,
"src_default_value": "auditd.service systemd-user-sessions.service time-sync.target",
"openEuler_default_value": "auditd.service nss-user-lookup.target systemd-user-sessions.service time-sync.target ypbind.service autofs.service",
"is_default_diff": true,
"is_customer_change": true,
"section": "Unit",
"type": "changed",
"is_sync": true
},
"insert ": {
"src_current_value": " /usr/sbin/crond -n $CRONDARGS",
"src_default_value": null,
"openEuler_default_value": null,
"is_default_diff": false,
"is_customer_change": true,
"section": "Service",
"type": "changed",
"is_sync": true
},
"insert1": {
"src_current_value": [
" /usr/sbin/crond -n $CRONDARGS",
" /usr/sbin/crond -n $CRONDARGS"
],
"src_default_value": null,
"openEuler_default_value": null,
"is_default_diff": false,
"is_customer_change": true,
"section": "Service",
"type": "changed",
"is_sync": true
},
"alter": {
"src_current_value": " /usr/sbin/crond -n $CRONDARGS",
"src_default_value": null,
"openEuler_default_value": " /etc/sysconfig/crond ",
"is_default_diff": true,
"is_customer_change": true,
"section": "Service",
"type": "add",
"is_sync": true
},
"alter1": {
"src_current_value": [
" /usr/sbin/crond -n $CRONDARGS item1",
" /usr/sbin/crond -n $CRONDARGS item2"
],
"src_default_value": null,
"openEuler_default_value": [
" /etc/sysconfig/crond item1",
" /etc/sysconfig/crond item2"
],
"is_default_diff": true,
"is_customer_change": true,
"section": "Service",
"type": "add",
"is_sync": true
},

12.在完成脚本迁移后,将所有cento中备份的文件恢复到原文件路径

sudo cp -p backup/centos_current/crond.service /usr/lib/systemd/system/
sudo cp -p backup/openeuler/crond.service database/service_and_socket_data/openEuler20.03-SP1/x86_64/everything/service/