大数据平台一键安装OS【定制化OS镜像制作】

简介:

   定制化 大数据平台一键安装OS


大数据平台一键安装OS系列

大数据平台一键安装OS【搭建脚本篇】

定制化OS镜像制作


1.操作环境

操作环境:VMware Workstarion 9 and vSphere client

系统:CentOS -6.8-x86_64

工具:gconf-editor anaconda repodata createrepo mkisofs rsync


2.主要思路

定制化是通过kickstart脚本来实现的,linux系统安装完毕后在root目录下会生成anaconda-ks.cfg install.log等文件,anaconda-ks.cfg是自动安装脚本,install.log是安装包的一些信息记录。在定制化中我们用到的主要是anaconda-ks.cfg这个kickstart脚本,这个脚本可以通过工具生成,也可以通过修改原来系统的anaconda-ks.cfg文件来实现。这里为了方便,采用的是原来系统的anaconda-ks.cfg来进行修改,在kickstart脚本中我们可以自行设置在安装过程中要实现的操作,实现自动化定制化安装。


3.工具安装

在定制过程中,需要安装一些工具,这些工具用于生成我们需要的文件和最后制作镜像文件,进入centos,管理员模式下在命令行输入如下命令:#挂载镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@localhost ~] # mount /dev/sr0 /mnt/
mount : block device  /dev/sr0  is write-protected, mounting  read -only
[root@localhost ~] # df -TH
Filesystem           Type     Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      ext4      38G   27G  9.5G  74% /
tmpfs                tmpfs    985M     0  985M   0%  /dev/shm
/dev/sda1             ext4     500M   42M  433M   9%  /boot
/dev/sr0              iso9660  5.8G  5.8G     0 100%  /mnt
 
#制作本地源
touch  /etc/yum .repos.d /vrv .repo
echo  "
[vrv- local ]
name=vrv- local
baseurl= file : ///mnt/
gpgcheck=0
enabled=1
" >>  /etc/yum .repos.d /vrv .repo
yum clean all &&  echo  'yum repository has been updated!'
#安装工具
yum –y  install  anaconda repodata createrepo  mkisofs  rsync


wKiom1lUq-rybswFAAAbiFPjVDk983.png-wh_50


4.定制化过程

#建立系统制作目录

mkdir /home/source

挂载镜像centos6.8.iso

#复制除了Packages文件夹以外的所有文件到系统制作目录

mount /dev/sr0 /mnt

cd /mnt

cp -rf * /home/source/

上传ks.cfg 服务端脚本配置和ks-config.cfg客户端脚本配置到isolinux文件夹下

执行yum install dos2*

dos2unix isolinux/*.cfg

 

#复制原系统的anaconda-ks.cfg和install.log文件到系统制作目录

[root@localhost ~]#cp /root/anaconda-ks.cfg /root/install.log /home/source

 

#参照当前的系统,复制相应的软件包到系统制作目录,install.log记录了本机安装的软件包的信息,参考install.log可以减少复制多余的软件包。

[root@localhost ~]#mkdir /home/source/Packages

[root@localhost ~]#awk ‘/Installing/{print $2}’ /home/source/install.log | xargs –I cp /mnt/Packages/{}.rpm /home/source/Packages/

cp /mnt/.discinfo   /home/source/  #这一步很重要

 wKiom1lUrlCyRN_LAAA3mr8Tr6M976.png-wh_50

#修改/制作kickstart脚本,修改这个脚本有两种方法,第一种方法是通过修改原系统的anaconda-ks.cfg脚本,第二种方法是通过system-config-kickstart工具来制作。第一种较为简单,修改的地方较少,而第二种方法是制作一个kickstart脚本,制作的过程由很多参数是需要手动设置的,容易出问题。

 

#对里面的参数进行解释

timezone Asia/Shanghai  #设置系统的时区,在时区设置是前面不加—utc否则时区设置不生效

bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"  #auto rhgb quiet参数设置了系统的启动方式,去掉rhgb则在开机的过程中不显示开机动画,而是以文本的形式打印出系统的启动过程

 

# The following is the partition information you requested

# Note that any partitions you deleted are not expressed

# here so unless you clear all partitions first, this is

# not guaranteed to work

 

#这里设置分区操作,如果不在kickstart脚本中设置,则在安装过程中需要手动来进行设置

clearpart --all –initlabel    

part /boot --fstype=ext4 --size=300

part / --fstype=ext4 --grow --size=37000  #硬盘大小根据具体的大小设置,一般我给虚拟机的大小为40G,所以这里设置为37000,剩余的空间用作boot和swap分区。

part swap --grow --maxsize=1984 --size=1984

 wKioL1lUtb_Q2LJeAABdMMEaI8A692.png

#修改引导显示画面,引导显示画面的背景图片在安装光盘中的isolinux文件夹内部只需要用其他图片替换掉即可。修改系统名字(安装ambari服务不能修改名字)

#echo " OS release 1.1" > /etc/centos-release

#echo " OS release 1.1" > /etc/redhat-release

#sed -i 's/CentOS release 6.8 (Final)/ OS release 1.1/g' /etc/issue

#sed -i 's/CentOS release 6.8 (Final)/ OS release 1.1/g' /etc/issue.net

#sed -i 's/localhost.localdomain/vasp.host/g' /etc/sysconfig/network

#sed -i 's/CentOS/OS/g' /etc/rc.d/rc.sysinit

#sed -i 's/CentOS/OS/' /etc/grub.conf


5.添加背景图片

cd /home/source/Packages/isolinux/

#添加背景图片

menu background splash.jpg

wKiom1lUr1jhzaweAAYH_yIVg00571.png-wh_50

替换成

wKiom1lUr2yyTEAzAAhZke3clCw036.png


注意图片大小和名字必须跟原图片一样

wKiom1lUr9ygtAD5AAAY-S77u3g089.png

#自定义的安装选项,并将这个选项设置为默认选项,并设置自定义的kickstart安装脚本的文件路径,实现以文本形式自动安装。真重要,如果不变成一样,会遇到图片无法变过来的情况。

按格式添加并修改菜单选项:

######################添加以下内容

label menu os server install new system

  menu os server install new system

  kernel vmlinuz

  append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img   

label menu os client install new system

  menu os client install new system

  kernel vmlinuz

  append ks=cdrom:/isolinux/ks-config.cfg initrd=initrd.img

label rescue

  menu label ^Rescue installed system

  kernel vmlinuz

  append initrd=initrd.img rescue

label Boot

  menu label Boot from ^local drive

  localboot 0xffff

label memtest86

  menu label ^Memory test

  kernel memtest

  append -


成果图:

wKioL1lUsErzzDCLAASMp_1kOBw995.png


6.生成新的镜像

#生成新的repodata文档

[root@localhost ~]#cd /home/source

[root@localhost ~]#cp repodata/*comps.xml ./comps.xml

[root@localhost ~]#rm –rf repodata

[root@localhost ~]#declare –x discinfo=`head –1 .discinfo`

[root@localhost ~]#createrepo –g comps.xml /home/source 

#或者,也可以通过以下命令来实现,这个命令和上面区别在于它只更改那些在上次产生元数据之后被修改,添加或者删除了的项目,所以这个命令一般是用于在修改了包或组之后重新生成repodata文档,可以提高效率。

[root@localhost ~]#createrepo –u “media://$discinfo” –g comps.xml | /home/source


#为了方便,也可以通过脚本来进行操作,具体的脚本如下:

1
2
3
4
5
6
7
#!/bin/bash
ISO_DIR= /home/source
cd  ${ISO_DIR}
declare  -x discinfo=$( head  -1 .discinfo)
cp  /mnt/repodata/ *-c6-x86_64-comps.xml ${ISO_DIR} /comps .xml 
createrepo -g ${ISO_DIR} /comps .xml ${ISO_DIR}
createrepo -u  "media://$discinfo"  -g ${ISO_DIR} /comps .xm l ${ISO_DIR}

# sh 1.sh 

Spawning worker 0 with 3233 pkgs

Workers Finished

Gathering worker results


Saving Primary metadata

Saving file lists metadata

Saving other metadata

Generating sqlite DBs

Sqlite DBs complete

#如果修改了Packages文件夹内的软件包,则需要重新生成comps.xml文件,可以将以上脚本保存为一个.sh文件,放于/root目录下随时使用。到这里所有的准备工作都已经完成,接下来可以开始制作镜像文件了。制作镜像文件用到的工具有mkisofs和implantisomd5,前者用来制作镜像,后者用来进行md5校验,检测文件在传输过程中是否损坏。进入系统制作目录/home/source运行一下命令:

[root@localhost ~]#mkisofs –o os.iso  –b isolinux/isolinux.bin –c isolinux/boot.cat –no-emul-boot –boot-load-size 4 –boot-info-table –R –J –v –T –joliet-long /home/source

#执行上述命令之后,在/home/source目录下会生成一个名为OS.iso的镜像文件进入/home/source目录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Using KRB5_001.RPM;1  for   /home/source/Packages/krb5-server-ldap-1 .10.3-57.el6.x86_64.rpm (krb5-server-1.10.3-57.el6.x86_64.rpm)
Using PYTHO02T.RPM;1  for   /home/source/Packages/python-simplejson-2 .0.9-3.1.el6.x86_64.rpm (python-suds-0.4.1-3.el6.noarch.rpm)
Using KDE_L01L.RPM;1  for   /home/source/Packages/kde-l10n-Korean-4 .3.4-5.el6.noarch.rpm (kde-l10n-Maithili-4.3.4-5.el6.noarch.rpm)
Using XORG_021.RPM;1  for   /home/source/Packages/xorg-x11-drv-tdfx-1 .4.6-1.el6.x86_64.rpm (xorg-x11-drv-vmmouse-13.1.0-1.el6.x86_64.rpm)
Using YUM_P005.RPM;1  for   /home/source/Packages/yum-plugin-verify-1 .1.30-37.el6.noarch.rpm (yum-plugin-tmprepo-1.1.30-37.el6.noarch.rpm)
Using KDE_L01M.RPM;1  for   /home/source/Packages/kde-l10n-Maithili-4 .3.4-5.el6.noarch.rpm (kde-l10n-Icelandic-4.3.4-5.el6.noarch.rpm)
Using CONTR001.RPM;1  for   /home/source/Packages/control-center-filesystem-2 .28.1-40.el6.x86_64.rpm (control-center-2.28.1-40.el6.x86_64.rpm)
Using POSTG00A.RPM;1  for   /home/source/Packages/postgresql-libs-8 .4.20-6.el6.x86_64.rpm (postgresql-plpython-8.4.20-6.el6.x86_64.rpm)
Using AUDIT001.RPM;1  for   /home/source/Packages/audit-libs-python-2 .4.5-3.el6.x86_64.rpm (audit-libs-2.4.5-3.el6.x86_64.rpm)
Using ECLIP01R.RPM;1  for   /home/source/Packages/eclipse-valgrind-0 .6.1-1.el6.x86_64.rpm (eclipse-rpm-editor-0.5.0-2.el6.x86_64.rpm)
Writing:   Initial Padblock                        Start Block 0
Done with: Initial Padblock                        Block(s)    16
Writing:   Primary Volume Descriptor               Start Block 16
Done with: Primary Volume Descriptor               Block(s)    1
Writing:   Eltorito Volume Descriptor              Start Block 17
Size of boot image is 4 sectors -> No emulation
Done with: Eltorito Volume Descriptor              Block(s)    1
Writing:   Joliet Volume Descriptor                Start Block 18
Done with: Joliet Volume Descriptor                Block(s)    1
Writing:   End Volume Descriptor                   Start Block 19
Done with: End Volume Descriptor                   Block(s)    1
Writing:   Version block                           Start Block 20
Done with: Version block                           Block(s)    1
Writing:   Path table                              Start Block 21
Done with: Path table                              Block(s)    4
Writing:   Joliet path table                       Start Block 25
Done with: Joliet path table                       Block(s)    4
Writing:   Directory tree                          Start Block 29
Done with: Directory tree                          Block(s)    326
Writing:   Joliet directory tree                   Start Block 355
Done with: Joliet directory tree                   Block(s)    239
Writing:   Directory tree cleanup                  Start Block 594
Done with: Directory tree cleanup                  Block(s)    0
Writing:   Extension record                        Start Block 594
Done with: Extension record                        Block(s)    1
Writing:   The File(s)                             Start Block 595
  0.16%  done , estimate finish Tue Jun 20 00:20:32 2017
 
  99.96%  done , estimate finish Tue Jun 20 00:23:09 2017
Total translation table size: 848976
Total rockridge attributes bytes: 384427
Total directory bytes: 660628
Path table size(bytes): 848
Done with: The File(s)                             Block(s)    3160548
Writing:   Ending Padblock                         Start Block 3161143
Done with: Ending Padblock                         Block(s)    150
Max brk space used 3aa000
3161293 extents written (6174 MB)


执行命令:

[root@localhost source]#/usr/bin/implantisomd5 os.iso 

#向镜像文件插入md5校验值,防止镜像文件在复制过程中损坏,校验时在相应文件目录下输入如下命令,即可对文件进行校验,校验文件没问题后,可以通过xftp将镜像文件复制出来,下一步就可以安装测试了。

[root@localhost ]#checkisomd5 os.iso 

wKioL1lUtkny4SxAAABYygylSQA252.png

生成镜像命令:

yum install -y mkisofs

createrepo -g repodata/*x86_64-comps.xml /home/source/

declare -x discinfo=`head -1 .discinfo`

createrepo -u "media://$discinfo" -g repodata/*x86_64-comps.xml /home/source/

mkisofs -o os.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -joliet-long /home/source


7.生成HDP镜像

跟上述一样的操作

createrepo -g repodata/*x86_64-comps.xml /home/hdp

declare -x discinfo=`head -1 .discinfo`

createrepo -u "media://$discinfo" -g repodata/*x86_64-comps.xml /home/hdp

mkisofs -o hdp2.4.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -joliet-long /home/hdp

效果图:

wKiom1lUswiyIfJyAAAJ1wkTnKI018.png


————————————————————————————————————————————————

如果你觉得作者的文章写的不错,请通过“支付宝”或“微信”奖励作者一些银子~

不需要太多(0.1、1元、3元、5元就可),不奖励就请点个赞吧,谢谢!

wKioL1lxkqSjcIjQAAJSjEpmecw212.png



本文转自 cs312779641 51CTO博客,原文链接:http://blog.51cto.com/chenhao6/1943183

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2天前
|
安全 Java iOS开发
MAC OS X 硬盘安装详细分解教程
MAC OS X 硬盘安装详细分解教程
12 1
|
2天前
|
IDE 5G 开发工具
HP4230s笔记本安装mac os总结(原创)
HP4230s笔记本安装mac os总结(原创)
|
2天前
|
编解码 Oracle iOS开发
VirtualBox虚拟机安装Mac OS X Lion系统详解
VirtualBox虚拟机安装Mac OS X Lion系统详解
|
3天前
|
关系型数据库 MySQL 数据库
龙蜥操作系统上安装MySQL:步骤详解与常见问题解决
龙蜥操作系统上安装MySQL:步骤详解与常见问题解决
|
3天前
|
存储 安全 Linux
Centos停止更新?这篇博客教会你安装平替Centos的操作系统安装Anolis
Centos停止更新?这篇博客教会你安装平替Centos的操作系统安装Anolis
|
4天前
|
Java 开发工具
2023全网最详细的银河麒麟操作系统,Java运行环境【jdk】安装
2023全网最详细的银河麒麟操作系统,Java运行环境【jdk】安装
|
4天前
|
供应链 安全 Ubuntu
详细介绍:国产操作系统银行麒麟V10的下载和安装
详细介绍:国产操作系统银行麒麟V10的下载和安装
详细介绍:国产操作系统银行麒麟V10的下载和安装
|
5天前
|
存储 Linux 数据安全/隐私保护
安装RHEL8.x操作系统
安装RHEL8.x操作系统
|
12天前
|
边缘计算 人工智能 安全
如何在 VM 虚拟机中安装 OpenEuler 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 OpenEuler 操作系统保姆级教程(附链接)
|
18天前
|
分布式计算 Hadoop 大数据
[大数据] mac 史上最简单 hadoop 安装过程
[大数据] mac 史上最简单 hadoop 安装过程