目录

  • 一、场景说明
  • 二、开始升级
  • 1.使用ssh工具并使用root用户登陆操作系统
  • 2.检查CentOS版本
  • 3.使用ftp工具将CentOS-7-x86_64-DVD-1810.iso文件上传到/root目录
  • 4.挂载iso文件
  • 5.备份系统repo文件,备份完成后/root目录文件如下图所示
  • 6.编辑本地源repo文件,以下是一条命令,请注意复制整体,按回车执行
  • 7.更新yum缓存
  • 8.更新系统
  • 三、问题来了
  • 异常现象一:
  • 异常现象二:
  • openssl问题:
  • 四、总结

一、场景说明

客户环境有三台服务器都是CentOS 7.4.1708的操作系统,现要升级为Centos 7.6 1810。
但是由于客户环境服务器不能联网,所以只能以挂载ISO镜像作为本地yum源的方式进行升级,下面来讲升级步骤和过程中遇到的问题
阿里云CentOS 7.6 1810的下载地址:
https://mirrors.aliyun.com/centos-vault/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso

二、开始升级

1.使用ssh工具并使用root用户登陆操作系统

2.检查CentOS版本

cat /etc/redhat-release

centos 7 升级Centos 9 centos7.3升级到7.6_服务器

3.使用ftp工具将CentOS-7-x86_64-DVD-1810.iso文件上传到/root目录

4.挂载iso文件

mkdir /mnt/cdrom
cd /root
mount ./CentOS-7-x86_64-DVD-1810.iso /mnt/cdrom

centos 7 升级Centos 9 centos7.3升级到7.6_centos 7 升级Centos 9_02

5.备份系统repo文件,备份完成后/root目录文件如下图所示

centos 7 升级Centos 9 centos7.3升级到7.6_服务器_03

6.编辑本地源repo文件,以下是一条命令,请注意复制整体,按回车执行

cat << EOF > /etc/yum.repos.d/CentOS-Media.repo 
[Media] 
name=CentOS Media 
baseurl=file:///mnt/cdrom 
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 
enabled=1 
EOF

7.更新yum缓存

yum clean all

centos 7 升级Centos 9 centos7.3升级到7.6_重启_04

yum makecache

centos 7 升级Centos 9 centos7.3升级到7.6_centos 7 升级Centos 9_05

8.更新系统

yum update

centos 7 升级Centos 9 centos7.3升级到7.6_centos 7 升级Centos 9_06


centos 7 升级Centos 9 centos7.3升级到7.6_重启_07


centos 7 升级Centos 9 centos7.3升级到7.6_服务器_08


centos 7 升级Centos 9 centos7.3升级到7.6_centos 7 升级Centos 9_09


9.检查CentOS版本,正常情况下如下图已经更新到Centos 7.6 1810

cat /etc/redhat-release

centos 7 升级Centos 9 centos7.3升级到7.6_centos 7 升级Centos 9_10


10.重启服务器,重启好后参考单机环境和集群环境的服务验证流程进行验证

reboot

三、问题来了

正常情况下,使用第二部分的操作是可以直接升级操作系统的,但是由于服务器上部署的程序使用了自己的rpm包,导致这部分rpm包的某些包和CentOS 7.6的包存在冲突。
以下整理了两种异常类型和一个openssl引发的问题:

异常现象一:

错误:软件包:xxxx(installed)
      需要:xxxx
      正在删除:xxxx
      更新:xxxx

centos 7 升级Centos 9 centos7.3升级到7.6_CentOS_11


解决思路就是先卸载,升级完操作系统后再安装新版本

以上图为例我们需要先卸载ntp包

# 卸载ntp
yum remove -y ntp-4.2.6p5-22.el7.centos.x86_64
# 升级操作系统
yum update
# 安装新版本ntp
yum install -y ntp-4.2.6p5-28.el7.centos.x86_64

具体每个服务器都不一样,总体思路就是先卸载,卸载到yum update可以正常运行即可,系统升级完成后再将需要安装的新版本安装即可。

异常现象二:

错误:软件包:xxxx
      需要:xxxx

centos 7 升级Centos 9 centos7.3升级到7.6_CentOS_12


这种由于没有指定具体版本的冲突,我这边没有处理,还是按照现象一的方案卸载掉在更新操作系统,只不过没办法安装指定的新版本

openssl问题:

centos 7 升级Centos 9 centos7.3升级到7.6_CentOS_13


openssl是一个比较核心的系统运行库,还是一样的方案,先卸载。

yum remove -y openssl-1.0.2q-1.x86_64

但是卸载完成后出现了一个很严重的问题,yum命令直接用不了了,不要急,由于我们挂载的是DVD版本的系统镜像,我们可以从镜像的Packages中找到对应的rpm包直接安装

cd /mnt/cdrom/Packages
rpm -ivh openssl-1.0.2k-16.el7.x86_64.rpm openssl-libs-1.0.2k-16.el7.x86_64.rpm

此时yum命令已经恢复了,但是新的问题来了,如果此时重启操作系统会发现ssh连不上了,不要问我为什么知道。其实卸载openssl的时候已经告诉我们openssh已经连着一块卸载了,只是当时没有注意看。
所以我们现在要将openssh先安装回来在重启服务器验证

# 安装openssh
yum install -y openssh-server
# 启动ssh
systemctl enable sshd
service sshd start

此时就可以重启服务器了。其实应该是不用重启服务器的,但是为了保险还是做了一下重启(不然ssh连接不了的问题就发现不了了0.0)

cat /etc/redhat-release
reboot

四、总结

1、如果是一个纯净的系统按照第二节操作就可以完成了;
2、如果使用了自己下载安装的rpm包需要先卸载掉才能升级操作系统;
3、除了卸载和升级还需要注意卸载会引发的问题,比如文中提到的openssl的问题。再加个例子:mysql的包冲突了,那能直接卸载吗?肯定不能,要注意先备份数据库在执行操作;
4、如果是虚拟机环境可以注意做一下快照,出了问题还可以拯救一下;
5、升级有风险,操作需谨慎,能不升就不升。

从一个菜鸟进阶成一个老菜鸟