自定义linux iso,制作自定义的ISO镜像(Centos 7.6)
本文以制作自定义的centos7的ISO镜像为例,自定义ISO无非就是提前安装好yum包,提前安装好pip包,提前安装好自己的应用这三种情况,对于提前安装yum包,如下的链接讲的非常清楚,这里就不再详述,本文主要介绍一下如何在自定义ISO镜像中提前安装pip包以及应用。
https://www.jianshu.com/p/2d81f88efa62
友情提示:把上边的链接看仔细了再看下边的内容,请知。
一.安装pip包
1.下载pip
yum -y install epel-release python-devel python-pip
2.安装pip包下载工具
pip install pip2pi
3.下载pip包及其依赖
pip2tgz /ISO/postinstall/packages -r requirement.txt
其中requirement.txt是我们要安装的pip包,内容如下:
[root@localhost postinstall]# cat requirement.txt
ansible==2.3.2.0
python-openstackclient
decorate
allure-pytest
pytest-html
python-ceilometerclient
python-heatclient
uwsgi==2.0.18
我们需要在/ISO目录下新建一个目录postinstall,用来存预安装的pip包以及一些安装脚本。
其中 /ISO/postinstall/packages是存放pip包以及其依赖包的目录(注意这里要与存放yum包的目录/ISO/Packages区分开),内容如下(由于内容较长,我只截取了一部分):
[root@localhost postinstall]# pwd
/ISO/postinstall
[root@localhost postinstall]# ll packages/
total 53076
-rw-r--r--. 1 root root 10080 May 22 23:16 allure_pytest-2.6.3-py2.py3-none-any.whl
-rw-r--r--. 1 root root 10280 Jun 27 06:31 allure_pytest-2.7.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 13423 May 22 23:16 allure_python_commons-2.6.3-py2.py3-none-any.whl
-rw-r--r--. 1 root root 13505 Jun 27 06:31 allure_python_commons-2.7.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 4319664 Jun 27 06:31 ansible-2.3.2.0.tar.gz
-rw-r--r--. 1 root root 12154 Jun 27 06:31 appdirs-1.4.3-py2.py3-none-any.whl
-rw-r--r--. 1 root root 101571 Jun 27 06:31 asn1crypto-0.24.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 5885 Jun 27 06:31 atomicwrites-1.3.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 35784 Jun 27 06:31 attrs-19.1.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 8098645 May 22 23:16 Babel-2.6.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 8421834 Jun 27 06:31 Babel-2.7.0-py2.py3-none-any.whl
4.修改ks.cfg
编辑/ISO/isolinux/ks.cfg文件,在文件末尾添加配置预安装pip包的脚本。内容如下:
%post --nochroot
#!/bin/sh
set -x -v
exec 1>/mnt/sysimage/root/kickstart-stage1.log 2>&1
echo "==> copying files from media to install drive..."
cp -r /run/install/repo/postinstall /mnt/sysimage/root
%end
%post
#!/bin/sh
set -x -v
exec 1>/root/kickstart-stage2.log 2>&1
ls -l /root/postinstall
cd /root/postinstall
chmod 777 install_pac.sh
sh install_pac.sh
%end
其中第一个%post%end的意思是讲/ISO/postinstall目录下的所有内容拷贝到操作系统安装好之后的/root/postinstall目录下。
其中第二个%post%end的意思是在系统启动之前要执行预安装pip包的脚本。install_pac.sh(也要像/ISO/postinstall/packages目录一样,提前放在postinstall目录下)的内容如下:
#!/bin/sh
pip install -r /root/postinstall/requirement.txt --no-index --find-links=file:///root/postinstall/packages
pip install --ignore-installed -r /root/postinstall/requirement.txt --no-index --find-links=file:///root/postinstall/packages
二.安装自定义应用
如果安装自定义pip包理解的话。这一步就更简单了。只需要将你要安装的应用放到/ISO/postinstall/目录下,如果需要自定义一些安装脚本的话,也放到这个目录下。接着只需要修改ks.cfg文件中第二个%post%end中对应的脚本即可。ks.cfg文件的配置相当于把你的/ISO/postinstall/目录下的所有内容放到操作系统的/root/postinstall/目录下执行,写应用执行脚本的时候注意路径是/root/postinstall/即可。
友情提示:这其中涉及到的打包镜像,修改配置文件等整个制作流程参考文章最初的链接。另外关于如何设置预安装postinstall脚本请参考下文的链接,写的超详细(有4部分,大家有兴趣的话可以好好研究一下)。
http://www.smorgasbork.com/2014/07/16/building-a-custom-centos-7-kickstart-disc-part-1/
自定义linux iso,制作自定义的ISO镜像(Centos 7.6)相关推荐
- linux自定义iso,制作自定义CentOS的ISO安装盘
一.下载CentOS镜像文件 CentOS镜像链接:http://vault.centos.org/ 本文以CentOS 7.3为例 二.使用vmware安装centos 安装过程自行百度 三.制作I ...
- 【Linux】制作U-Boot烧写镜像到SD卡的过程(中篇:LDS文件)
上一篇文章,讲述了制作U-Boot烧写镜像到SD卡的过程,其中运用make的方式来进行将.s文件编译成.bin文件,那make是什么意思?它主要实现了什么? 先讲一下,如果不采用make的方式该怎样实 ...
- 【Linux】制作U-Boot烧写镜像到SD卡的过程(上篇)
在嵌入式Linux操作系统中,需要将三样东西(BootLoader.内核kernel.根文件系统)传输到目标板中.一般而言,U-Boot烧写到SD卡中,而内核.根文件系统都采用TFTP的方式传输到目标 ...
- 【Linux】制作U-Boot烧写镜像到SD卡的过程(下篇:Makefile文件)
上文讲到,如果需求仅略微修改,整个从编译到仅保留二进制文件到添加HeaderInfo到烧写到SD卡的一系列命令都需要重新再输入一遍,这很繁琐. 如何解决这个问题呢? 制作一个bash脚本文件 制作一个 ...
- linux下制作windows镜像文件,Linux之自定义ISO镜像文件制作
这一节主要介绍iso镜像制作过程,主要包含两部分mkisofs:创建镜像文件 光盘烧录工具 如果终端没有mkisofs指令,需要下载一下,例如ubuntu14.04 apt-get install g ...
- 制作自定义Ubuntu ISO镜像
respin可以直接将整个已经安装好的ubuntu系统做成ISO文件,respin的前身remastersys 发现已经不被维护了,官网网址也都没了,仔细去查资料发现已经被 linux respin替 ...
- openstack在dashboard用iso制作qcow2的镜像【制作linux为例】、linux重封装
文章目录 说明 制作流程 1.上传iso镜像到dashboard 2.创建源为刚上传的ISO的volume 3.创建一个空的volume,后续做系统盘 4.创建一个实例,boot from 步骤2所创 ...
- 制作最小linux镜像,Docker镜像的无中生有:使用scratch制作自定义最小镜像
针对如何制作尽量小的镜像问题,笔者在这里介绍一种用"空镜像"制作自定义最小镜像的方案. 1. 从石头缝里蹦出来的基础镜像? 这里请大家思考一个问题:docker hub上的那些基础 ...
- linux 如何打开iso镜像文件,linux下如何读取使用iso 镜像文件的方法
http://www.jb51.net/os/RedHat/2682.html 如果拷贝到本地,可以使用mount mount fileName mountPoint -o loop,fileName ...
最新文章
- bufferedreader读取中文乱码_Python读取excel的两种方法
- 牛客网 2018年全国多校算法寒假训练营练习比赛(第三场)D.小牛vs小客-博弈
- 项目管理理论与实践(4)——UML应用(上)
- 数据中心用蓄电池解决方案
- 关闭钩子(ShutdownHook)
- dubbo-环境搭建,实现一个简单地dubbo实例(附github地址)
- Different Integers
- Spark基础学习笔记23:DataFrame与Dataset
- 一个可以实时查相关电子产品价格的网站
- MVC中验证码的生成
- 毕设题目:Matlab瑕疵检测
- 静态HTML网页设计作品——食品餐饮行业网站模板(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 美食生鲜零食网页设计
- 程序员最喜欢的15款文本编辑器推荐
- 【爬虫】谷歌、必应、百度图片爬取用于深度学习
- 斐讯路由器怎么设置虚拟服务器,斐讯无线路由器设置教程图解
- 【源码】王者装逼工具/提升几倍的等级战力
- 11.8版本更新公告:灵罗娃娃 格温登场
- ubuntu20安装gcc_Ubuntu:软件常用安装方法(附WPS安装)
- java - 随机生成人名/指定位数字符串/手机号 --工具方法
- Java购物清单结算