本文以制作自定义的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)相关推荐

  1. linux自定义iso,制作自定义CentOS的ISO安装盘

    一.下载CentOS镜像文件 CentOS镜像链接:http://vault.centos.org/ 本文以CentOS 7.3为例 二.使用vmware安装centos 安装过程自行百度 三.制作I ...

  2. 【Linux】制作U-Boot烧写镜像到SD卡的过程(中篇:LDS文件)

    上一篇文章,讲述了制作U-Boot烧写镜像到SD卡的过程,其中运用make的方式来进行将.s文件编译成.bin文件,那make是什么意思?它主要实现了什么? 先讲一下,如果不采用make的方式该怎样实 ...

  3. 【Linux】制作U-Boot烧写镜像到SD卡的过程(上篇)

    在嵌入式Linux操作系统中,需要将三样东西(BootLoader.内核kernel.根文件系统)传输到目标板中.一般而言,U-Boot烧写到SD卡中,而内核.根文件系统都采用TFTP的方式传输到目标 ...

  4. 【Linux】制作U-Boot烧写镜像到SD卡的过程(下篇:Makefile文件)

    上文讲到,如果需求仅略微修改,整个从编译到仅保留二进制文件到添加HeaderInfo到烧写到SD卡的一系列命令都需要重新再输入一遍,这很繁琐. 如何解决这个问题呢? 制作一个bash脚本文件 制作一个 ...

  5. linux下制作windows镜像文件,Linux之自定义ISO镜像文件制作

    这一节主要介绍iso镜像制作过程,主要包含两部分mkisofs:创建镜像文件 光盘烧录工具 如果终端没有mkisofs指令,需要下载一下,例如ubuntu14.04 apt-get install g ...

  6. 制作自定义Ubuntu ISO镜像

    respin可以直接将整个已经安装好的ubuntu系统做成ISO文件,respin的前身remastersys 发现已经不被维护了,官网网址也都没了,仔细去查资料发现已经被 linux respin替 ...

  7. openstack在dashboard用iso制作qcow2的镜像【制作linux为例】、linux重封装

    文章目录 说明 制作流程 1.上传iso镜像到dashboard 2.创建源为刚上传的ISO的volume 3.创建一个空的volume,后续做系统盘 4.创建一个实例,boot from 步骤2所创 ...

  8. 制作最小linux镜像,Docker镜像的无中生有:使用scratch制作自定义最小镜像

    针对如何制作尽量小的镜像问题,笔者在这里介绍一种用"空镜像"制作自定义最小镜像的方案. 1. 从石头缝里蹦出来的基础镜像? 这里请大家思考一个问题:docker hub上的那些基础 ...

  9. linux 如何打开iso镜像文件,linux下如何读取使用iso 镜像文件的方法

    http://www.jb51.net/os/RedHat/2682.html 如果拷贝到本地,可以使用mount mount fileName mountPoint -o loop,fileName ...

最新文章

  1. bufferedreader读取中文乱码_Python读取excel的两种方法
  2. 牛客网 2018年全国多校算法寒假训练营练习比赛(第三场)D.小牛vs小客-博弈
  3. 项目管理理论与实践(4)——UML应用(上)
  4. 数据中心用蓄电池解决方案
  5. 关闭钩子(ShutdownHook)
  6. dubbo-环境搭建,实现一个简单地dubbo实例(附github地址)
  7. Different Integers
  8. Spark基础学习笔记23:DataFrame与Dataset
  9. 一个可以实时查相关电子产品价格的网站
  10. MVC中验证码的生成
  11. 毕设题目:Matlab瑕疵检测
  12. 静态HTML网页设计作品——食品餐饮行业网站模板(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 美食生鲜零食网页设计
  13. 程序员最喜欢的15款文本编辑器推荐
  14. 【爬虫】谷歌、必应、百度图片爬取用于深度学习
  15. 斐讯路由器怎么设置虚拟服务器,斐讯无线路由器设置教程图解
  16. 【源码】王者装逼工具/提升几倍的等级战力
  17. 11.8版本更新公告:灵罗娃娃 格温登场
  18. ubuntu20安装gcc_Ubuntu:软件常用安装方法(附WPS安装)
  19. java - 随机生成人名/指定位数字符串/手机号 --工具方法
  20. Java购物清单结算

热门文章

  1. 智能水产养殖系统方案
  2. vue点击按钮弹窗显示图片
  3. python菜鸟教程list_菜鸟世界 -python基础---list(上)
  4. 安装支付系统PaySystem随笔
  5. android led闪烁功能,详解Android应用层制作LED指示灯
  6. 性格与中医养生10--阴虚体质
  7. SSM框架超级详细整合记录:Spring+Spring MVC+MyBatis+Maven+MySQL
  8. 手机端html返回顶部,移动端H5页面返回顶部按钮无效问题的解决
  9. vector构造函数的使用
  10. CSS中常用的clearfix方法