两步将 CentOS 6.0 原地升级并迁移至 RHEL 7.9

《OpenShift / RHEL / DevSecOps 汇总目录》

说明

  1. 本文介绍如何将一个 CentOS 6.0 的系统升级并转换迁移到 RHEL 7.9。
    在这里插入图片描述

  2. 本文是《在离线环境中将 CentOS 7.X 原地升级并迁移至 RHEL 7.9》阶进篇。

  3. 所有被测软件的验证操作可参见上述前文中对应章节的说明。

准备 CentOS 6.0 及其他被验证软件

下载 CentOS 和 RHEL 的 ISO 介质

下载 CentOS 6.0 、RHEL 6.10、RHEL 7.9 的 ISO 文件。

准备 CentOS 6.0

  1. 在测试 VM 中使用 ISO 最小化安装 CentOS 6.0。注意:将网卡配置为开机启动,并在安装完后的初始启动时配置窗口中关闭防火墙。
  2. 由于在下载被验证软件时很多网站已不支持 CentOS 6.0 的 TLS1.0 和 TLS1.1 协议,因此需要先用 RHEL 6.10 的介质单独升级 openssl。
  3. 先将 RHEL 6.10 的 ISO 分配给 VM 的第一个 IDE 光驱设备,然后再执行命令挂载 RHEL 6.10 到指定目录,最后创建 RHEL 6 的 Yum Repo。
$ mkdir /mnt/rhel6
$ mount /dev/sr0 /mnt/rhel6
$ cat > /etc/yum.repos.d/rhel6-local.repo << EOF 
[rhel6-local-repo]
name = rhel6 local repo
baseurl=file:///mnt/rhel6
enabled=1
gpgcheck=0
EOF
  1. 执行命令升级 openssl。
$ yum update -y openssl
  1. 将 CentOS 6.0 的 ISO 挂载到主机中,然后依此创建 CentOS 6 的 Yum Repo。
$ umount /mnt/rhel6
$ mkdir /mnt/centos6
$ mount /dev/sr0 /mnt/centos6
$ cat > /etc/yum.repos.d/centos6-local.repo << EOF 
[centos6-local-repo]
name = centos6 local repo
baseurl=file:///mnt/centos6
enabled=1
gpgcheck=0
EOF

docker 1.7.1

注意:由于 CentOS 6.0 发布的时间在 2011 年,因此没有找到 CentOS 6.0 上可用的 docker 安装包。以下 Docker 1.7.1 可在稍晚的 CentOS 6.x 中作为验证环境。

执行以下命令,安装 Docker 环境。

wget https://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/6/Packages/docker-engine-1.7.1-1.el6.x86_64.rpm --no-check-certificate
rpm -ivh docker-engine-1.7.1-1.el6.x86_64.rpm
service docker start
service docker status

mysql 5.1.47

  1. 执行命令,安装 CentOS 6.0 内置的 mysql 5.1.47。
yum install mysql
chkconfig mysqld on
service mysqld start
service mysqld status
  1. 参照前文登录 mysql,然后创建数据库、表并添加数据。

postgresql 8.4.4

  1. 执行命令,安装 CentOS 6.0 内置的 postgresql 8.4.4。
yum -y install postgresql postgresql-libs postgresql-plperl postgresql-plpython postgresql-server
service postgresql initdb
chkconfig postgresql on
service postgresql start
service postgresql status
  1. 参照前文登录 postgresql,然后创建用户、数据库、表并添加数据。

mongodb 4.2.25

  1. 执行命令,创建安装 mongodb 用的 Repo。
$ cat > /etc/yum.repos.d/mongodb.repo << EOF 
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=0
enabled=1
EOF
  1. 安装 mongodb。
yum install -y mongodb-org
service mongod start
service mongod status
  1. 参照前文向 mongodb 添加数据。

redis 3.2.8

说明:采用编译源码方式安装 redis。

  1. 安装编译环境。
yum install make gcc tcl -y
  1. 下载 redis 源码,然后编译。
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar -xvzf redis-3.2.8.tar.gz
cd redis-3.2.8
make
make install
  1. 使用默认配置安装 redis。
cd utils
./install_server.sh
service redis_6379 status
redis-cli --version
  1. 参照前文向 redis 添加数据。

rabbitmq 3.7.10

  1. 下载并安装 rabbitmq 及其依赖包。
wget --content-disposition "https://packagecloud.io/rabbitmq/erlang/packages/el/6/erlang-21.3.8.18-1.el6.x86_64.rpm/download.rpm?distro_version_id=27"
rpm -ivh erlang-21.3.8.18-1.el6.x86_64wget https://www.rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/socat-1.7.1.3-1.el6.rf.x86_64.rpm --no-check-certificate
rpm -ivh socat-1.7.1.3-1.el6.rf.x86_64.rpmwget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.10/rabbitmq-server-3.7.10-1.el6.noarch.rpm --no-check-certificate -O rabbitmq-server-3.7.10-1.el6.noarch.rpm
rpm -ivh rabbitmq-server-3.7.10-1.el6.noarch.rpm
  1. 启动 rabbitmq。
service rabbitmq-server start
service rabbitmq-server status
  1. 安装 rabbitmq 的管理控制台,并初始化用户。
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl add_user admin password
rabbitmqctl set_user_tags admin administrator
  1. 参照前文访问 rabbitmq 控制台。

Oracle 12.1.0.2

  1. 安装必要的依赖环境。
yum install compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel libXext libXtst  libXau libxcb libXi make sysstat unixODBC unixODBC-devel compat-libcap1 -y
  1. 准备必要的用户、目录并分配权限。
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oraclemkdir /u01 
mkdir /u02
chown -R oracle:oinstall /u01
chown -R oracle:oinstall /u02
chmod -R 775 /u01 
chmod -R 775 /u02
chmod g+s /u01 
chmod g+s /u02
  1. 如果不用 DNS 解析,执行以下命令将主机名和 IP 添加到 /etc/hosts 中。
ifconfig | grep eth -A 2|grep "inet addr" | cut -d: -f2 | awk '{ print $1 "\t" "'''$HOSTNAME'''"}' >> /etc/hosts
  1. 准备安装介质。
unzip ~/V46095-01_1of2.zip -d /stage/
unzip ~/V46095-01_2of2.zip -d /stage/
chown -R oracle:oinstall /stage/
  1. 安装数据库并创建实例。说明:具体安装步骤可参见《在离线环境中将 CentOS 7.X 原地升级并迁移至 RHEL 7.9》的相关章节。
$ su - oracle
$ export DISPLAY=<CLIENT-HOST-IP>:0.0
$ /stage/database/runInstaller
  1. 参照前文访问 Oracle 实例,并查询测试表数据。

CentOS 6.0 到 RHEL 6.10 升级转换

安装 conver2rhel

  1. 下载并安装 convert2rhel 依赖包。由于部分依赖包不在 CentOS 6.0 中,因此可以从 https://access.redhat.com/downloads/content/69/ver=/rhel—6/6.10/x86_64/packages 网站下载以下离线包,然后安装。
rpm -ivh ~/conver2rhel/python-six-1.9.0-2.el6.noarch.rpm
rpm -ivh ~/conver2rhel/virt-what-1.11-1.3.el6.x86_64.rpmrpm -ivh ~/conver2rhel/m2crypto-0.20.2-7.el6.x86_64.rpm
rpm -ivh ~/conver2rhel/pexpect-2.3-6.el6.noarch.rpm               
rpm -ivh ~/conver2rhel/python-decorator-3.0.1-3.1.el6.noarch.rpm  
rpm -ivh ~/conver2rhel/python-dmidecode-3.10.12-1.el6.x86_64.rpm
  1. 下载并安装 convert2rhel。注意:由于 CentOS 6 已经停更,因此较新版的 convert2rhel 已不支持 CentOS 6 迁移转换了,为此本文使用了较早版本的 convert2rhel。另外较早的 convert2rhel 还支持一步操作完成 CentOS 版本升级 + RHEL 迁移转换。
wget https://github.com/oamg/convert2rhel/releases/download/v0.18/convert2rhel-0.18-1.el6.noarch.rpm -O ~/conver2rhel/convert2rhel-0.18-1.el6.noarch.rpm --no-check-certificate
rpm -ivh ~/conver2rhel/convert2rhel-0.18-1.el6.noarch.rpm

CentOS 6.0 到 RHEL 6.10 升级转换

  1. 将 RHEL 6.10 的 ISO 分配给 VM 的第一个 IDE 光驱设备,然后将其挂载到 /mnt/rhel6。
umount /mnt/centos6
mount /dev/sr0 /mnt/rhel6
  1. 查看升级转换前系统中各软件包的供应商。注意:convert2rhel 只转换由 CentOS 供应的软件。
rpm -qa --queryformat '%{vendor}:%{name}\n' | sort
  1. 执行命令将 CentOS 6.0 升级并转换到 RHEL 6.10。
convert2rhel --disable-submgr --enablerepo=rhel6-local-repo --no-rpm-va -y
  1. 完成后重启系统。
  2. 查看升级转换后系统中各软件包的供应商,确认 CentOS 都已变为 Red Hat, Inc.
rpm -qa --queryformat '%{vendor}:%{name}\n' | sort

验证

根据《在离线环境中将 CentOS 7.X 原地升级并迁移至 RHEL 7.9》验证各软件是否可正常使用。

注意:由于在准备环境过程中 postgresql 和 mysql 使用的是 CentOS 自带的软件,因此它们也会在 CentOS 升级过程中随之升级(postgresql 升级至 8.4.20,mysql 升级到 5.1.73)。而其他软件使用的是非 CentOS 自带软件,因此它们的版本不受 Linux 升级的影响。

RHEL6.10 到 RHEL7.9 升级

安装原地升级程序

  1. 从 https://access.redhat.com/downloads/content/69/ver=/rhel—6/6.10/x86_64/packages 下载以下原地升级程序相关的软件包到 ~/rhel6-rhel7-preupgrade/ 目录中。
preupgrade-assistant                              
preupgrade-assistant-el6toel7                        
preupgrade-assistant-el6toel7-data                 
redhat-upgrade-tool
fakeroot                                            
fakeroot-libs                                         
openscap
openscap-engine-sce
openscap-scanner
openscap-utils
pykickstart
redhat-rpm-config
rpm-build
rpmdevtools
  1. 确保当前只有 RHEL 6.10 的 Repo 有效,然后安装以上软件包。
mount /dev/sr0 /mnt/rhel6
mv /etc/yum.repos.d/centos6-local.repo /etc/yum.repos.d/centos6-local.repo.bak
yum localinstall ~/rhel6-rhel7-preupgrade/*

RHEL 6.10 到 RHEL 7.9 升级

  1. 将 RHEL 7.9 的 ISO 分配给 VM 的第一个 IDE 光驱设备,然后将其挂载到 /mnt/rhel7,最后创建 rhel7 的 Yum Repo。
umount /mnt/rhel6
mv /etc/yum.repos.d/rhel6-local.repo /etc/yum.repos.d/rhel6-local.repo.bak
mkdir /mnt/rhel7
mount /dev/sr0 /mnt/rhel7
cat > /etc/yum.repos.d/rhel7-local.repo << EOF 
[rhel7-local-repo]
name = rhel7 local repo
baseurl=file:///mnt/rhel7
enabled=1
gpgcheck=0
EOF
  1. 执行预升级。
preupg
  1. 完成后可在 ~/preupgrade 中查看执行评估生成的相关文件。
ll ~/preupgrade
total 2104
drwxr-xr-x.  5 root root   4096 May 15 08:54 cleanconf
drwxr-xr-x.  2 root root   4096 May 15 08:53 common
drwxr-xr-x.  5 root root   4096 May 15 08:59 dirtyconf
drwxr-xr-x.  3 root root   4096 May 15 08:55 etc
drwxr-xr-x.  2 root root   4096 May 15 08:53 hooks
drwxr-xr-x.  2 root root   4096 May 15 09:00 kickstart
drwxr-xr-x.  2 root root   4096 May 15 08:55 noauto_postupgrade.d
drwxr-xr-x.  2 root root   4096 May 15 08:55 pkgdowngrades
drwxr-xr-x.  2 root root   4096 May 15 08:53 postmigrate.d
drwxr-xr-x. 14 root root   4096 May 15 09:00 postupgrade.d
drwxr-xr-x.  2 root root   4096 May 15 09:00 preupgrade-scripts
-rw-r--r--.  1 root root 642236 May 15 09:00 preupg_results-240515090037.tar.gz
-rw-r--r--.  1 root root   6383 May 15 08:53 README
-rw-r--r--.  1 root root 742570 May 15 09:00 result.html
-rw-r--r--.  1 root root 706045 May 15 09:00 result.xml
drwxr-xr-x. 16 root root   4096 May 15 08:54 RHEL6_7
  1. 打开 result.html 文件,可查看评估报告详细内容。
    在这里插入图片描述
  2. 执行强制升级。
redhat-upgrade-tool --device /mnt/rhel7 --cleanup-post -f
  1. 升级准备好后系统会自动重启进行升级操作,升级完成后还会重启一次。
    在这里插入图片描述

验证

根据《在离线环境中将 CentOS 7.X 原地升级并迁移至 RHEL 7.9》验证各软件是否可正常使用。

注意:由于 postgresql 和 mysql 使用的是 CentOS 自带的软件,它们会在 CentOS 升级过程中版本随之升级,因此可能需要进行以下单独处理。而其他软件使用的是非 CentOS 自带软件,因此它们的版本不受 Linux 升级的影响。

mysql

注意:RHEL6.10 内置的 mysql 5.1.73 在升到 RHEL 6.10 后会被升级到社区版 mariadb 5.5.68。

  1. 启动 mariadb 服务。
systemctl status mariadb
systemctl start mariadb
  1. 参照前文 mysql 部分,先登录 mariadb 实例,然后查询测试表数据。

postgresql

注意:在从 RHEL 6.10 升级到 RHEL 7.9 后,postgresql 程序的版本会从 8.4.4 升级到 9.2.24。在升级后还需手动对数据库格式进行单独的升级。

  1. 下载 postgresql 9.2.24 的升级程序包。
wget https://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/postgresql-upgrade-9.2.24-4.el7_8.x86_64.rpm
yum localinstall postgresql-upgrade-9.2.24-4.el7_8.x86_64.rpm
  1. 对 postgresql 数据库进行升级,然后启动 postgresql 即可。
postgresql-setup upgrade
systemctl start postgresql
systemctl status postgresql
  1. 参照前文 postgresql 部分,查询测试表数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1424986.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

语言模型测试系列【8】

语言模型 文心一言星火认知大模型通义千问豆包360智脑百川大模型腾讯混元助手Kimi Chat商量C知道 这次的测试比较有针对性&#xff0c;是在使用钉钉新推出的AI助理功能之后发现的问题&#xff0c;即创建AI助理绑定自己钉钉的知识库进行问答&#xff0c;其中对于表结构的文档学…

【echart】实现echart图的富文本样式

贴源码 let xData [山西,山东,内蒙,甘肃];let averData [2, 3,1, 3];var eicon path://M480.55,252.18L318.88,498.04c-15.95,24.25,1.08,56.57,30.11,57.12l147,2.79L448.5,696.92c-14.74,43.15,39.88,75.83,70.93,42.44l216.73-233.04c21.93-23.58,5.21-61.98-27-61.98H56…

【面试干货】 两个有序数组的合并排序

【面试干货】 两个有序数组的合并排序 1、实现思想2、代码实现 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、实现思想 使用两个指针分别指向两个数组的起始位置&#xff0c;然后逐个比较两个指针所指向的元素&#xff0c;将较小的元素…

【IoTDB 线上小课 03】时序数据库 VS 实时数据库,区别是?

好评满满的【IoTDB 视频小课】系列又来了~ 关于 IoTDB&#xff0c;关于物联网&#xff0c;关于时序数据库&#xff0c;关于开源... 你想学习的重点&#xff0c;给我们 3-5 分钟&#xff0c;清晰地讲给你听&#xff1a; 时序数据库 VS 实时数据库 工业数字化转型愈发受到重视的当…

OpenAI 发布 GPT-4o,再次巩固行业地位!

5 月 14 日凌晨 1 点&#xff08;太平洋时间上午 10 点&#xff09;&#xff0c;OpenAI 发布了其最新的 GPT-4o&#xff0c;再次巩固了其在人工智能领域的领导地位。这次发布不仅仅是一个产品的推出&#xff0c;更是向世界宣告 AI 技术已迈入一个全新的纪元。OpenAI 的 CEO 萨姆…

本机搭建RabbitMQ

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、下载安装包&#xff0c;搭建过程 二、重要概念介绍 三、创建用户 方式一&#xff1a;命令行 方式二&#xff1a;管理后台 3.1 创建用户 3.2 分配权限 3.3 提…

小程序|锁定查询功能如何使用?

学生或家长想要实现自己查询完成后&#xff0c;任何人都无法再次查询&#xff0c;老师应该如何设置&#xff1f;易查分的【锁定查询功能】就可实现&#xff0c;下面教大家如何使用吧。 &#x1f4cc;使用教程 &#x1f512;锁定查询功能介绍 ✅学生或家长自主锁定&#xff1a;开…

【SQL】SQL常见面试题总结(1)

目录 1、检索数据1.1、从 Customers 表中检索所有的 ID1.2、检索并列出已订购产品的清单1.2、检索所有列 2、排序检索数据2.1、检索顾客名称并且排序2.2、对顾客 ID 和日期排序2.3、按照数量和价格排序2.4、检查 SQL 语句 3、过滤数据3.1、返回固定价格的产品3.2、返回产品并且…

高效协同,智慧绘制:革新型流程图工具全解析

流程图&#xff0c;作为一种直观展示工作过程和系统运作的工具&#xff0c;在现代办公和项目管理中发挥着不可或缺的作用。 其优势在于能够清晰、直观地呈现复杂的过程和关系&#xff0c;帮助人们快速理解并掌握关键信息。同时&#xff0c;流程图也广泛应用于各种场景&#xf…

STM32HAL库-中断篇

中断 中断简介 中断是一种事件处理机制&#xff0c;可以暂停主程序的运行&#xff0c;转而处理特定事件程序。 中断的作用和意义&#xff1a; 实时控制 在确定事件内对响应事件做出相应 故障处理 检测到故障需要第一时间处理 数据传输 如串口通信&#xff0c;不确定数…

独家|暴雨推出基于国产X86芯片的四路服务器

伴随着智慧计算时代的到来和企业数字化转型的深入&#xff0c;人工智能、大数据、虚拟化等创新技术在应用普及的过程中&#xff0c;也在不断地细分和深化&#xff0c;使得企业的业务系统日趋复杂&#xff0c;数据量、数据类型更加庞大&#xff0c;对计算平台的性能要求“水涨船…

CET6级(笔试备考)

CET6笔试 做题技巧 备考注意 感觉考前一个月还是要多刷几套真题啊&#xff0c;刷个10套吧。 参考链接&#xff1a;https://blog.csdn.net/m0_57656758/article/details/130707582

Spring实现数据库读写分离(MySQL实现主从复制)

目录 1、背景 2、方案 2.1 应用层解决: 2.2 中间件解决 3、使用Spring基于应用层实现 3.1 原理 3.2 DynamicDataSource 3.3 DynamicDataSourceHolder 3.4 DataSourceAspect 3.5 配置2个数据源 3.5.1 jdbc.properties 3.5.2 定义连接池 3.5.2 定义DataSource 3.6…

Cadence 16.6 PCB Edito如何将鼠标中键反向拉拽改为正向拖拽

Cadence 16.6 PCB Editor如何将鼠标中键反向拉拽改为正向拖拽 Cadence 16.6 PCB Editor默认鼠标中键是反向的拉拽&#xff0c;让我很不适应&#xff0c;在网上找的可行的方法&#xff0c;在这里总结出来&#xff0c;希望能帮到其他工程师。 按照以下步骤进行操作&#xff1a; …

数字化智能:Web3时代的物联网创新之路

引言 随着科技的不断发展&#xff0c;物联网&#xff08;IoT&#xff09;技术正在迅速普及和应用。而随着Web3时代的到来&#xff0c;物联网将迎来新的发展机遇和挑战。本文将探讨Web3时代的物联网创新之路&#xff0c;深入分析其核心技术、应用场景以及未来发展趋势。 Web3时…

4.线性代数

深度学习作为一门前沿的、应用广泛的学科&#xff0c;对于数学基础的要求非常高。 线性代数 线性代数在深度学习中扮演着至关重要的角色。它不仅是描述和理解数据的基础工具&#xff0c;也是构建和训练神经网络的核心组件。例如&#xff0c;在深度学习中&#xff0c;我们经常…

RAW转换和图像编辑工具:Capture One 23 Pro (win/mac)中文专业版

Capture One 23是一款功能强大的桌面版照片编辑软件&#xff0c;由丹麦PHASE ONE飞思数码公司开发。 以下是该软件的一些主要特点&#xff1a; 强大的RAW处理功能&#xff1a;Capture One 23支持多种品牌的相机和镜头&#xff0c;提供了丰富的RAW处理工具&#xff0c;包括曝光、…

【Python】图像批量合成视频,并以文件夹名称命名合成的视频

一个文件夹中有多个子文件夹&#xff0c;子文件夹中有多张图像。如何把批量把子文件夹中的图像合成视频&#xff0c;视频名称是子文件夹的名称&#xff0c;生成的视频保存到指定文件夹&#xff0c;效果记录。 代码 import os import cv2def create_video_from_images(image_f…

linux中远程服务器上传输文件的10个sftp命令示例

目录 1. 如何连接到 SFTP 2. 帮助 3.检查当前工作目录 4. 使用 sftp 列出文件 远程 本地 5. 使用 sftp 上传文件 6. 使用 sftp 上传多个文件 7. 使用 sftp 下载文件 8. 在 sftp 中切换目录 远程 本地 9. 使用 sftp 创建目录 10. 使用 sftp 删除目录 11. 退出 sf…

一次tomcat闪退处理

双击tomcat目录下bin目录中startup.bat 在我的电脑上是一闪而过&#xff0c;不能正常地启动tomcat软件 以记事本打开startup.bat文件&#xff0c;在文件的结尾处加上pause 然后再双击该bat执行&#xff0c;此时窗口就不会关闭&#xff0c;并会将错误信息打印在提示框中 可能是…