1 前言
笔者在去年写了「如何大量部署Linux」文章时后,还有很多内容想写,不过实在没时间动笔。时至今日,趁着短暂假日,好不容易动笔撰写「如何大量部署Linux」续篇。建议读者阅读此篇文章前。
前篇「如何大量部署Linux」文章的部署方法适合一般环境或是学校教室,为什麽这样说呢?现实中,企业在大量部署Linux时,要求会比较严谨,例如某台机器安装完毕后应该就是所特定的主机名称,就是所特定的IP,安装时也不该开机时还出现PXE选单,然后再选择所需安装的作业系统,应该要完全自动化,机器开机后无需再输入任何参数,就会自动完成安装。
--------------------------------------------
本片全文PDF下载在Linux公社FTP里下载
Ubuntu 主题图标集 Faenza 0.8打包下载在Linux公社FTP里
在2010年LinuxIDC.com\11月\利用PXE Server大量部署Linux\
--------------------------------------------
2 原理说明
PXE跟kickstart的原理上一篇文章有大致的介绍,在此就不再最赘述;不过这篇要深入探讨PXE的部份。上一篇文章的图6(图1),不知道笔者有没有注意到PXE开机时的一些讯息。
ip=192.168.0.251…
Trying to load: pxelinux.cfg/01-00-0c-29-96-44-db
Trying to load: pxelinux.cfg/C0A800FB
图 1:PXE Menu画面
其实PXE开机时,会先找PXE Server上pxelinux.cfg/目录下有没有跟网卡MAC一样的设定档: Trying to load: pxelinux.cfg/01-00-0c-29-96-44-db
00-0c-29-96-44-db就是PXE开机那张网卡的IP,如果找不到这个设定档,如果找不到的话,就接着有没有跟这张网卡上IP一样的设定档: Trying to load: pxelinux.cfg/C0A800FB
读者到这里一定会???,这张网卡从DHCP Server上要的IP不是192.168.0.251,跟「C0A800FB」有什麽关係? 呵呵,这时候就得请「16进位」出马了,其实192.168.0.251就是「C0A800FB
C0是16进位的表示法,16进位制中的C就是十进位的12。
16进位就是数到16才进位,所以个位数如下:
1, 2, 3, 5, 6, 7, 8, 9, A(代表10), B(代表11), C(代表12), D(代表13), E(代表14), F(代表15)。
「C0换成10进位就是C*16+0=12*16+0=192」
「A8换成10进位就是A*16+0=10*16+8=168」
「00换成10进位就是0*16+0=10*0+0=0」
「FB换成10进位就是F*16+B=15*16+11=251」 这样瞭解了吗?原来「C0A800FB」就是1921680251
如果找不到「C0A800FB」就接着找「C0A800F」「C0A800」…最后才採用「default」的内容。此篇文章的安装流程便是利用此原理,整个流程如下:
1. 架设Installation Server on RHEL 5.5
2. 架设PXE Server
3. 收集欲安装机器上网卡的MAC(其实MAC的收集与记录是资产管理很重要的项目) www.linuxidc.com
4. 在dhcpd.conf指定此MAC Address给予特定的IP (ex. 192.168.0.101)及hostname (ex. station1)
5. 在/tftpboot/pxelinux.cfg目录中建立defalut设定档,内容为从硬碟开机。
6. 建立产生PXE档桉的shell script,并在shell script中指定所使用的kickstart档(http://server name/cgi-bin/rhel-5.5.sh)
7. 在/tftpboot/pxelinux.cfg目录中建立此IP(192.168.0.101)所对应的PXE设定档(C0A80065)
8. rhel-5.5.sh为利用bash shell script撰写的CGI程式,此程式会根据Client的IP及dhcpd.conf去产生对应的kickstart档(固定IP=192.168.0.101及设定hostname)
9. 安装完毕后,rhel_5.5.sh在最后会删除/tftpboot/pxelinux.cfg目录中的C0A800FB,这样下次重新开机时,就不会重複安装。 1
10. 修改欲安装机器的Boot Sequence:「Network Boot」放在第一顺位,然后reboot,便开始自动安装。