您的位置:首页 > 运维架构 > Linux

定制CentOS 6.3最小安装自动盘

2012-11-22 15:07 411 查看
公司准备上线一批业务服务器,为不到时候不会把自己累坏了,先自己提高功力把各种可能会用到的应用技术掌握好,以应万变。

批量上线的服务器首先涉及的就是批量安装部署,先把光盘定制好以省去到时候的很多敲键盘的功夫。

测试环境:VMware® Workstation 9.0.0 build-812388

准备光盘镜像:CentOS-6.3-i386-minimal

大概的思路是:先按照应用需求安装好一个CentOS服务器,然后把CentOS中定制自动安装光盘

由于使用的是CentOS 6.3最小化安装,定制过程比网上很多使用DVD安装定制软件包的教程简单很多。

需要使用的软件:mkisofs

#yum install mkisofs

建立定制所需要的环境目录

#mkdir /mnt/cdrom
#mount /dev/cdrom /mnt/cdrom
#mkdir /data/os
#rsync -a /mnt/cdrom/ /data/os/ #实际上是把光盘里的文件复制到此


定制isolinux.cfg文件

即选择安装项的配置文件

#cd /data/os
#cd isolinux
#vim isolinux.cfg
default vesamenu.c32
#prompt 1
timeout 10  #超时时间

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.3!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append ks=cdrom:/isolinux/ks.cfg initrdinitrd=initrd.img ##增加了一句 ks=cdrom:/isolinux/ks.cfg
label vesa
menu label Install system with ^basic video driver
kernel vmlinuz
append initrdinitrd=initrd.img xdriver=vesa nomodeset
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrdinitrd=initrd.img rescue
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -


定制ks.cfg文件,这里涉及到一个内容

什么是KickStartKickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
#cd /data/os
#cp /root/anaconda-ks.cfg ./isolinux/ks.cfg  把安装系统时由anaconda自动生成的ks.cfg文件复制到/data/os/isolinux下。并编辑
#vi ks.cfg

# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
cdrom
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6  #这里我把它设置为开机DHCP自动获取IP,默认为--onboot no。
rootpw  --iscrypted $6$FLLlvfqZKzvs/9bu$oflTVbcg8ZDgfCvBCDeyIBrgswymV7.W6ZoKc0Ona0GT/SCmBvMokbD2Ty86GH.qMOzXKlh6fTUQJRq4C50FC1
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# 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
zerombr  #注意此处,清空MBR
clearpart --all --initlabel #重新初始化硬盘分区

part /boot --fstype=ext4 --size=200  #/boot分区,200M
part swap --size=1024                #swap 分区,1024M
part / --fstype=ext4 --grow --size=1 #根分区/,意为剩下所有的空闲空间都留给/

#repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100  #暂未明白这是什么意思,先注释掉

reboot  #安装完成后自动重启

%packages --nobase   #这里定义需要安装的包
@core                #最小化安装只有一个core就够了。

%post                #%post后面可以接一些命令、脚本。如/bin/touch /root/test.cfg,安装完成后会在/root目录下看到test.cfg文件
/bin/touch /root/test.cfg

#######################################################
#下面是我创建SSH 公钥的脚本
#######################################################
if [ ! -d /root/.ssh ]; then
mkdir /root/.ssh/
fi

if [ ! -f /root/.ssh/authorized_keys ]; then
touch /root/.ssh/authorized_keys
fi

cat <<EOF > /root/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABDAAAAAgQDDZCIIaD6lCRhmRY4wwdhLcqfstvd0aT90Py9g0RTtZxkh7NcJuR/+zupmQ0Bet3UW2sGfiP3JSviQvi82QK9+orh0IC+cCboE0usgSH89nra0LLc0y2Iv816lhjh5Dmn9ubfT5uCkgnJMIu10qUqZbu2b/ypMwMe/5jEFBdG89
w
EOF

%end  #必须的结束标志


最后生成光盘镜像:

#mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -o /data/CentOS-6.3-i386.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /data/OS


把光盘镜像down回本地来安装,6到8分钟后自动安装完成!
本文出自 “枫之歌” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: