HTTP+TFTP+DHCP+Kickstart+PXE
從網絡引導系統的做法可以不必從硬碟、軟碟或者CD-ROMCD光牒,而是完全通過網絡來引導一台計算機。這對于安裝來說很友善,因為它意味着你可以坐在桌子旁邊,不必走到機器那裡插入CD-ROMCD光牒或者軟碟,就可以從網絡上引導位于别處的一台機器。
PXE的作用就像是在網卡上ROM裡的一小小作業系統,它通過一個标準API把自已的網絡引導功能提供給系統的BIOS,就可以通過網絡啟動linux;PXE網絡引導過程:一台主機廣播一個設定了PXE選項的DHCP“發現”請求,然後一台DHCP伺服器用一個包含有PXE選項的DHCP包來響應它(引導伺服器的IP位址和引導檔案的名字)。客戶機通過TFTP下載下傳它的引導檔案,然後執行這個引導檔案。
Red Hat用于執行自動安裝的工具叫做kickstart,由system-config-kickstart工具生成kickstart的配置檔案ks.cfg.
實驗環境:準備兩台虛拟機,一台作為測試環境(Centos6.3,IP為192.168.50.1),另一台作為被安裝端,設定網絡引導安裝。
安裝所需要的服務及修改相應配置檔案:1. 用yum來安裝所需要的軟體包,預設配置即可(這個方法要保證該測試機能夠上網):
2.安裝httpd服務以及開啟服務,設定為開機自動啟動。
[root@test1 ~]# yum install httpd –y
[root@test1 ~]# /etc/init.d/httpd start
[root@test1 ~]# chkconfig httpd on、
[root@test1 ~]#cd /var/www/html
[root@test1 ~]#mkdir data && chown apache.apache *
3.安裝TFTP,修改tftp配置檔案及開啟服務
[root@test1 ~]# yum install tftp –y
[root@test1 ~]# yum install tftp-server –y
[root@test1 ~]#vim /etc/xinet.d/tftp
修改配置檔案裡面的13,14行
接着重新啟動xinetd服務,然後檢視服務端口是否打開。
[root@test1 ~]# /etc/init.d/xinetd restart
[root@test1 ~]#lsof -i :69
OK,TFTP服務正常啟動。重新開機Xinetd服務并設為開機自啟動。
[root@test1 ~]#service xinetd restart
[root@test1 ~]#chkconfig xinetd on
4. 安裝 dhcp ,修改配置檔案及開啟服務:[root@test1 ~]# yum install dhcp –y
[root@test1 ~]#vim /etc/dhcp/dhcpd.conf
第7,8行是網絡引導需要的配置,必須要有的。
接着啟動DHCP,設定為開機啟動.若啟動失敗則在/var/log/message中檢視錯誤日志。
[root@test1 ~]# /etc/init.d/dhcpd start
[root@test1 ~]# chkconfig dhcpd on
準備工作完成,我們開始配置 Kickstart[root@test1 ~]# mkdir –p /tftpboot/pxelinux.cfg
[root@test1 ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
---- 如果找不到 syslinux 目錄,需要安裝包 yum install system-config-kickstart.noarch –y[root@test1 ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@test1 ~]# cp /mnt/p_w_picpaths/pxeboot/initrd.img /tftpboot/
[root@test1 ~]# cp /mnt/p_w_picpaths/pxeboot/vmlinuz /tftpboot/
[root@test1 ~]# chmod 644 /tftpboot/pxelinux.cfg/default
[root@test1 ~]#vim /tftpboot/pxelinux.cfg/default
然後修改/tftpboot/pxelinux.cfg/default的配置檔案。
檔案裡面需要修改兩行,修改第1行,後面的linux意思是尋找下面18行的label linux,然後修改下22行(即在後面添加ks=http://192.168.50.1/ks.cfg)。第22行的意思是使安裝程式通過http伺服器通路kickstart檔案。
配置檔案修改完了,要開始自動安裝,安裝程式必須能通路kickstart檔案。有多種方法可通路kickstart檔案,其中最常用的一種方法是通過網絡伺服器進行,例如:ftp伺服器、WEB伺服器或NFS伺服器,這種方法非常易于部署,并且也使管理更改變得十分簡單。也可以通過USB磁盤、CD-ROM或本地硬碟。如果USB或CD-ROM中的kickstart檔案非常便于通路,隻需将kickstart檔案放置在用來開始安裝的引導媒體中。而使用DHCP伺服器和TFTP及PXE配置起來更為複雜。
使安裝程式指向kickstart檔案的書寫格式如下:
ks=ftp://server/dir/file 如:ks=ftp://ftp伺服器IP/ks.cfg
ks=http://server/dir/file 如:ks=http://http伺服器IP/ks.cfg
ks=nfs:server:/dir/file 如:ks=nfs:nfs伺服器IP:/var/ftp/pub/ks.cfg
ks=hd:device:/dir/file 如:ks=hd:sdb1:/kickstar-files/ks.cfg
ks=cdrom:/dir/file 如:ks=cdrom:/kickstart-files/ks.cfg
以上有關default配置檔案的修改就是通過web伺服器方式來通路kickstart檔案。接下來我們制作kickstart的無人值守安裝檔案。
接下來我們打開終端輸入system-config-kickstart彈出來界面。
我們設定下預設安裝的語言,時區,根密碼,然後勾選下面的安裝後重新開機。然後選擇安裝方法。
我們配置HTTP伺服器的安裝方法。選擇執行新安裝。然後點選引導裝載程式選項
參考我上面的選擇。接着
到這一步,選擇部分參考我的。布局這裡,我們自己設定下分區大小。
網絡這裡,預設沒有,點選添加網絡,裝置名稱為eth0,網絡類型為dhcp
參考我的配置
防火牆和selinux根據自己需求選擇開啟或者禁用
這裡由于是伺服器,是以不安裝圖形環境
在這裡勾選一些包,預設可能沒有勾選桌面。根據自己需求勾選。後面剩餘的兩項不需要配置。
然後點選左上角的檔案選擇儲存,選擇下儲存的路徑,然後複制ks.cfg檔案到/var/www/html目錄下:
[root@test1 ~]#cp ks.cfg /var/www/html/
注:ks.cfg就是無人值守安裝時要用的Kickstart檔案,該檔案可以手動進行編輯,如果手動編輯Kickstart檔案,則使用ksvalidator來驗證該檔案使用正确的關鍵字,但卻無法驗證URL路徑、各個資料包或組等書寫錯誤。Ksvalidator是system-config-kickstart資料包的一部分,是以必須要安裝該軟體包
--- 還記的 /tftpboot/pxelinux.cfg/default 檔案中設定過 ks=http://192.168.50.1/ks.cfg 是以必須執行上面的一步 挂載 Centos 安裝CD光牒到 /var/www/html/data 目錄下,開始執行另一台機器的無人值守安裝:
[root@test1 ~]#umount /dev/cdrom
[root@test1 ~]#mount /dev/cdrom /var/www/html/data
注意:建議關閉防火牆和selinux,如果沒有關閉的話,tftp服務會有問題。不信可以試試。
設定防火牆:
#iptables -F
#service iptables save
關畢selinux功能:有如下兩種方法可以實作
1) 永久關閉selinux功能:修改/etc/sysconfig/selinux檔案,将SELINUX=enforcing改為disable,要重新開機系統才生效