另一種批量裝機神器-----使用PXE批量裝機

→lijunjie←發表於2020-12-12

一、PXE是什麼

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

二、PXE的三個優點

  • 規模化:同時裝配多臺伺服器;
  • 自動化:安裝系統、配置各種服務;
  • 遠端實現:不需要光碟、U 盤等安裝介質。
    在這裡插入圖片描述

三、能使用PXE裝機的前提

  • 客戶機
    • 客戶機的網路卡要支援PXE協議(整合BOOTROM晶片)
    • 主機板支援網路引導。有一些需在BIOS設定中允許從 Network 或 LAN 啟動即可。
  • 服務端
    • DHCP 伺服器:為客戶機自動分配地址、指定引導檔案位置。
    • 伺服器要開啟 TFTP服務(簡單檔案傳輸協議):用來提供系統核心和引導映象檔案的下載。
    • 伺服器中使用FTP服務(或http/nfs):提供yum安裝源
    • 安裝軟體包syslinux:提供PXE載入程式
補充:TFTP(簡單檔案傳輸協議):基於UDP協議實現的用於在客戶機和伺服器之間進行簡單檔案傳輸的協議,適合於小檔案傳輸的應用場合。TFTP服務預設由xinetd服務進行管理,使用UDP 埠69
xinetd服務:新一代的網路守護程式服務程式,又叫超級伺服器,常用來管理多種輕量級Internet服務。

四、搭建 PXE 遠端安裝伺服器

1.安裝並啟用 TFTP 服務

yum -y install tftp-server xinetd

#修改TFTP服務的配置檔案
vim /etc/xinetd.d/tftp
	protocol                = udp		#TFTP預設使用UDP協議	
    wait                    = no		#no表示客戶機可以多臺一起連線,yes表示客戶機只能一臺一臺連線
    server_args             = -s /var/lib/tftpboot		#指定TFTP根目錄(引導檔案的儲存路徑)
    disable                 = no		#no表示開啟TFTP服務

systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd

在這裡插入圖片描述
在這裡插入圖片描述
wq儲存配置檔案後,開啟服務並設為開機自啟
在這裡插入圖片描述

2.安裝並啟用 DHCP 服務

yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

#修改DHCP服務的配置檔案
vim /etc/dhcp/dhcpd.conf
ddns-update-style none;		   #禁用 DNS 動態更新
next-server 192.168.163.5;	   #指定 TFTP 伺服器的地址
filename "pxelinux.0";		   #指定要下載的 PXE 載入程式的檔案

subnet 192.168.163.0 netmask 255.255.255.0 {    #宣告要分配的網段地址
  range 192.168.163.100 192.168.163.200;	    #設定地址池
  option routers 192.168.163.5;				    #預設閘道器地址指向TFTP伺服器的IP地址
}

systemctl start dhcpd
systemctl enable dhcpd

在這裡插入圖片描述
在這裡插入圖片描述
wq儲存配置檔案後,開啟服務並設為開機自啟
在這裡插入圖片描述

3.準備 Linux 核心、初始化映象檔案

mount /dev/sr0 /mnt
cd /mnt/images/pxeboot						
cp vmlinuz /var/lib/tftpboot/				#複製 Linux系統的核心檔案 到TFTP根目錄下
cp initrd.img /var/lib/tftpboot/     		#複製 初始化映象檔案(linux引導載入模組)到TFTP根目錄下

在這裡插入圖片描述

4.準備 PXE 載入程式

yum -y install syslinux									#PXE載入程式由軟體包 syslinux 提供
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/	#複製 PXE載入程式 到TFTP根目錄下

在這裡插入圖片描述

5.安裝FTP服務,準備CentOS 7 安裝源

yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7/

systemctl start vsftpd
systemctl enable vsftpd

在這裡插入圖片描述

在這裡插入圖片描述

6.配置啟動選單檔案

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

vim /var/lib/tftpboot/pxelinux.cfg/default	
default auto 							#指定預設入口名稱
prompt 0 								#設定是否等待使用者選擇,“1”表示等待使用者控制

label auto								#圖形安裝(預設)引匯入口,label 用來定義啟動項
kernel vmlinuz							#kernel 和 append用來定義引導引數
append initrd=initrd.img method=ftp://192.168.163.5/centos7

label linux text						#文字安裝引匯入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.163.5/centos7

label linux rescue						#救援模式引匯入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.163.5/centos7

在這裡插入圖片描述

7.關閉防火牆

systemctl stop firewalld.service 
setenforce 0

在這裡插入圖片描述

8、驗證 PXE 網路安裝

  • 使用 VMware建立的虛擬機器進行測試,虛擬機器記憶體至少需要 2GB,否則在啟動安裝時可能會報錯。
  • 開啟虛擬機器,在配置啟動選單預設檔案default步驟時,
    • 設定的是“prompt 1 ” ,則會卡在一個介面,有一行提示字串“boot:”
      • 直接按Enter鍵(或執行“auto”命令),將會自動通過網路下載安裝檔案,並進入預設的圖形安裝入口;
      • 若執行“linux text”命令,則進入文字安裝入口;
      • 若執行 “linux rescue”命令,則進入救援模式。
    • 如果設定的是“prompt 0 ”,不需要任何操作,直接進入預設的圖形安裝入口。

重新開啟一臺沒裝系統的空白虛擬機器,點選開機自動載入配置檔案。
在這裡插入圖片描述
到這步,PXE算是完成了。
在這裡插入圖片描述
看到這裡,你會發現這並沒有開機自動裝機,只是進入了安裝介面而已,這時候就需要用的Kickstart無人值守安裝程式了

五、Kickstart 無人值守安裝

1、安裝system-config-kickstart 工具

yum install -y system-config-kickstart

在這裡插入圖片描述

2、開啟“Kickstart 配置程式”視窗

方法一:
通過桌面選單“應用程式”-->“系統工具”-->“Kickstart” 開啟
方法二:
執行 “system-config-kickstart” 命令開啟

方法一:在圖形化介面裡按下圖步驟點開程式
在這裡插入圖片描述
方法二:
在這裡插入圖片描述

3、配置kickstart選項

基本配置:
預設語言設為“中文(簡體)”
時區設為“Asia/Shanghai”
設定root密碼
高階配置中勾選“安裝後重啟”。

在這裡插入圖片描述

安裝方法:
選FTP
FTP伺服器:ftp://192.168.163.5
FTP目錄:centos7

在這裡插入圖片描述

引導裝載程式選項:
“安裝型別”:安裝新引導裝載程式
“安裝選項”:在主開機記錄(MBR)中安裝引導裝載程式

在這裡插入圖片描述

分割槽資訊:
主開機記錄:清除主開機記錄
分割槽:刪除所有現存分割槽
磁碟標籤:初始化磁碟標籤
佈局:新增分割槽
掛載點:/boot,檔案系統型別:xfs,固定大小:500M
檔案系統型別:swap,固定大小:4096M
掛載點:/home,檔案系統型別:xfs,固定大小:4096M
掛載點:/,檔案系統型別:xfs,使用磁碟上全部未使用空間

在這裡插入圖片描述
下面是我建立四個分割槽的截圖,僅供參考。(想創什麼分割槽也可以自己建,下面是常用的四個分割槽)
在這裡插入圖片描述
在這裡插入圖片描述

網路配置:
新增網路裝置“ens33”
網路型別設為“DHCP”

在這裡插入圖片描述

防火牆配置:
禁用 SELinux、禁用防火牆

在這裡插入圖片描述

安裝後指令碼:
勾選“使用解釋程式”:/bin/bash
rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=ftp://192.168.163.5/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo

在這裡插入圖片描述

其它選項保持預設設定即可

4、儲存自動應答檔案

選擇“Kickstart 配置程式”視窗的“檔案”-->“儲存”命令,選擇指定儲存位置,檔名為ks.cfg
預設儲存在/root/ks.cfg
cp /root/ks.cfg /var/ftp/ks.cfg

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

5、配置需要安裝的軟體包

可以根據需要將/root/anaconda-ks.cfg 的軟體包安裝指令碼複製到 ks.cfg檔案中,只需要複製%packages 到%end 部分即可。
如要求最小化安裝,可複製下面內容:
vim ks.cfg
%packages
@^minimal
%end

在這裡插入圖片描述
在這裡插入圖片描述

6、編輯引導選單檔案 default,新增 ks 引導引數

vim /var/lib/tftpboot/pxelinux.cfg/default	
default auto 							
prompt 0 								#設定是否等待使用者選擇,“0”表示不等待使用者控制

label auto								
kernel vmlinuz							#kernel 和 append用來定義引導引數
append initrd=initrd.img method=ftp://192.168.163.5/centos7 ks=ftp://192.168.163.5/ks.cfg
#新增 ks 引導引數以指定 ks.cfg 應答檔案的 URL 路徑

在這裡插入圖片描述

7、驗證無人值守安裝

當客戶機每次以PXE方式引導時,將自動下載ks.cfg應答配置檔案,然後根據其中的設定安裝CentOS 7 系統,而無須手工干預。

cat /etc/yum.repos.d/local.repo

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
完成裝機
在這裡插入圖片描述

相關文章