信创实践(2):利用Leapp工具迁移CentOS至AnolisOS,实现系统升级与自主可控
1. 引言
为了满足用户在CentOS退出后对操作系统使用的诉求,OpenAnolis龙蜥社区正式发布了Anolis OS。越来越多的CentOS客户期望能够迁移到Anolis OS上来。操作系统迁移是一个复杂工程,手工迁移技术要求高,操作复杂度强,需要耗费大量的人力和时间。OpenAnolis龙蜥社区针对这一痛点,为CentOS用户提供了迁移到Anolis OS的迁移解决方案AOMS ( Anolis OS Migration Solutions )。本文将介绍如何利用AOMS轻松实现从CentOS到Anolis OS的迁移。
2. 迁移原理与注意事项
CentOS 7 到 Anolis OS 8 ,无论是内核,基础软件包,工具链都发生了较大的变化。迁移工具需要考虑这些变化带来的兼容性问题。AOMS 提供的迁移工具 leapp 包含了迁移评估,迁移实施,配置还原等步骤,用于实现 CentOS 7 到Anolis OS 8 的就地迁移。
3. 部署迁移工具
1. 下载迁移工具软件源
wget https://mirrors.openanolis.cn/anolis/migration/anolis-migration.repo -O /etc/yum.repos.d/anolis-migration.repo
2. 安装迁移工具
pip list | grep requests && pip uninstall requests urllib3 -y
yum -y install leapp
yum -y install python-urllib3 python-requests
备注:重新安装 python-requests 和 python-urllib3 是为了解决迁移过程中可能发生的软件包升级冲突。
3. 如果报了没找到pip,安装一下
yum -y install python2-pip
4. 迁移前评估
成功部署工具后,运行工具的评估命令来对系统环境进行扫描评估
leapp preupgrade --no-rhsm
1. 查看评估报告
评估命令执行完成后,会生成评估报告,在 /var/log/leapp/leapp-report.txt中,报告中详细列举出当前 OS 与目标 OS 系统间的升级分析报告,每一个报告点都包含影响等级,影响范围以及解决方案。当评估工具认为报告点影响 OS 的就地升级,这些报告点问题就必须解决,否则无法实施就地迁移。
2. 基于评估报告处理迁移前问题
迁移评估报告中一旦出现影响就地迁移的因素,会禁止迁移实施,将这些影响因素都解决后才能够继续实施迁移。如果遇到影响迁移实施的因素,迁移评估结果显示如下:

3. 按照报告的提示,在 /var/log/leapp/leapp-report.txt可以获取到详细的报告信息,同时 UPGRADE INHIBITED给出的影响升级的因素也可以在 /var/log/leapp/answerfile文件中查看。

解决方案:在新的 Anolis OS 8 中不再支持 pam_pkcs11 ,所以我们直接选择删除该不支持的选项:
leapp answer --section remove_pam_pkcs11_module_check.confirm=True
Anolis OS 8 中默认的 PermitRootLogin行为是 prohibit-password,禁止 root 用户登陆,如果不显式设置 PermitRootLogin yes则会在迁移后影响 root 用户密码登陆。解决方案:修改 sshd_config 配置文件,允许 root 用户登录。
sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config
解决了上述影响因素后,可以再次执行 leapp preupgrade --no-rhsm 再次评估是否有影响迁移的因素。若没有影响迁移的因素,结果如下:

5. 迁移实施
leapp upgrade --no-rhsm
一切就绪,执行结果如下:

reboot 即可进入正式的就地迁移。待系统迁移完成后,会自动重启进入迁移后的系统。
6. 迁移后验证
迁移完成后,可通过一系列基础操作查看 OS 版本,如 /etc/os-release查看 OS 版本。
迁移完成后,应用程序可以通过自身的指标查看是否能够正常运行。

执行更新
yum -y update
7. 结语
通过AOMS迁移解决方案,CentOS用户可以轻松地将现有系统迁移至Anolis OS,这不仅是对信创战略的支持,也是确保线上业务连续性和安全性的重要举措。AOMS的出现极大地简化了迁移过程,为用户提供了便捷、高效的迁移体验。如果您在迁移过程中遇到任何问题,欢迎在评论区留言交流。感谢您的阅读,希望本教程对您有所帮助!
相关文章:
信创实践(2):利用Leapp工具迁移CentOS至AnolisOS,实现系统升级与自主可控
1. 引言 为了满足用户在CentOS退出后对操作系统使用的诉求,OpenAnolis龙蜥社区正式发布了Anolis OS。越来越多的CentOS客户期望能够迁移到Anolis OS上来。操作系统迁移是一个复杂工程,手工迁移技术要求高,操作复杂度强,需要耗费大…...
数据库死锁查询SQL
Oracle 从Oracle数据库的动态性能视图(Dynamic Performance Views)中检索当前被锁定的数据库对象的相关信息,以及持有这些锁的会话(session)的详细信息。具体来说,它连接了v$ session和v$locked_object两个…...
vLLM (4) - LLMEngine上篇
系列文章目录 vLLM (1) - Qwen2推理&部署 vLLM (2) - 架构总览 vLLM (3) - Sequence & SequenceGroup vLLM (4) - LLMEngine上篇 vLLM (5) - LLMEngine下篇 文章目录 系列文章目录前言一、类图二、LLM三、LLMEngine四、GPUExectuor五、Worker六、ModelRunner七、Cache…...
Java重修笔记 第五十天 HashSet 和 TreeSet 的去重机制比较
HashSet 和 TreeSet 的去重机制比较 1. HashSet 的去重机制:HashCode() equals() 。通过运算得到 key ,也就是该对象的哈希值,再通过哈希值得到该对象在 table 表上的索引位置,若该位置上没有链表数据就直接存放,若…...
提前购|基于SSM+vue的创新型产品提前购平台(源码+数据库+文档)
创新型产品提前购平台 基于SSMvue的创新型产品提前购平台 一、前言 二、系统设计 三、系统功能设计 系统功能实现 后台模块实现 管理员模块实现 发布企业管理实现 个体管理实现 投资企业管理实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选…...
上海市计算机学会竞赛平台2024年7月月赛丙组求和问题
题目描述 给定 nn 个整数 a1,a2,…,ana1,a2,…,an,请问这个序列最长有多少长的前缀,满足元素的和大于或等于 00?如果任何长度大于 00 的前缀之和都为负数,则输出 00 输入格式 第一行:单个整数表示 nn第二行&a…...
【LVI-SAM】激光雷达点云处理特征提取LIO-SAM 之FeatureExtraction实现细节
激光雷达点云处理特征提取LIO-SAM 之FeatureExtraction实现细节 1. 特征提取实现过程总结1.0 特征提取过程小结1.1 类 FeatureExtraction 的整体结构与作用1.2 详细特征提取的过程1. 平滑度计算(calculateSmoothness())2. 标记遮挡点(markOcc…...
[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注…...
opencart journal 3 在价格前添加文本prefix
要修改的文件: /catalog/view/theme/journal3/template/product.twig 行274: <div class="product-price">{{ price }}</div>{% else %}<div class="product-price-new">{{ special }}</div><div class="product-pric…...
c++ string类的模拟实现的注意事项
一.构造函数 第一种形式,使用字符指针赋值 为了防止修改,我们传入了常量字符串。但是这里的初始化列表出错了,因为_str是一个变量,将常量给到一个变量涉及到权限的放大,是错误的。那该怎么写呢?对_str的赋…...
Unity3D中控制3D场景中游戏对象显示层级的详解
前言 在Unity3D开发中,控制游戏对象的显示层级(也称为渲染顺序或渲染层级)是一个常见的需求,特别是在处理复杂的3D场景时,如角色、道具、UI元素等的可见性和渲染顺序的管理变得尤为重要。Unity通过几种不同的机制来实…...
代码执行漏洞-Log4j2漏洞 vulhub CVE-2021-44228
步骤一:执行以下命令启动靶场环境并在浏览器访问!!! 查看端口 浏览器访问 可以发现 /solr/admin/cores?action 这⾥有个参数可以传,可以按照上⾯的原理 先构造⼀个请求传过去存在JNDI注⼊那么ldap服务端会执⾏我们传上去的payload JDNI项⽬地址 https://github.com…...
uniapp / uniapp x UI 组件库推荐大全
在 uniapp 开发中,我们大多数都会使用到第三方UI 组件库,提起 uniapp 的UI组件库,我们最常使用的应该就是uview了吧,但是随着日益增长的需求,uview 在某些情况下已经不在满足于我们的一些开发需求,尽管它目…...
花8000元去培训机构学习网络安全值得吗,学成后就业前景如何?
我就是从培训机构学的网络安全,线下五六个月,当时学费不到一万,目前已成功入行。所以,只要你下决心要入这一行,过程中能好好学,那这8000就花得值~ 因为只要学得好,工作两个多月就能赚回学费&am…...
PhpStorm 下调试功能配置
调试是开发过程中的关键环节,能够极大地减少应用程序中的错误并提高代码质量。PhpStorm 作为一款功能强大的 IDE,提供了丰富的调试功能,结合 Xdebug,可以让开发者更轻松地进行 PHP 应用程序的调试。本指南将详细介绍如何在 PhpSto…...
MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)
1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展…...
【H2O2|全栈】关于HTML(4)HTML基础(三)
HTML相关知识 目录 HTML相关知识 前言 准备工作 标签的具体分类(三) 本文中的标签在什么位置中使用? 列表 编辑编辑 有序列表 无序列表 自定义列表 表格 拓展案例 预告和回顾 后话 前言 本系列博客将分享HTML相关知识点…...
关于找不到插件 ‘org.springframework.boot:spring-boot-maven-plugin:‘的解决方案
找到项目结构后,点击库,全选所有后点击应用即可...
深入RabbitMQ世界:探索3种队列、4种交换机、7大工作模式及常见概念
文章目录 文章导图RabbitMQ架构及相关概念四大核心概念名词解读 七大工作模式及四大交换机类型0、前置了解-默认交换机DirectExchange1、简单模式(Simple Queue)-默认DirectExchange2、 工作队列模式(Work Queues)-默认DirectExchange3、发布/订阅模式(Publish/Subscribe)-Fano…...
将目标检测模型导出到C++|RT-DETR、YOLO-NAS、YOLOv10、YOLOv9、YOLOv8
点击下方卡片,关注“小白玩转Python”公众号 最近,出现了更新的YOLO模型,还有RT-DETR模型,这是一个声称能击败YOLO模型的变换器模型,我想将这些模型导出并进行比较,并将它们添加到我的库中。在这篇文章中&a…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
leetcode_69.x的平方根
题目如下 : 看到题 ,我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历,我们是整数的平方根,所以我们分两…...
Android屏幕刷新率与FPS(Frames Per Second) 120hz
Android屏幕刷新率与FPS(Frames Per Second) 120hz 屏幕刷新率是屏幕每秒钟刷新显示内容的次数,单位是赫兹(Hz)。 60Hz 屏幕:每秒刷新 60 次,每次刷新间隔约 16.67ms 90Hz 屏幕:每秒刷新 90 次,…...
【Java多线程从青铜到王者】单例设计模式(八)
wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本,sleep也是可以指定时间的,也就是说时间一到就会解除阻塞,继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒),wait能被notify提前唤醒…...
