Kickstart+HTTP+DHCP+TFTP+PXElinux實現RedHat的網絡自動安裝

我們知道RH中的Kickstart可以實現RedHat光盤啓動後的自動安裝,如果把ks.cfg及RPM安裝文件考到一臺HTTP或NFS服務器上,就可以實現網絡自動安裝,但還是需要RedHat的啓動盤來啓動機器,但加上DHCP、TFTP和PXElinux及支持PXE的網卡,噢,那就可以實現遠程啓動了。也就是說,有了上面的條件,你只要給一臺支持PXE的客戶機上電,然後再打入一個設置好的命令就可以安裝好一RedHat臺機器了。
實現上面安裝的過程是這樣的:PXE網卡啓動------DHCP服務器------獲得IP------從TFTP上下載pxelinux.0、vmlinuz、initrd------啓動系統------通過PEXlinux去HTTP下載ks.cfg文件-----跟據ks.cfg去HTTP下載RPM包及安裝系統------完成安裝。
具體實現的過程是這樣的:
1、 配製一個HTTP服務器(當然也可以是NFS、FTP)及kickstart文件:
1) 如何配HTTP我就不說了,配好後,在HTTP的DocumentRoot目錄下(一般爲/var/www/html)建一個rh9目錄,用於放RedHat9的安裝文件。把RedHat9第一張安裝盤的RedHat目錄及下面的內容全部考到這個目錄下,把第二、第三張盤的RPMS目錄下的rpm包考到rh9/RedHat/RPMS目錄下,完成安裝文件的考貝。service httpd restart開啓HTTP服務。可以在瀏覽器內打入:[url]http://192.168.168.6/rh9[/url]看一下,是不是能看到RedHat目錄。
2) 用redhat-config-kickstart命令做一個ks.cfg文件,注意在“安裝方法”選項中 選HTTP,在“HTTP服務器:”中打入HTTP服務器的IP地址,在“HTTP目錄:”中打入rh9,其它的我就不多說了。做好後把這個ks.cfg文件考到HTTP服務器的DocumentRoot/rh9目錄下。
3) 在一臺機器上做一下測試(注意:因爲是自動安裝,這臺機器的上的數據可能全部被格掉喔)。用光盤啓動機器,在boot:提示符下打入:linux ks=http://192.168.168.6/rh9/ks.cfg,看一下是不是能實現自動安裝,如果能,OK我們一半的工作已經做好了。
2、 配製DHCP、TFTP、和PXElinux。(當然這些服務可以和HTTP放在一臺服器上)
1) 做一臺TFTP服務器太容易了,用rpm –qa | grep tftp看一下tftp有沒安裝,沒有的話安裝一下。用chkconfig tftp on 打開xinetd代理的tftp服務。
2) 做一臺DHCP服務器,這是關鍵。下面是我的dhcp.conf文件:
ddns-update-style interim;
ignore client-updates;
allow booting; #定義可以PXE 啓動
allow bootp; #定義支持boottp[/color:ffa4e84ade]
subnet 192.168.168.0 netmask 255.255.255.0 {

option routers 192.168.168.230; #定義默認網關
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.168.6; #定義nameServer
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.168.12 192.168.168.254;
default-lease-time 21600;
max-lease-time 43200;
# Group the PXE bootable hosts together 定義可以PEX啓動的主機的組
group {
# PXE-specific configuration directives...
next-server 192.168.168.6; #TFTPServer的IP
filename "/pxelinux.0";#pxelinux loader文件位置

# You need an entry like this for every host
# unless you're using dynamic addresses #可PEX啓動的主
#機的IP與MAC地址的邦定
host wy {
hardware ethernet 00:00:E2:89:9BB;
fixed-address 192.168.168.128;
}
}[/color:ffa4e84ade]}

紅色的部分爲在DHCP中支持TFTP及PXElinux的所要添加的部分。service dhcpd restart 開啓DHCP服務。
3) 配製PEXlinux。要遠程啓動機器,就必須要有PXElinux這個由syslinux、isolinux派生出來的,支持PXE的bootloader,它可以實現遠程通過PEX啓動一臺機器。把/usr/lib/syslinux/pxelinux.0考到/tftpboot目錄下,把RedHat9第一張安裝光盤上/p_w_picpath/pxeboot/initr.img和vmlinux也考到/tftpboot目錄下。在/tftpboot建一個pxelinux.cfg目錄,用於放syslinux的配製文件。Sysconfig的配製文件有現成的可用,在rh9第一張安裝光盤isolinux/下有一個isolinux.cfg文件,把它考成/tftpboot/default,把isolinux/*.msg考到/tftpboot下(RedHat的安裝光盤的Loader就是個isolinux,呵呵)。對default(也就是isolinux.cfg)作一下修改,下面是我的default文件:
default local [/color:ffa4e84ade]
prompt 1
timeout 30
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
F7 snake.msg
label local
localboot 0[/color:ffa4e84ade]
label linux
kernel vmlinuz
append initrd=initrd.img devfs=nomount ramdisk_size=9216
label text
kernel vmlinuz
append initrd=initrd.img text devfs=nomount ramdisk_size=9216
label expert
kernel vmlinuz
append expert initrd=initrd.img devfs=nomount ramdisk_size=9216
label ks
kernel vmlinuz
append ks initrd=initrd.img devfs=nomount ramdisk_size=9216
label nofb
kernel vmlinuz
append initrd=initrd.img devfs=nomount nofb ramdisk_size=9216
label lowres
kernel vmlinuz
append initrd=initrd.img lowres devfs=nomount ramdisk_size=9216
label autoinstall
kernel vmlinuz
append ks=http://192.168.168.6/rh9/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=9216 nofb[/color:ffa4e84ade]
紅色的部份是我加的,用於實現本地硬盤啓動或支持kickstart的PXE網絡自動安裝。
cat一下/tftpboot/boot.msg文件:
splash.lss
- To Local boot 02Red Hat07 Linux , type:
0f07.[/color:ffa4e84ade]
- To install or upgrade 02Red Hat07 Linux in graphical mode,
press the 0f linux07 key.

- To install or upgrade 02Red Hat07 Linux in text mode, type:
0flinux text 07.

- To Auto Install 02Red Hat07 Linux , type:
0flinux autoinstall 07.[/color:ffa4e84ade]
- Use the function keys listed below for more information.

02[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]07
紅色行是我加入的,用於顯示Local boot 和autoinstall選項。
3、 OK,到現在服務器端的配製已經基本完成了,讓我們來試一下。用一臺支持PXE的機器加電啓動,按F12,一般機器啓動時會有提示(請進入BIOS看一下,確認網卡或主板的PXE功能已經打開),選擇LAN啓動,看到了什麼? “DHCP…………………FFFFFFFFFFFFF”接着一個和光盤啓動的差不多的畫面,是吧?按一下F2試一下,F2的選項是不是也出來了。打入linux rescue 試試,是不是進入了rescue模式?HOHO~~,以後客戶機啓不來還要用光盤來重啓進rescue模式嗎?當然不用了,把安裝光盤扔了吧,哈哈。
再重啓機器,按F12,選擇LAN,在PXE啓動安裝界面的boot:提示符下打入linux autoinstall試試?HOHO~~,一個多小時後,一臺新的rh9就這麼安裝好了。是不是很方便呢?
4、 參考文檔:/usr/share/doc/syslinux-1.75/pxelinux.doc
/usr/share/doc/syslinux-1.75/isolinux.doc
/usr/share/doc/syslinux-1.75/syslinux.doc
/usr/share/doc/dhcp-3.0pl1/README
/usr/share/doc/httpd-2.0.40/README
/usr/share/doc/pxe-0.1/README
5、最後,感謝我的RHCE老師simon cheng,是他給了我提示和幫助,雖然有時我問他10個不同的問題,他回答我9個是同一個答案:See readme。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章