再不自动化就晚啦!优云教你4步打造基于CentOS的产品镜像

0546be941e2bc857aeebabccd3b56ec329411177

随着Linux程序的增多,软件的安装过程中经常出现如下问题:

1、硬件配置类似或者相同时,批量安装系统和软件,希望实现自动化安装,减少安装时间和人为出错。

2、工程实施人员在不同客户现场进行系统和软件安装(硬件配置不同),由于硬件有差别,不容易实现自动化。

笔者针对以上场景,从提高生产效率,减少误操作的立场,提出如下解决方案,希望能达到抛砖引玉的目的,并能与同行进行深入的探讨,发现不足之处。

背景知识点

Anaconda是RedHat、CentOS、Fedora等Linux的安装管理程序,它可以提供文本、图形等安装管理方式,并支持Kickstart等脚本提供自动安装的功能。定制安装时,它提供的定制界面,可以实现交互式界面供用户选择配置(如选择语言、键盘、时区等信息)。

Anaconda支持的管理模式:

(1)Kickstart提供自动化安装;

(2)对一个RedHat实施upgrade。

可用的安装方式:本地CDROM、USB、网络方式(NFS、FTP、HTTP)等。

对于Kickstart,它是一个利用Anconda工具实现服务器自动化安装的方法。通过生成的kickstart配置文件ks.cfg,可以实现从裸机到全功能服务的的非交互式(无人值守式)安装配置;ks.cfg是一个简单的文本文件,文件包含Anconda在安装系统及安装后配置服务时所需要获取的一些必要配置信息(如键盘设置、语言设置、分区设置等)。

Anconda直接从该文件中读取必要的配置,只要该文件信息配置正确无误且满足所有系统需求,就不再需要同用户进行交互获取信息,从而实现安装的自动化。一旦用户进行了选择,安装会以非交互的方式继续。使用kickstart可以实现流线化自动化的安装、强制建立一致性(软件包、分区、配置、监控、安全性)、以及减少人为部署的失误。

CentOS定制方法

第一步:准备软件安装包(rpm)

·        打包开发的程序

·        制作SPEC文件

·        使用rpmbuild命令生成rpm包

6147259ab2f5321844d7e1c8ea901263948fcc5f

rpmbuild -bb /root/rpmbuild/SPECS/apm_c.spec

生成 apm_c-2.5.0-1.x86_64.rpm

第二步:定制kickstart配置文件

·        定制isolinux/isolinux.cfg文件

2df5511b32ab3d2f8b318d9de3b7b3b50e311636

·        配置ks.cfg

eb071d8d39b302a491cd477946635077fe7e9a2c

第三步:定制安装界面

·        配置repodata/xxx-comps.xml文件

·        配置install.img文件

b956fc25925b26bc08d5e45d2afd3d42ae18130a
fbc3855955500d78e6f27e4305ca4d4df27409af

第四步:重新生成iso镜像文件

使用mkisofs命令重新生成镜像文件

 ———我是分割线———

作者介绍:姚惠龙,现任职优云软件,从事软件定制开发10多年,经历了C/S架构的信息系统和B/S架构的web程序开发,也从事过Linux应用程序和内核程序的开发。

优云:秉承devops的理念,从监控、到应用体验,到自动化持续交付,全栈运维服务平台:https://uyun.cn

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

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

相关文章

【ArcGIS错误异常100问】之004:ArcGIS表转Excel超了65535限制解决办法

测试环境: 操作系统:windows7ArcGIS版本:10.2 文章目录1. 错误提示2. 原因分析3. 解决方法1. 错误提示 如下图,当矢量shp图斑数目过多,文件超过了65535条记录时,利用ArcGIS的表转Excel工具处理成Excel文件…

[转]硬核 | Redis 布隆(Bloom Filter)过滤器原理与实战

在Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?中我们说到可以使用布隆过滤器避免「缓存穿透」。 码哥,布隆过滤器还能在哪些场景使用呀? 比如我们使用「码哥跳动」开发的「明日头条」APP 看新闻,如…

Senparc.Weixin.Sample.MP源码剖析

Senparc.Weixin.Sample.MP是微信公众号样例的.NET6源码,项目配置文件appsettings.json的修改和微信公众号测试环境的搭建参考:微信公众号调试与Natapp环境搭建。接下来从项目结构,项目应用和项目源码3个角度来进行讲解。一.项目结构角度项目代…

mock.js使用

一、Mock.js入门 1. 什么是mock.js? Mock.js (官网http://mockjs.com/)是一款模拟数据生成器,旨在帮助前端攻城狮独立 于后端进行开发,帮助编写单元测试。提供了以下模拟功能: 1,根据数据模板生成模拟数据…

【ArcGIS微课1000例】0042:ArcGIS自带取色器工具的妙用

在ArcGIS中作图时,通常要进行颜色对照填充,输入特定的RGB值,本文介绍ArcGIS自带取色器工具的妙用,及第三方颜色拾取工具。 文章目录 一、ArcGIS自带取色器二、第三方取色器工具一、ArcGIS自带取色器 很多人可能不知道,ArcGIS中自带取色器工具,如下图所示。 当然了,自带…

微信.NET SDK-Senparc资料整理

微信生态系统包括微信公众号、小程序、微信支付、微信开放平台、企业微信、小游戏等,官方提供了很多的API接口。Senparc是目前使用最广泛的微信.NET SDK,同时支持支持.NET Framework 4.5/.NET Core 2.x/.NET Core 3.x/.NET 5/.NET 6。由于在微信生态开发…

7 种提升 Spring Boot 吞吐量神技

目录 二、增加内嵌Tomcat的最大连接数 三、使用ComponentScan()定位扫包比SpringBootApplication扫包更快 四、默认tomcat容器改为Undertow(Jboss下的服务器,Tomcat吞吐量5000,Undertow吞吐量8000) 五、使用 BufferedWriter 进…

【ArcGIS微课1000例】0043:ArcGIS缩略图的创建及应用

缩略图通常出现在地图文档中,便于在启动页面中快速打开指定的地图文档,提高效率。 文章目录一、缩略图预览二、缩略图创建一、缩略图预览 打开ArcMap软件,弹出启动窗口,在最近打开的文档中,可以看到两类,一…

JSP简单登录系统

Login登陆界面 <body> 登陆 <% session.invalidate();%> <form action"TestPW.jsp" method"post">用户名<input type"text" name"username"> 密码<input type"password" name"password&quo…

手动从0搭建ABP框架-ABP官方完整解决方案和手动搭建简化解决方案实践

本文主要讲解了如何把ABP官方的在线生成解决方案运行起来&#xff0c;并说明了解决方案中项目间的依赖关系。然后手动实践了如何从0搭建了一个简化的解决方案。ABP官方的在线生成解决方案源码下载参考[3]&#xff0c;手动搭建的简化的解决方案源码下载参考[4]。一.ABP官方在线生…

Java捕获并处理线程失败抛出的异常

使用 UncaughtExceptionHandler 示例代码如下&#xff1a; Thread.UncaughtExceptionHandler handler new Thread.UncaughtExceptionHandler() { public void uncaughtException(Thread th, Throwable ex) {System.out.println("Uncaught exception: " ex);} }; Th…

【ArcGIS微课1000例】0044:ArcGIS使用山体阴影显示DEM的3种方法

本文讲解了ArcGIS使用山体阴影显示DEM的3种方法:“影像分析”窗口、使用山体阴影效果和山体阴影效果工具的不同之处。 文章目录 一、“影像分析”窗口二、使用山体阴影效果三、山体阴影工具一、“影像分析”窗口 使用山体阴影显示 DEM 的方法有两种。最简单并且最具交互效果的…

区块链每日投资指南(0129)-证监会副主席表示数字货币需要监管

上一周的走势依然是工作日下跌&#xff0c;周末拉升的结局。这主要原因依然是&#xff0c;周末不上班。最终政策出炉之前&#xff0c;市场恐怕还将继续震荡。下周的工作日恐怕会重演下跌的节奏。但是经过了17号&#xff0c;23号&#xff0c;26号三次筑底来看&#xff0c;如果政…

蓝绿发布、滚动发布、灰度发布,有什么区别?

在项目迭代的过程中&#xff0c;不可避免需要”上线“。上线对应着部署&#xff0c;或者重新部署&#xff1b;部署对应着修改&#xff1b;修改则意味着风险。目前有很多部署发布的技术, 这儿将常见的做一个总结。 上面所说难免有些抽象, 举一个情景例子, 加入你是微博项目负责…

【ArcGIS微课1000例】0045:ArcGIS制图模板的自定义与使用方法

怎样在ArcGIS中保存地图模板以在地图制图与打印之前使用呢? 文章目录 一、地图模板简介二、地图模板创建1. 创建模板2. 创建缩略图3. 保存模板三、地图模板使用一、地图模板简介 使用ArcMap打开一个已有的地图模板,【文件】→【新建】,任选一个模板,这里选择一个传统模板。…

怎么样的框架对于开发者是友好的?

云原生离.NET开发到底有多远&#xff1f;云原生的概念由来不久&#xff0c;故事从“上云”开始&#xff0c;伴随dorker、k8s等技术的推出&#xff0c;以及CNCF与各大云厂商的共同加持&#xff0c;云原生逐渐被大家所熟知。云原生不依赖具体的云&#xff0c;不管公有云还是私有云…

JS 烧脑面试题大赏

本文精选了20多道具有一定迷惑性的js题&#xff0c;主要考察的是类型判断、作用域、this指向、原型、事件循环等知识点&#xff0c;每道题都配有详细傻瓜式的解析&#xff0c;偏向于初学者&#xff0c;大佬请随意。 第1题 let a 1 function b(a) {a 2console.log(a) } b(a)…

Thinkphp 验证码、文件上传

一、验证码 验证码参数 例题&#xff1a;登录时验证下验证码 LoginController.class.php <?php namespace Home\Controller; use Think\Controller; class LoginController extends Controller {public function Login(){if(empty($_POST)){$this->display(); } e…

ArcGIS实验教程——实验四十七:数据驱动页工具批量制作甘肃省各地级市人口七普专题图集

本实验详细讲解利用ArcGIS数据驱动页工具,制作甘肃省各地级市人口七普专题图集。 文章目录 1. 数据驱动页工具简介2. 甘肃省各地级市人口七普专题图集2.1 符号化及标注2.2 数据驱动页的创建2.3 数据驱动页面文本操作2.4 数据驱动页的导出1. 数据驱动页工具简介 数据驱动页面是…

为什么Java有GC调优而没听说过有CLR的GC调优?

前言在很多的场合我都遇到过一些群友提这样的一些问题&#xff1a;为什么Java有GC调优而CLR没有听说过有GC调优呢&#xff1f;到底是Java的JVM GC比较强还是C#使用的.NET CLR的GC比较强呢&#xff1f;其实业内已经有几位大佬的高赞文章和大家分享一下&#xff0c;主要讨论JVM和…