PXE高效能批量網絡裝機
PXE簡紹
PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成終端(客戶端)基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。PXE可以引導多種操作系統,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系統等。
PXE啟動原理
當計算機引導時,BIOS把 PXE Client調入內存中執行,然後由PXE Client將放置在遠端的文件通過網絡下載到本地運行。
若要搭建 PXE網絡體系,必須要滿足以下條件:
- 客戶機的網卡支持 PXE 協議(集成 BOOTROM 芯片),且主板支持網絡引導
- 網絡中有一臺 DHCP 服務器,以便為客戶機分配地址、指定引導文件位置服務器通過 TFTP(Trivial File Transfer Protocol)簡單文件傳輸協議提供引導鏡像文件的下載。
工作過程
工作站開機後, PXE BootROM(自啟動芯片) 獲得控制權之前先做自我測試,然後 以廣播形式發出一個請求 FIND 幀。 如果服務器收到工作站所送出的要求, 就會送回 DHCP 回應, 內容包括用戶端的 IP 地址, 預設通訊通道, 及開機映像文件。否則,服務器會忽略這個要求。工作站收到服務器發回的響應後則會回應一個幀,以請求傳送啟動所需文件。 之後,將有更多的訊息在工作站與服務器之間作應答, 用以決定啟動參數。 BootROM 由 TFTP通訊協議從服務器下載開機映像檔, 這個映像檔就是軟盤的映象文件。 工作站使用 TFTP 協
議接收啟動文件後,將控制權轉交啟動塊,引導操作系統,完成遠程啟動
搭建6系統的PXE遠程安裝服務器
PXE用桌面模式,配置DHCP,配置TFTP
- 準備CentOS6安裝源
使用FTP服務,將安裝源放至/var/ftp/centos6/目錄下
[root@localhost yum.repos.d]# mount /dev/sr0 /media/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost yum.repos.d]# cd ~
[root@localhost ~]# mkdir -p /var/ftp/centos6
[root@localhost ~]# cd /var/ftp/centos6/
[root@localhost centos6]# cp -rp /media/cdrom/* . //將光盤源放入/var/ftp/centos6 中。不懂的研究FTP
- 安裝並啟用TFTP服務
[root@localhost centos6]# yum -y install tftp-server
[root@localhost centos6]# vim /etc/xinetd.d/tftp
root@localhost centos6]# /etc/init.d/xinetd start //啟動服務
正在啟動 xinetd: [確定]
[root@localhost centos6]# chkconfig tftp on //開機自啟動
- 準備Linux內核,初始化鏡像文件
- 準備PXE引導程序,啟動菜單文件
[root@localhost isolinux]# yum -y install syslinux
[root@localhost isolinux]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost isolinux]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 vmlinuz
[root@localhost isolinux]# cp /var/ftp/centos6/isolinux/isolinux.cfg /var/lib/tftpboot/
[root@localhost isolinux]# ls /var/lib/tftpboot/
initrd.img isolinux.cfg pxelinux.0 vmlinuz
[root@localhost isolinux]# chmod 644 /var/lib/tftpboot/isolinux.cfg
[root@localhost isolinux]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# vim isolinux.cfg //內核啟動文件
- 安裝並啟動DHCP服務
[root@localhost tftpboot]# yum -y install dhcp
[root@localhost tftpboot]# cd /etc/dhcp/
[root@localhost dhcp]# ls
dhclient.d dhcpd6.conf dhcpd.conf
[root@localhost dhcp]# vim dhcpd.conf
[root@localhost dhcp]# cp /usr/share/doc/dhcp*/dhcpd.conf.sample .
[root@localhost dhcp]# ls
dhclient.d dhcpd6.conf dhcpd.conf dhcpd.conf.sample
[root@localhost dhcp]# cat dhcpd.conf.sample > dhcpd.conf
[root@localhost dhcp]# vim dhcpd.conf
- 安裝ftp
[root@localhost dhcp]# yum -y install vsftpd
[root@localhost dhcp]# /etc/init.d/vsftpd start
為 vsftpd 啟動 vsftpd: [確定]
我用的是NAT模式所以必須關了NAT否則DHCP沒用
客戶端安裝ftp就可以,然後試一下可不可以鏈接
- 新建虛擬機進行試驗
新建一個空機器
然後就OK,就和正常裝機一樣了
實現 kickstart
- 創建應答文件
[root@localhost ~]# yum -y install system-config-kickstart
-
修改配置
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
-
這就是自動裝機,不過有一個地方會卡一下,現在我們解決
[root@localhost ~]# vim /var/ftp/ks.cfg
最好重啟下服務再實驗
PXE高效能批量網絡裝機