1. 程式人生 > 其它 >PXE批量裝機

PXE批量裝機

PXE概述

 PXE (Preboot eXcution Environment)

  • 預啟動執行環境,在作業系統之前執行
  • 由Intel公司開發的網路引導技術,工作在Client/Server模式, 允許客戶機通過網路從遠端伺服器下載引導映象,並載入安裝檔案或者整個作業系統

 PXE批量部署的優點

  • 規模化同時裝配多臺伺服器
  • 自動化安裝系統、配置各種服務
  • 遠端實現不需要光碟、U盤等安裝介質

部署PXE

搭建PXE網路體系,必須滿足以下幾個前提條件

  服務端

  • 網路中有一臺DHCP伺服器以便為客戶機自動分配地址、指定引導檔案位置
  • 伺服器要通過TFTP服務(簡單檔案傳輸協議)來提供系統核心和引導映象檔案的下載

  客戶端

  • 客戶機的網絡卡要支援PXE協議(整合BOOTROM晶片),且主機板支援網路引導。一般大多數伺服器主機都支援,只需在BIOS設定中允許從Network或LAN啟動即可

 搭建PXE遠端安裝伺服器

  • PXE遠端安裝伺服器集成了Centos 7 安裝源TFTP 服務DHCP服務FTP 服務能夠向客戶機裸機發送PXE載入程式Linux 核心啟動選單等資料以及提供安裝檔案
  • TFTP(簡單檔案傳輸協議),是一個基於UDP協議實現的用於在客戶機和伺服器之間進行簡單檔案傳輸的協議,適合於小檔案傳輸的應用場合。TFTP服務預設由xinetd服務進行管理,使用UDP埠69
  • xinetd
    是新一代的網路守護程序服務程式,又叫超級伺服器,常用來管理多種輕量級Internet服務
 1 安裝並啟用TFTP服務
 2 
 3 yum -y install tftp-server xinetd
 4 
 5 #修改TFTP服務的配置檔案
 6 vim /etc/xinetd.d/tftp
 7 
 8 protocol       = udp                   #TFTP預設使用UDP協議
 9 wait           = no                    #no表示客戶機可以多臺一起連線,yes表示客戶機只能一臺一臺連線
10 server_args    = -s /var
/lib/tftpboot #指定TFTP根目錄(引導檔案的儲存路徑) 11 disable = no #no表示開啟TFTP服務 12 13 systemctl start tftp 14 systemctl enable tftp 15 systemctl start xinetd 16 systemctl enable xinetd
 1 安裝並啟用DHCP服務
 2 
 3 yum -y install dhcp
 4 
 5 cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
 6 
 7 #修改DHCP服務的配置檔案
 8 vim /etc/dhcp/dhcpd.conf
 9 
10 ddns-update-style none;                            #禁用DNS動態更新
11 next-server 192.168.208.20;                        #指定TFTP伺服器的地址
12 filename "pxelinux.0";                             #指定要下載的PXE載入程式的檔案
13 
14 subnet 192.168.208.20 netmask 255.255.255.0 {      #宣告要分配的網段地址
15    range 192.168.208.100 192.168.208.200;          #設定地址池
16    option routers 192.168.208.20;                  #預設閘道器地址指向TFTP伺服器的IP地址
17 }
18 
19 
20 systemctl start dhcpd
21 systemctl enable dhcpd
1 初始化映象檔案
2 
3 mount /dev/sr0 /mnt
4 
5 cd /mnt/images/pxeboot
6 cp vmlinuz /var/lib/tftpboot/     #複製Linux系統的核心檔案到TFTP根目錄下
7 cp initrd.img /var/lib/tftpboot/  #複製初始化映象檔案(linux引導載入模組)到TFTP根目錄下
 1 部署PXE載入程式,準備安裝源
 2 
 3 yum -y install syslinux                               #PXE載入程式由軟體包syslinux提供
 4 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/  #複製PXE載入程式到TFTP根目錄
 5 
 6 
 7 yum -y install vsftpd
 8 mkdir /var/ftp/centos7
 9 cp pxelinux.0 /var/ftp/centos7
10 
11 systemctl start vsftpd
12 systemctl enable Vsftpd

  預設的啟動選單檔案在TFTP根目錄的pxelinux.cfg子目錄下,檔名為default

 1 配置啟動選單檔案
 2 
 3 mkdir /var/lib/tftpboot/pxelinux.cfg
 4 
 5 vim /var/lib/tftpboot/pxelinux.cfg/default
 6 
 7 default auto                                 #指定預設入口名稱
 8 prompt 1                                     #設定是否等待使用者選擇,“1"表示等待使用者控制
 9 
10 label auto                                   #圖形安裝(預設)引匯入口,label用來定義啟動項
11 kernel vmlinuz                               #kernel和append用來定義引導引數
12 append initrd=initrd.img method=ftp://192.168.208.20/centos7
13 
14 label linux text                             #文字安裝引匯入口
15 kernel vmlinuz
16 append text initrd=initrd.img method=ftp://192.168.208.20/centos7
17 
18 label linux rescue                           #救援模式引匯入口
19 kernel vml inuz
20 append rescue initrd=initrd.img method=ftp://192.168.208.20/centos7
21 
22 關閉防火牆        PXE安裝
23 systemctl stop firewalld. service
24 setenforce 0

注:使用VMware建立的虛擬機器進行測試,虛擬機器記憶體至少需要2GB,否則在啟動安裝時可能會報錯。

  • 開啟虛擬機器,在提示字串“boot:”後直接按Enter鍵(或執行“auto”命令),將會自動通過網路下載安裝檔案,並進入預設的圖形安裝入口
  • 若執行“linux text”命令,則進入文字安裝入口;若執行 “linux rescue”命令,則進入救援模式