在离线环境中将 CentOS 7.5 原地升级并迁移至 RHEL 7.9

《OpenShift / RHEL / DevSecOps 汇总目录》

说明

  1. 本文将说明如何在离线环境中将 CentOS 7.5 升级并迁移至 RHEL 7.9。为了简化准备过程,本文前面将在在线环境中安装用到的各种所需验证软件,而在后面升级迁移的时候再切换到由 ISO 构成的离线 Yum Repo。
  2. 以下所安装的验证软件基本都选择了和 CentOS 7.5 一个时期的较早版本,且都是单机安装配置。
  3. 另外出于方便,以下所有操作都使用的是 root 用户。
    在这里插入图片描述

准备 CentOS 7.5 及其他被验证软件环境

下载 ISO 文件

下载 CentOS-7-x86_64-DVD-1804.iso(CentOS 7.5)、CentOS-7-x86_64-DVD-2009.iso(CentOS 7.9)、rhel-server-7.9-x86_64-dvd.iso 文件。

安装 CentOS 7.5

用 CentOS-7-x86_64-DVD-1804.iso 在一个 VM 中最小化安装 CentOS 7.5 即可,过程略。
需要注意的是由于后文的 Yum Repo 使用了外挂的 ISO,因此请为该 VM 配置 2 个 CDROM 存储控制器,并挂载 2 个 ISO 文件。

配置 docker 18.06.3.ce

安装 docker

  1. 安装 docker 所需 Yum Repo。
$ curl -LO https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装 docker。
$ yum list docker-ce --showduplicates
$ yum install docker-ce-18.06.3.ce-3.el7
  1. 配置开机启动。
$ systemctl enable --now docker
$ systemctl status docker 

验证 docker

  1. 下载 tomcat:7.0.63 镜像。
$ docker pull tomcat:7.0.63
$ docker images
  1. 运行 tomcat 镜像
$ docker run -d -p 8080:8080 --name tomcat-test tomcat:7.0.63
$ docker ps -a
  1. 访问 tomcat
$ curl http://localhost:8080
  1. 删除镜像
$ docker rm tomcat-test

配置 mysql 5.7

安装 mysql

  1. 安装 mysql 安装所需 Yum Repo。
$ curl -LO http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
$ rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
$ yum localinstall mysql57-community-release-el7-8.noarch.rpm
  1. 确认已经有以下 3 个 mysql 的 Yum Repo。
$ yum repolist enabled | grep mysql
mysql-connectors-community/x86_64       MySQL Connectors Community           242
mysql-tools-community/x86_64            MySQL Tools Community                104
mysql57-community/x86_64                MySQL 5.7 Community Server           696
  1. 安装 mysql。
$ yum install -y mysql-community-server
  1. 配置开机启动。
$ systemctl enable --now mysqld
$ systemctl status mysqld

验证 mysql

  1. 使用临时密码登录 mysql。
$ grep 'temporary password' /var/log/mysqld.log
$ mysql -u root -p
  1. 修改密码。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@ssw0rd';
  1. 创建用户。
mysql> CREATE USER 'user1'@'%' IDENTIFIED BY 'P@ssw0rd';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost'  WITH GRANT OPTION;
  1. 操作 database 和 table。
mysql> create database crm;
mysql> use crm;
mysql> create table customer(id int,name varchar(20));
mysql> insert into customer values (1,'Jack');
mysql> insert into customer values (2,'Tom');
mysql> insert into customer values (3,'Bob');
mysql> insert into customer values (4,'James');
mysql> insert into customer values (5,'John');
mysql> select * from crm.customer;

配置 redis 5.0.13

安装 redis

  1. 安装 epel 所需 Yum Repo。
$ curl -LO https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ yum install epel-release-latest-7.noarch.rpm
  1. 安装 redis 所需 Yum Repo。
$ curl -LO http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ yum install remi-release-7.rpm
  1. 安装 redis 5.0.13。
$ yum --enablerepo=remi list redis --showduplicates
$ yum --enablerepo=remi install redis-5.0.13-1.el7.remi
  1. 配置开机启动。
$ systemctl enable --now redis
$ systemctl status redis

验证 redis

  1. 进入 redis-cli 环境。
$ redis-cli
  1. 操作redis。
127.0.0.1:6379> redis-cli
127.0.0.1:6379> SET 1 Jack
127.0.0.1:6379> SET 2 Tom
127.0.0.1:6379> SET 3 Bob
127.0.0.1:6379> SET 4 James
127.0.0.1:6379> SET 5 John
127.0.0.1:6379> GET 4

配置 rabbitmq 3.3.5

安装 rabbitmq

  1. 下载 erlang 和 rabbitmq 的 rpm 安装包。
$ curl -LO https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.4.11/erlang-23.3.4.11-1.el7.x86_64.rpm
$ curl -LO https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.13/rabbitmq-server-3.9.13-1.el7.noarch.rpm
  1. 安装 erlang 和 rabbitmq。
$ yum localinstall erlang-23.3.4.11-1.el7.x86_64.rpm
$ yum localinstall rabbitmq-server-3.9.13-1.el7.noarch.rpm
  1. 配置开机启动。
$ systemctl enable --now rabbitmq-server
$ systemctl status rabbitmq-server

启动 webconsole

  1. 启动 webconsole
$ rabbitmq-plugins enable rabbitmq_management
  1. 创建用户。
$ rabbitmqctl add_user admin password
$ rabbitmqctl set_user_tags admin administrator

验证 rabbitmq

  1. 关闭防火墙。
$ systemctl stop firewalld
  1. 用浏览器打开 webconsole 地址,例如 http://192.168.x.x:15672

配置 mongodb 4.4.2

安装 mongodb

  1. 准备安装 mongodb 用到的 Yum Repo。
$ cat > /etc/yum.repos.d/mongodb.repo << EOF 
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/
gpgcheck=0
enabled=1
gpgkey=https://pgp.mongodb.com/server-4.4.asc
EOF
  1. 安装 mongodb。
$ yum install mongodb-org-4.4.2 mongodb-org-server-4.4.2 mongodb-org-shell-4.4.2 mongodb-org-mongos-4.4.2 mongodb-org-tools-4.4.2
  1. 配置开机启动。
$ systemctl enable --now mongod
$ systemctl status mongod

验证 mongodb

  1. 进入 mongo。
$ mongo
  1. 操作 dbs 和 collections。
> show dbs
> use crm
> db.crm.insert({"1":"Jack"})
> db.crm.insert({"2":"Tom"})
> db.crm.insert({"3":"Bob"})
> db.crm.insert({"4":"James"})
> db.crm.insert({"5":"John"})
> db.crm.find()

安装 convert2rhel

方法1

使用 Yum Repo 安装 convert2rhel。

$ curl -o /etc/yum.repos.d/convert2rhel.repo https://ftp.redhat.com/redhat/convert2rhel/7/convert2rhel.repo
$ yum -y install convert2rhel

方法2

使用 rpm 安装 convert2rhel。

$ curl -LO https://github.com/oamg/convert2rhel/releases/download/v1.7.1/convert2rhel-1.7.1-1.el7.noarch.rpm
$ yum localinstall convert2rhel-1.7.1-1.el7.noarch.rpm

准备 CentOS 7.9 和 RHEL 7.9 的离线 Yum Repo

  1. 将 CentOS-7-x86_64-DVD-2009.iso 和 rhel-server-7.9-x86_64-dvd.iso 挂载到运行 CentOS 7.5 的 VM 上。
    在这里插入图片描述
  2. 将 ISO 挂载到 CentOS 7.5 文件系统。
$ mkdir /mnt/centos79 /mnt/rhel79
$ mount /dev/sr0 /mnt/centos79
$ mount /dev/sr1 /mnt/rhel79
  1. 配置本地 Yum Repo。
$ cat > /etc/yum.repos.d/centos79-local.repo << EOF 
[centos79-local-repo]
name = centos79 local repo
baseurl=file:///mnt/centos79
enabled=1
gpgcheck=0
EOF$ cat > /etc/yum.repos.d/rhel79-local.repo << EOF 
[rhel79-local-repo]
name = rhel79 local repo
baseurl=file:///mnt/rhel79
enabled=1
gpgcheck=0
EOF
  1. 确认 CentOS 7.9 和 RHEL 7.9 的离线 Yum Repo 已经可用。
$ yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                 repo name                                      status
centos79-local-repo                     centos79 local repo                            4,070
rhel79-local-repo                       rhel79 local repo                              5,230
repolist: 9,300

将 CentOS 7.5 原地升级至 CentOS 7.9

  1. 查看当前发行版和 kernel 版本。
$ cat /etc/redhat-release
$ uname -r
  1. 升级 CentOS。
$ yum update
  1. 完成后再次查看当前发行版和 kernel 版本。
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
$ uname -r
3.10.0-862.el7.x86_64
  1. 为了生效 kernel,需要重启 Linux。
  2. 重启后再次查看 kernel 版本,确认已更新。
$ uname -r
3.10.0-1160.el7.x86_64

将 CentOS 7.9 原地迁移至 RHEL 7.9

  1. 确认当前可用 Yum Repo。
$ yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                 repo name                                      status
centos79-local-repo                     centos79 local repo                            4,070
rhel79-local-repo                       rhel79 local repo                              5,230
repolist: 9,300
  1. 执行命令,在迁移前先进行分析。
$ convert2rhel analyze --disable-submgr --enablerepo=rhel79-local-repo
  1. 根据以上返回结果的提示,设置以下环境变量。
$ export CONVERT2RHEL_SKIP_KERNEL_CURRENCY_CHECK=1
$ export CONVERT2RHEL_OUTDATED_PACKAGE_CHECK_SKIP=1
$ export CONVERT2RHEL_ALLOW_UNAVAILABLE_KMODS=1
$ export CONVERT2RHEL_TAINTED_KERNEL_MODULE_CHECK_SKIP=1
  1. 执行迁移
$ convert2rhel --disable-submgr --enablerepo=rhel79-local-repo
  1. 完成后重启 Linux。
  2. 确认当前发行版和 kernel 版本已迁移到 RHEL 7.9 了。
$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
$ uname -r
3.10.0-1160.el7.x86_64

参考

https://www.redhat.com/en/interactive-labs/migrate-red-hat-enterprise-linux-centos-linux
https://www.cnblogs.com/tenghu/p/15887218.html

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nacos 安全零信任实践

作者&#xff1a;柳遵飞 Nacos 作为配置中心经常存储一些敏感信息&#xff0c;但是由于误用导致安全风险&#xff0c;最常见的主要是以下两个问题&#xff1a; 1&#xff09;Nacos 暴露公网可以吗&#xff1f;不可以&#xff0c;因为 Nacos 定位是注册配置中心&#xff0c;是…

JVM垃圾收集器--分区收集器

G1收集器 属性 G1&#xff08;Garbage-First Garbage Collector&#xff09;在 JDK 1.7 时引入&#xff0c;在 JDK 9 时取代 CMS 成为了默认的垃圾收集器。G1 有五个属性&#xff1a;分代、增量、并行、标记整理、STW。 分代 G1收集器 将内部分为多个大小相等的区域&#x…

【Redis 开发】Redis分片集群

分片集群 分片集群搭建分片集群 散列插槽集群伸缩故障转移RedisTemplate访问分片集群 分片集群 在我们使用哨兵进行高并发读的问题&#xff0c;但是还有海量数据存储,高并发写的问题,使用分片集群可以解决&#xff1a; 特征&#xff1a; 集群中有多个master&#xff0c;每个m…

国内各种免费AI聊天机器人(ChatGPT)推荐(上)

作者主页&#xff1a;点击&#xff01; 国内免费AI推荐专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月27日11点25分 欢迎来到AI聊天机器人推荐系列的第一篇文章&#xff01; 在这个系列中&#xff0c;我将引领您探索国内各种AI聊天机器人的精彩世界。 从…

更易使用,OceanBase开发者工具 ODC 4.2.4 版本升级

亲爱的朋友们&#xff0c;大家好&#xff01;我们的ODC&#xff08;OceanBase Developer Center &#xff09;再次迎来了重要的升级V 4.2.4&#xff0c;这次我们诚意满满&#xff0c;从五个方面为大家精心打造了一个更加易用、贴心&#xff0c;且功能更强的新版本&#xff0c;相…

mySQL商城项目实战 (终)(全部表)(1-88张)

本章无sql语句&#xff0c;直接放转出的sql文件。 88张表结果如图! 资源在已经与文章绑定&#xff0c; 在navicat工具中&#xff0c;执行以下步骤 在新建的数据库中右键,点击【运行sql文件】&#xff0c;运行绑定的资源&#xff0c;之后您就可以在您的navicat中看到我建好的8…

2024 java easyexcel poi word模板填充数据,多个word合成一个word

先看效果 一、准备工作 1.word模版 2.文件路径 二、pom依赖 <!-- easyexcel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.7</version></dependency><depe…

mysql面试题九(SQL优化)

目录 1.一条 SQL 是如何执行的 2.索引失效的几种情况 3.EXPLAIN 4.Where 子句如何优化 5.超大分页或深度分页如何处理 6.大表查询如何优化 7.分库分表 基本概念 分库分表方法 水平拆分 垂直拆分 分库分表后的注意事项 1.一条 SQL 是如何执行的 在MySQL中&#xff0…

Flink checkpoint 源码分析- Flink Checkpoint 触发流程分析

序言 最近因为工作需要在阅读flink checkpoint处理机制&#xff0c;学习的过程中记录下来&#xff0c;并分享给大家。也算是学习并记录。 目前公司使用的flink版本为1.11。因此以下的分析都是基于1.11版本来的。 在分享前可以简单对flink checkpoint机制做一个大致的了解。 …

VSCode SSH连接远程主机失败,显示Server status check failed - waiting and retrying

vscode ssh连接远程主机突然连接不上了&#xff0c;终端中显示&#xff1a;Server status check failed - waiting and retrying 但是我用Xshell都可以连接成功&#xff0c;所以不是远程主机的问题&#xff0c;问题出在本地vscode&#xff1b; 现象一&#xff1a; 不停地输入…

软考-信息系统项目管理师-论文技术架构模板(60天备考第26天)

分享一段信息系统项目管理师论文项目技术架构描述的万能模板&#xff0c;供大家参考。距离考试还有二十八天&#xff0c;如果论文写不好的可以加微进论文指导群学习论文写作。 该系统前端基于Vue开发&#xff0c;后端基于java开发&#xff0c;前后端分离部署。整体采用B/S架构&…

STM32 学习13 低功耗模式与唤醒

STM32 学习13 低功耗模式与唤醒 一、介绍1. STM32低功耗模式功能介绍2. 常见的低功耗模式&#xff08;1&#xff09;**睡眠模式 (Sleep Mode)**:&#xff08;2&#xff09;**停止模式 (Stop Mode)**:&#xff08;3&#xff09;**待机模式 (Standby Mode)**: 二、睡眠模式1. 进入…

Golang基础1-基本类型、if、switch、string

基本类型 bool 整数&#xff1a;byte(相当于uint8), rune(相当于int32), int/uint ,int8/uint8 ,int16/uint16 ,int32/uint32 ,int64/uint64 浮点数: float32 ,float64, complex64 ,complex128 array&#xff08;值类型&#xff09;、slice、map、chan&#xff08;引用类型…

西瓜书学习——决策树形状、熵和决策树的本质

文章目录 决策树形状监督学习算法分类与回归 熵信息熵香农熵 (Shannon Entropy) - H(X)联合熵 (Joint Entropy) - H(X, Y)条件熵 (Conditional Entropy) - H(Y|X)互信息 (Mutual Information) - I(X; Y)相对熵 (Relative Entropy) / KL散度 (Kullback-Leibler Divergence) - DK…

小程序使用阿里巴巴矢量图标库

一、登录官网 www.iconfont.cn 二、在搜索框中搜索想要的图标&#xff0c;将鼠标移动到图标上会看到三个标记 可以使用下载&#xff0c;直接使用&#xff1a; 可以使用css文件使用&#xff1a; 首先点击购物车样式的选项&#xff0c;而后点击下图位置&#xff1a; 点击自己创…

【python笔记】datafram的时间动态可视化 pyecharts地图

import pandas as pd# 假设DataFrame是这样的&#xff1a; df pd.DataFrame({ year: [2014, 2015, 2016, 2014, 2015, 2016, 2014, 2015, 2016], province: [广东省, 广东省, 河南省, 湖南省, 北京市, 北京市, 上海市, 新疆维吾尔自治区, 上海市], values: [100, 150, 75…

tomcat 配置支持 ssl 附效果图

1、修改tomcat配置文件server.xml: vim ./conf/server.xml 把配置文件&#xff1a; <Connector port"8088" Server" " protocol"HTTP/1.1"connectionTimeout"20000"redirectPort"8443" URIEncoding"UTF-8" …

可平滑替代FTP的FTP替代解决方案,具有哪些强大功能?

FTP是一种广泛使用的文件传输协议&#xff0c;主要用于在网络上的计算机之间传输文件。具有以下特点&#xff1a; 1.简单易用&#xff1a;FTP协议相对简单&#xff0c;易于设置和使用&#xff0c;许多操作系统和应用程序都内置了对FTP的支持。 2.广泛的客户端支持&#xff1a…

Vue生命周期都有哪些?

定义 Vue的生命周期就是实例从创建到销毁的一个过程&#xff0c;即从创建、初始化数据、编译模板、挂载Dom($el)->渲染、更新->渲染&#xff0c;卸载等一系列的过程。el是挂载点如<div id"app"></div>。 Vue的生命周期分为八个阶段 1.beforeCreate…

Spring Data JPA数据批量插入、批量更新真的用对了吗

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 前言 在前两篇文章已经介绍过&#xff0c;在使用Spring Data JPA时&#xff0c;DAO层的Respository通过继承J…