Linux基于PXE實現系統全自動無人值守安裝
前言
在生產環境中,我們時常會需要在多臺客戶端主機或服務器安裝操作系統,如果每一臺都去手動安裝,費時費力,顯然是不現實的。那么,如何高效的完成此類工作呢?文將講解如何實現Linux系統的全自動無人值守安裝。
提供PXE服務所需安裝包
dhcp:動態主機配置協議,給客戶端提供ip地址
tftp-server:tftp服務器端,提供系統安裝所需文件
xinetd:tftp服務超級守護進程,用于喚醒tftp服務
httpd:基于http服務提供安裝源
sysLinux:提供pxeLinux.0文件,此文件用于引導系統,相當于bootloader
安裝所需安裝包
dhcp服務配置
dhcp服務的配置文件默認是/etc/dhcp/dhcpd.conf,但此文件默認是沒任何配置的,此服務提供了一個參考文件/usr/share/doc/dhcp*/dhcpd.conf.sample,復制此文件覆蓋原配置文件,直接修改即可。
#option domain-name "scholar.com"; #分配dns域 #option domain-name-servers 172.16.10.10; #分配dns地址 #default-lease-time 600; #默認租約時長 #max-lease-time 7200; #最大租約時長 #以上為dhcp全局配置,如果僅為實現PXE可默認 subnet 172.16.0.0 netmask 255.255.0.0 { #提供dhcp服務的網段 range 172.16.10.20 172.16.10.100; #地址池 option routers 172.16.0.1; #網關 next-server 172.16.10.10; #tftp服務器地址 filename "pxeLinux.0" #PXE引導文件 } #以下僅為介紹dhcp特殊配置,無需要可不配置 #host winxp { #設置保留專用地址 # hardware ethernet 00:0c:29:50:29:02; #保留主機物理地址 # fixed-address 172.16.100.2; #保留地址,非地址池內地址,優先分配 #}
dhcp服務配置完成,測試配置無語法錯誤后,啟動服務并設置開機自啟
dhcp工作在upd的67端口,啟動服務后,可查看67端口是否開啟
tftp服務配置
xinetd是tftp的超級守護進程,即tftp是xinetd的子服務,修改配置文件,確保tftp服務沒有被禁用。
[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 #確保此項為no per_source = 11 cps = 100 2 flags = IPv4 }
修改完配置文件,啟動xinetd進程并設置tftp服務開機自啟
tftp工作在udp的69端口,啟動服務后,可查看69端口是否開啟
注意:請將防火請關閉或設置相關規則允許訪問69端口,不然將無法訪問tftp服務。
提供引導內核等文件
從掛載的光盤中復制PXE所需文件到tftp工作目錄下(默認為/var/lib/tftpboot)
提供PXE工作環境
復制pxeLinux.0文件(由sysLinux包提供,需提前安裝)到tftp工作目錄
提供安裝源
可提供安裝源的服務有很多,例如:http、ftp、nfs等,我們就基于http服務實現此操作。在http服務默認的工作目錄里創建一個專為安裝源所使用目錄,并將之與已掛載的光盤目錄綁定。
啟動http服務并設置開機自啟,http服務工作在tcp的80端口,啟動服務后,可查看80端口是否開啟。
提供kickstart文件
kickstart文件可以自己創建(需安裝system-config-kickstart.noarch工具),也可以復制系統文件直接修改。這里我們就不演示創建過程了,直接復制文件修改(此文件為/root/anaconda-ks.cfg)
#修改或添加以下兩項,目標指向安裝源 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文件
啟動測試
將待裝系統的主機設置為網卡啟動
開機開始引導
引導成功開始安裝各種包
安裝成功,查看IP地址
The end
好了,以上便是基于PXE實現系統全自動無人值守安裝的整個過程,如果在引導時出現無法下載kickstart文件的情況,請檢查網絡內有無dhcp沖突,或seLinux是否關閉。僅為個人學習整理,如有錯漏,大神勿噴~~~