Linux基于PXE實(shí)現(xiàn)系統(tǒng)全自動無人值守安裝
前言
在生產(chǎn)環(huán)境中,我們時常會需要在多臺客戶端主機(jī)或服務(wù)器安裝操作系統(tǒng),如果每一臺都去手動安裝,費(fèi)時費(fèi)力,顯然是不現(xiàn)實(shí)的。那么,如何高效的完成此類工作呢?文將講解如何實(shí)現(xiàn)Linux系統(tǒng)的全自動無人值守安裝。
提供PXE服務(wù)所需安裝包
dhcp:動態(tài)主機(jī)配置協(xié)議,給客戶端提供ip地址
tftp-server:tftp服務(wù)器端,提供系統(tǒng)安裝所需文件
xinetd:tftp服務(wù)超級守護(hù)進(jìn)程,用于喚醒tftp服務(wù)
httpd:基于http服務(wù)提供安裝源
sysLinux:提供pxeLinux.0文件,此文件用于引導(dǎo)系統(tǒng),相當(dāng)于bootloader
安裝所需安裝包

dhcp服務(wù)配置
dhcp服務(wù)的配置文件默認(rèn)是/etc/dhcp/dhcpd.conf,但此文件默認(rèn)是沒任何配置的,此服務(wù)提供了一個參考文件/usr/share/doc/dhcp*/dhcpd.conf.sample,復(fù)制此文件覆蓋原配置文件,直接修改即可。

#option domain-name "scholar.com"; #分配dns域 #option domain-name-servers 172.16.10.10; #分配dns地址 #default-lease-time 600; #默認(rèn)租約時長 #max-lease-time 7200; #最大租約時長 #以上為dhcp全局配置,如果僅為實(shí)現(xiàn)PXE可默認(rèn) subnet 172.16.0.0 netmask 255.255.0.0 { #提供dhcp服務(wù)的網(wǎng)段 range 172.16.10.20 172.16.10.100; #地址池 option routers 172.16.0.1; #網(wǎng)關(guān) next-server 172.16.10.10; #tftp服務(wù)器地址 filename "pxeLinux.0" #PXE引導(dǎo)文件 } #以下僅為介紹dhcp特殊配置,無需要可不配置 #host winxp { #設(shè)置保留專用地址 # hardware ethernet 00:0c:29:50:29:02; #保留主機(jī)物理地址 # fixed-address 172.16.100.2; #保留地址,非地址池內(nèi)地址,優(yōu)先分配 #}
dhcp服務(wù)配置完成,測試配置無語法錯誤后,啟動服務(wù)并設(shè)置開機(jī)自啟

dhcp工作在upd的67端口,啟動服務(wù)后,可查看67端口是否開啟

tftp服務(wù)配置
xinetd是tftp的超級守護(hù)進(jìn)程,即tftp是xinetd的子服務(wù),修改配置文件,確保tftp服務(wù)沒有被禁用。
[root@scholar ~]# vim /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no #確保此項(xiàng)為no per_source = 11 cps = 100 2 flags = IPv4 }
修改完配置文件,啟動xinetd進(jìn)程并設(shè)置tftp服務(wù)開機(jī)自啟

tftp工作在udp的69端口,啟動服務(wù)后,可查看69端口是否開啟

注意:請將防火請關(guān)閉或設(shè)置相關(guān)規(guī)則允許訪問69端口,不然將無法訪問tftp服務(wù)。
提供引導(dǎo)內(nèi)核等文件
從掛載的光盤中復(fù)制PXE所需文件到tftp工作目錄下(默認(rèn)為/var/lib/tftpboot)

提供PXE工作環(huán)境
復(fù)制pxeLinux.0文件(由sysLinux包提供,需提前安裝)到tftp工作目錄

提供安裝源
可提供安裝源的服務(wù)有很多,例如:http、ftp、nfs等,我們就基于http服務(wù)實(shí)現(xiàn)此操作。在http服務(wù)默認(rèn)的工作目錄里創(chuàng)建一個專為安裝源所使用目錄,并將之與已掛載的光盤目錄綁定。

啟動http服務(wù)并設(shè)置開機(jī)自啟,http服務(wù)工作在tcp的80端口,啟動服務(wù)后,可查看80端口是否開啟。

提供kickstart文件
kickstart文件可以自己創(chuàng)建(需安裝system-config-kickstart.noarch工具),也可以復(fù)制系統(tǒng)文件直接修改。這里我們就不演示創(chuàng)建過程了,直接復(fù)制文件修改(此文件為/root/anaconda-ks.cfg)

#修改或添加以下兩項(xiàng),目標(biāo)指向安裝源 url --url=http://172.16.10.10/RHEL6.6 repo --name="Redhat" --baseurl=http://172.16.10.10/RHEL6.6 --cost=100
為了啟動時能夠加載kickstart文件,還需要修改/var/lib/tftpboot/pxeLinux.cfg/default文件,添加ks文件的位置。
[root@scholar ~]# vim /var/lib/tftpboot/pxeLinux.cfg/default label Linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img ks=http://172.16.10.10/ks.cfg #指向ks文件
啟動測試
將待裝系統(tǒng)的主機(jī)設(shè)置為網(wǎng)卡啟動

開機(jī)開始引導(dǎo)

引導(dǎo)成功開始安裝各種包

安裝成功,查看IP地址

The end
好了,以上便是基于PXE實(shí)現(xiàn)系統(tǒng)全自動無人值守安裝的整個過程,如果在引導(dǎo)時出現(xiàn)無法下載kickstart文件的情況,請檢查網(wǎng)絡(luò)內(nèi)有無dhcp沖突,或seLinux是否關(guān)閉。僅為個人學(xué)習(xí)整理,如有錯漏,大神勿噴~~~