歡迎您光臨本站 註冊首頁

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

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

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服務。可以在瀏覽器內打入: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 8)  8) 啟動
allow bootp;      #定義支持boottp
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:9B:DB;
                        fixed-address 192.168.168.128;
                }
        }}

紅色的部分為在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
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
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
紅色的部份是我加的,用於實現本地硬碟啟動或支持kickstart的PXE網路自動安裝。
cat一下/tftpboot/boot.msg文件:
splash.lss
-  To Local boot 02Red Hat07 Linux , type:
    0f<ENTER>;07.
-  To install or upgrade 02Red Hat07 Linux in graphical mode,
    press the 0f linux<ENTER>;07 key.

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

-  To Auto Install 02Red Hat07 Linux , type:
    0flinux autoinstall <ENTER>;07.
-  Use the function keys listed below for more information.

02 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  :)

6 ks.cfg文件
install
url --url http://192.168.168.35/rh7
lang en_US
langsupport --default en_US.iso885915 zh_CN.GB18030 zh_TW.Big5 en_US.iso885915
keyboard us
mouse generic3ps/2 --device psaux
skipx
rootpw --iscrypted $1$驜N/衢KL$RKxVATP6iXeJ5T9mwFiUn/
firewall --disabled
authconfig --enableshadow --enablemd5
timezone Asia/Shanghai
bootloader --useLilo
# 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
clearpart --all
part / --fstype ext3 --size=512
part /usr --fstype ext3 --size=4000
part swap --size=1024
part /var --fstype ext3 --size=512
part /home --fstype ext3 --size=1 --grow

%packages
@ Printing Support
@ Classic X Window System
@ X Window System
@ GNOME
@ Sound and Multimedia Support
@ Network Support
@ Dialup Support
@ Messaging and Web Tools
@ Everything
kernel-smp

%post
/usr/sbin/useradd cxbaby
chfn -f 'cxbaby' cxbaby
/usr/sbin/usermod -p '$1$挽.z礧翕$Xd2eupp3vJyRdvUyGxDvd/' cxbaby
《解決方案》

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

挺好....俺幫你頂一下....
《解決方案》

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

有沒有通過linux平台下的DHCP+HTTP+TFTP實現win2000、freeBSD的PXE啟動的網路安裝的方法?這樣在機房放一台這樣的機器,就不用跑機房去重新安裝機器了,呵呵。還請各位高手多多指點。
《解決方案》

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

我也在一直研究PXE方式!!
可惜找不到答案,網中人的網站上有相關文章,我也看了,他寫的無盤是「准無盤」,即必須本地要有硬碟,你可以看看。
《解決方案》

修改boot.img文件的時候,這個文件本來是2進位的,那些07什麼的怎麼輸才能生效?
《解決方案》

原帖由 bluejesica 於 2006-7-26 17:18 發表
修改boot.img文件的時候,這個文件本來是2進位的,那些07什麼的怎麼輸才能生效?

兄台,樓主沒有修改boot.img啊,只是改了一下msg文件,用於在啟動后的界面上顯示提示信息。
《解決方案》

強烈支持中!
《解決方案》

哦,我寫錯了,是boot.msg文件
《解決方案》

工作只作了一半。

提示一下:研究一下RH的安裝程序 anacon的命令行參數,把適當的參數寫到pxelinux.cf/default 文件里的vmlinuz 後面,可以完全自動。

用NFS方式比較好,只要把iso 文件放在NFS共享出來的目錄里就好
《解決方案》

用ks也有5年左右了,如果有興趣把ks玩漂亮的,最好研究一下這個
http://syslinux.zytor.com/pxe.php

[火星人 ] Kickstart+HTTP+DHCP+TFTP+PXElinux實現RedHat的網路自動安裝已經有749次圍觀

http://coctec.com/docs/service/show-post-14005.html