注意,以下是从文档里摘出来的大部分信息,文档中比下面只是多了些图形描述!
查看全部信息请下载文档(http://down.51cto.com/data/706219)!!!欢迎交流。
大量机器需要安装系统的时候,一台一台的安装很浪费时间与精力,于是使用kickstart便能实现批量安装,安装时只需要按一下机器电源,选网络安装便可。
本文档是在实际试验的基础上完成的,文中每一步都是新手操作,按照步骤便能部署完成。
安装环境,需要一台安装好CentOS6.0(作为部署自动化系统用)的一台电脑,系统中准备系统ISO文件;需要使用的服务或组件:dhcp服务、tftp服务、ftp服务和Kickstart。
下面是部署过程:
1、创建yum本地安装源:
[root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost ~]#mkdir bak [root@localhost ~]#mv C* bak [root@localhost ~]#vim yum.repo #创建并编辑yum.repo |
添加以下内容
[base] name=CentOS-6.0-64-dvd baseurl=ftp://192.168.144.2/centos/6.0/x86_64/dvd#注意需要与下面ftp挂载配合使用,这里暂时先写,本机IP为144.2 gpgcheck=0 enabled=1 |
2、挂载ISO文件
#创建pub/centos/6.0/x86_64/dvd 目录 [root@localhost ~]# mkdir -p /var/ftp/pub/centos60-64/dvd #编辑自动挂载配置文件fstab,将ISO文件挂载在ftp目录下 [root@localhost ~]#vim /etc/fstab #在文件末尾增加一行,一共六段,注意空格:#1:ISO文件位置,2:挂载ftp路径,3:iso9660,4:loop,defaults,5、6:0 /opt/iso/CentOS-6.0-x86_64-bin-DVD1.iso /var/ftp/centos/6.0/x86_64/dvd iso9660 defaults,loop 0 0 |
挂载
[root@localhost ~]# mount -a |
此次试验挂载了三个ISO
ISO文件源位置 |
挂载目录 |
/opt/iso/CentOS-5.5-i386-bin-DVD.iso |
/var/ftp/centos/5.5/i386/dvd |
/opt/iso/CentOS-5.5-x86_64-bin-DVD-1of2.iso |
/var/ftp/centos/5.5/x86_64/dvd |
/opt/iso/CentOS-6.0-x86_64-bin-DVD1.iso |
/var/ftp/centos/6.0/x86_64/dvd |
因为使用yum下载挂载的ISO里面的包,需要ftp的服务的支撑。所以在这一步需要先安装ftp服务,此次是进入已挂载好的ISO里面去安装,如下:
[root@localhost ~]# cd /var/ftp/centos/6.0/x86_64/dvd/Packages/ [root@localhost Packages]# rpm -ivh vsftpd- 2.2.2 -6.el6.x86_64.rpm [root@localhost Packages]# service vsftpd start [root@localhost Packages]# chkconfig vsftpd on |
包(服务)的名称 |
在此次试验的用途 |
dhcp |
给安装端提供分配IP地址的服务,并指定tftp |
Tftp-server |
工具下载,提供pxelinux.0文件的下载 |
sytem-config-ickstart |
生成ks.cfg文件所用 |
vsftpd |
为安装端提供下载服务 |
syslinux |
生成pxelinux.0文件,此文件需要用到 |
# vsftpd已在上面一步骤安装,所以此步骤不需要再次安装 [root@localhost ~]# yum install -y dhcp tftp-server syslinux system-config-kickstart |
配置文件位置:/etc/xinetd.d/tftp,使用vim编辑器进行编辑:
[root@localhost ~]# vim /etc/xinetd.d/tftp |
内容如下,蓝色字体是需要修改行:
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -u nobody -s /var/lib/tftpboot #添加-u nobody disable = no #修改为no per_source = 11 cps = 100 2 flags = IPv4 } |
修改之后,保存配置文件,启动tftp服务:
[root@localhost ~]# service xinetd start [root@localhost ~]# chkconfig xinetd on |
配置dhcp,配置文件/etc/dhcp/dhcpd.conf
[root@localhost ~]# cp /usr/share/doc/dhcp- 4.1.1 /dhcpd.conf.sample /etc/dhcp/dhcpd.conf [root@localhost ~]# vim /etc/dhcp/dhcpd.conf |
配置如下,蓝色字体为更改项
添加全局参数如下两行: allow booting; allow bootp; # A slightly different configuration for an internal subnet. #下面一行是设网段与子网 subnet 192.168.144.0 netmask 255.255.255.0 { #以下一行是准备给安装的机器分配IP范围 range 192.168.144.181 192.168.144.190; option domain-name-servers ns1.internal.example.org; option domain-name "internal.example.org"; #以下一行是网关 option routers 192.168.144.1; #以下一行为本网段的广播地址 option broadcast-address 192.168.144.255; default-lease-time 600; max-lease-time 7200; #以下一行是指定下一个服务器地址,本次试验所有服务都在本机上,所以指向本机IP next-server 192.168.144.2; #以下一行是指定启动的映象文件,放在/var/lib/tftpboot目录下 filename "pxelinux.0"; } |
启动dhcp服务:
#service dhcpd start #chkconfig dhcpd on |
pxe引导的前提
[root@localhost ~]#mkdir /var/lib/tftpboot/pxelinux.cfg [root@localhost ~]#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ |
从ISO中拷贝文件:
[root@localhost ~]#cd /var/ftp/centos/6.0/x86_64/dvd/isolinux/ [root@localhost isolinux]#cp boot.msg vesamenu.c32 splash.jpg /var/lib/tftpboot/ [root@localhost isolinux]# cd /var/ftp/centos/6.0/x86_64/dvd/images/pxeboot/ [root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/ |
编辑/var/lib/tftpboot/pxelinux.cfg/default文件,该文件为引导界面文件,此文件本不存在,需要到其它地方拷贝过来:
[root@localhost pxeboot]# cp /var/ftp/centos/6.0/x86_64/dvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default [root@localhost pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default |
蓝色字体为本次所更改:
default vesamenu.c32 #prompt 1 timeout 600 display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.0! 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 ^AUTO Install CentOS 6.0 64Bit menu default kernel vmlinuz6064 append initrd=initrd6064.img ks=ftp://192.168.144.2/centos/ks/ks6.0-64.cfg ksdevice=eth0 text #上面一行红字体“ksdevice=eth 0 ” 表示多网卡的情况下选网卡eth0口,“text”表示非图形安装,红色字体是可选项 |
而在一套自动化安装系统中做多系统可选安装的
则需要另外做一套initrd.img与vmlinuz (与做系统版本对应的,如想做centos5.5-64位自动化安装的就需要进centos5.5-64位里面,安装5.5版本对应的kickstart,然后生成ks文件)
为了方便管理,每套文件放到对应的目录下面,具体操作部署如下:
系统版本 |
对应的文件 |
存放位置 |
Centos5.5_i386 |
initrd.img vmlinuz |
/var/lib/tftpboot/centos5.5_i386 |
Centos5.5_x86_64 |
initrd.img vmlinuz |
/var/lib/tftpboot/centos5.5_x86_64 |
Centos6.0_x86_64 |
initrd.img vmlinuz |
/var/lib/tftpboot/centos6.0_x86_64 |
以下为default所有内容,蓝色字体为所改项,其它为默认。具体细节在此不再深入!
default vesamenu.c32 #prompt 1 timeout 600 display boot.msg menu background splash.jpg menu title Welcome to AUTO Install CentOS system for MOVISION! 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 #以下为三个系统的安装选择菜单项,最下面一个为默认,其中类似ks5.5-64.cfg的文件,需要在kickstart里面生成后改成相对应的名子,存放目录为服务器的/var/ftp/centos/ks label centos5.5_i386 menu label ^AUTO Install CentOS 5.5 32Bit kernel centos5.5_i386/vmlinuz append initrd=centos5.5_i386/initrd.img ks=ftp://192.168.144.2/centos/ks/ks5.5-32.cfg label centos5.5_x86_64 menu label ^AUTO Install CentOS 5.5 64Bit kernel centos5.5_x86_64/vmlinuz append initrd=centos5.5_x86_64/initrd.img ks=ftp://192.168.144.2/centos/ks/ks5.5-64.cfg label centos6.0_x86_64 menu label ^AUTO Install CentOS 6.0 64Bit menu default kernel centos6.0_x86_64/vmlinuz append initrd=centos6.0_x86_64/initrd.img ks=ftp://192.168.144.2/centos/ks/ks6.0-64.cfg |
以上基本部署都完成了,接下来就是需要利用kicstart成生)各版本操作系统的KS文件
使用Kickstart来生成自动化安装文件,kickstart软件使用很简单,和安装一遍Linux一样,其中安装源选择如下(以Cenots6.0-64为例):
在linux命令行输入system-config-kickstart回画出现 kickstart 画面
暂时把ks.cfg文件保存到/opt目录下面
复制ks.cfg文件到/var/ftp/centos/ks,并修改权限、修改相关内容
[root@localhost opt]# cd /var/ftp/centos/ks/ [root@localhost ks]# cp /opt/ks.cfg /var/ftp/centos/ks [root@localhost ks]#mv ks.cfg ks6.0-64.cfg [root@localhost ks]# chmod 777 /var/ftp/centos/ks/ks6.0-64.cfg [root@localhost opt]# vim /var/ftp/pub/ks.cfg #打开文件,添加以下蓝色字体内容(主要是为了自适应磁盘大小) part / --fstype="ext4" --size=4096 --grow |
如果在实际环境中,如果没有图形化界面的话,可以直接找到一个已安装好的centos6.0-64的系统,使用/root/anaconda-ks.cfg,进行做相应更改。system-config-kickstart的作用就是生成这样的文件,配置好后,将ks.cfg文件保存到ftp目录/var/ftp下,整个配置完成,其他没有安装系统的服务器,选择从网卡引导系统,系统会自动化安装。
被自动化安装端设置
因为是在虚拟机上做的试验,所以接下来是需要配置即将被自动化安装的安装端相关信息:
给网卡做桥接:
复制一个网卡信息(ifcfg-eth0)到ifcfg-br0
1、 修改ifcfg-br0信息 (添加、修改以下两行)
DEVICE=br0
TYPE=Bridge
2、 修改ifcfg-eth0信息 (添加、修改以下一行)
BRIDGE=br0
3、重启网卡
解决了多台服务器重复安装的问题,减少了时间。
linux相对而言来说是个比较成熟的产品,但问题(BUG)有很多,大部分的问题网上都会有对应的解决方案,通过自己的学习可以转化为我用,提高工作效率,节约时间。