Kickstart+HTTP+DHCP+TFTP+PXElinux實現RedHat的網路自動安裝(轉)

BSDLite發表於2007-08-11
Kickstart+HTTP+DHCP+TFTP+PXElinux實現RedHat的網路自動安裝(轉)[@more@]我們知道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服務。可以在瀏覽器內打入:http://192.168.168.6/rh9看一下,是不是能看到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第一張安裝光碟上/image/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。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-947794/,如需轉載,請註明出處,否則將追究法律責任。

相關文章