目錄一、什麼是PXE1、簡介2、工作模式3、工作流程二、什麼是Kickstart1、簡介2、觸發方式三、無人值守安裝系統工作流程四、實驗部署1、環境準備2、服務端:關閉防火牆和selinux3、添加一張僅主機的網卡4、配置僅主機的網卡4.1、修改網路連接名4.2、配IP地址4.3、重啟網卡5、配置D ...
目錄
一、什麼是PXE
1、簡介
PXE(Preboot Execution Environment,預啟動執行環境)是一種由Intel公司設計的網路引導技術協議。它使電腦能夠在沒有本地操作系統、硬碟或引導媒體的情況下,通過網路介面卡(NIC)從遠程伺服器下載引導程式和其他操作系統安裝文件,進而實現遠程安裝操作系統或其他軟體。
2、工作模式
基於Client/Server架構
- PXE客戶端:通常內置在支持PXE的網路適配器的只讀存儲器(ROM)中,當電腦啟動時,BIOS將控制權交給PXE客戶端軟體,該軟體通過網路發出啟動請求。
- PXE伺服器:接收到客戶端的請求後,會分配IP地址給客戶端(通常通過DHCP伺服器),並提供引導文件(如Linux內核、初始化RAM磁碟等)供客戶端下載。這些文件常常通過TFTP(Trivial File Transfer Protocol)協議傳輸。
3、工作流程
1、啟動過程:電腦在啟動時通過BIOS或UEFI發出PXE啟動請求,並廣播該請求到網路中的所有設備。
2、DHCP提供IP地址:PXE客戶端接收到廣播請求後,會通過DHCP(Dynamic Host Configuration Protocol)協議向DHCP伺服器發送請求,以獲取IP地址和其他網路配置信息。
3、DHCP回應:DHCP伺服器接收到PXE客戶端的請求後,會分配一個可用的IP地址,並將其作為回應發送給PXE客戶端。
4、TFTP載入啟動文件:PXE客戶端通過TFTP(Trivial File Transfer Protocol)從網路中的TFTP伺服器下載啟動文件(通常稱為pxelinux.0)。
5、啟動文件執行:PXE客戶端執行下載的啟動文件,該文件包含了操作系統鏡像的位置和其他配置信息。
6、操作系統鏡像下載:根據啟動文件中指定的位置,PXE客戶端通過TFTP從網路中的TFTP伺服器下載操作系統鏡像文件。
7、操作系統載入和安裝:一旦操作系統鏡像文件下載完成,PXE客戶端會將其載入到電腦的記憶體中,並開始執行操作系統的安裝過程。
二、什麼是Kickstart
1、簡介
Kickstart
是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工干預填寫的各種參數,並生成一個名為 ks.cfg
的文件。
如果在安裝過程中(不只局限於生成Kickstart
安裝文件的機器)出現要填寫參數的情況,安裝程式首先會去查找 Kickstart
生成的文件,如果找到合適的參數,就採用所找到的參數;如果沒有找到合適的參數,便需要安裝者手工干預了。
所以,如果Kickstart
文件涵蓋了安裝過程中可能出現的所有需要填寫的參數,那麼安裝者完全可以只告訴安裝程式從何處取ks.cfg
文件。等安裝完畢,安裝程式會根據ks.cfg
中的設置重啟系統,並結束安裝
2、觸發方式
- 通過網路使用 PXE(預啟動執行環境)引導時引用 Kickstart 文件位置。
- 使用光碟、USB等可移動介質上的引導菜單選項指定 Kickstart 文件路徑。
- 在虛擬化平臺中,通過ISO映像或配置管理工具傳遞Kickstart配置。
三、無人值守安裝系統工作流程
四、實驗部署
1、環境準備
實驗環境:VMware Workstation 16 Pro
系統平臺:Centos7.9(最小化安裝)
2、服務端:關閉防火牆和selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
3、添加一張僅主機的網卡
4、配置僅主機的網卡
4.1、修改網路連接名
預設的乙太網連接會被命名為"有線連接 1"
nmcli connection modify '有線連接 1' con-name ens36
4.2、配IP地址
按照自己的ip地址網段和網路連接名修改
nmcli connection modify ens36 ipv4.addresses 192.168.80.10/24 autoconnect yes ipv4.method manual
4.3、重啟網卡
nmcli connection down ens36
nmcli connection up ens36
5、配置DHCP服務
5.1、關閉僅主機網卡的本地DHCP服務
編輯-->虛擬網路編輯器
5.2、配置服務端DHCP伺服器
yum -y install dhcp -y
vim /etc/dhcp/dhcpd.conf
subnet 192.168.80.0 netmask 255.255.255.0 {
range 192.168.80.100 192.168.80.199;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.80.10;
filename "/pxelinux.0";
}
subnet 192.168.80.0 netmask 255.255.255.0 { ... }
:這部分定義了一個DHCP服務將管理的子網。192.168.80.0
是子網的網路地址,netmask 255.255.255.0
(或簡寫為/24)指定了子網掩碼range 192.168.80.100 192.168.80.199;
:定義了DHCP伺服器動態分配給客戶端的IP地址池。這意味著當客戶端請求IP地址時,DHCP伺服器將從這個範圍內隨機選擇一個未分配的IP地址分配給客戶端。(註意不要將伺服器端的ip地址包含在地址池內)option subnet-mask 255.255.255.0;
:設置客戶端的子網掩碼為255.255.255.0。default-lease-time 21600;
:設置客戶端預設的IP地址租約時間為21600秒,即6小時。max-lease-time 43200;
:設置客戶端最大IP地址租約時間為43200秒,即12小時。next-server 192.168.80.10;
:指定下一個啟動伺服器(Next Server)的IP地址為192.168.80.10。這是用於PXE引導的重要設置,指明瞭應該從哪個伺服器獲取啟動文件。filename "/pxelinux.0";
:指定了PXE引導過程中客戶端應請求的啟動文件名。在這個例子中,客戶端將嘗試從TFTP伺服器(通常與DHCP伺服器是同一臺機器)下載/pxelinux.0
文件來繼續啟動過程。
重啟DHCP服務並開機自啟
systemctl restart dhcpd
systemctl enable dhcpd
6、安裝tftp
- PXE客戶端在啟動過程中,通過網路向PXE伺服器請求引導信息。TFTP伺服器負責提供這些初始引導文件
- 在PXE引導過程中,客戶端還需要獲取安裝過程中的其他必要文件,如Linux內核(vmlinuz)、初始化RAM磁碟(initrd.img)等,這些都是通過TFTP協議從伺服器下載的。
yum install -y tftp-server
systemctl start tftp
systemctl enable tftp
7、安裝syslinux
7.1、將pxelinux.0配置文件以及光碟鏡像中的文件複製到tftp目錄中
安裝syslinux的目的是簡化首次安裝或其他特殊用途的啟動盤
yum install syslinux -y
cd /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir -p /media/cdrom
mount /dev/cdrom /media/cdrom/
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
:複製Syslinux安裝目錄下的pxelinux.0
文件到TFTP根目錄。這個文件是PXE引導載入程式,允許客戶端通過網路啟動並載入菜單或直接載入內核。cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
:從光碟的images/pxeboot/
目錄中複製vmlinuz
(Linux內核映像)和initrd.img
(初始化RAM磁碟映像)到TFTP根目錄。這兩個文件是PXE引導後,客戶端實際使用的操作系統核心和早期用戶空間環境cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} /var/lib/tftpboot/
:從光碟的isolinux/
目錄中複製vesamenu.c32
(一個用於提供圖形化菜單的庫文件)和boot.msg
(可能包含啟動時顯示的消息或歡迎信息的文本文件)到TFTP根目錄。這通常用於增強PXE引導時的用戶體驗,比如顯示一個圖形化的啟動菜單供用戶選擇不同的安裝或引導選項。
7.2、配置syslinux服務程式
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
1 default linux
64 append initrd=initrd.img inst.stage2=ftp://192.168.80.10 ks=ftp://192.168.80.10/pub /ks.cfg quiet
initrd=initrd.img
: 指定使用名為initrd.img
的初始化RAM磁碟作為臨時根文件系統。inst.stage2=ftp://192.168.80.10
: 設置第二階段安裝源為FTP伺服器,地址為192.168.80.10
。這意味著操作系統安裝文件將從該FTP伺服器上獲取。ks=ftp://192.168.80.10/pub/ks.cfg
: 指定了Kickstart配置文件的路徑,同樣通過FTP從192.168.80.10
伺服器的pub/ks.cfg
位置獲取。Kickstart文件自動執行安裝過程,定義了安裝時的各種配置選項。quiet
: 這個參數告訴安裝程式在安裝過程中保持安靜模式,即儘量減少屏幕輸出信息,僅顯示錯誤和重要狀態更新。
8、安裝vsftpd服務
光碟鏡像時通過ftp協議傳輸的,因此要用到vsftpd服務程式
yum install -y vsftpd
systemctl restart vsftpd
systemctl enable vsftpd
cp -r /media/cdrom/* /var/ftp/
9、創建Kickstart應答文件
Kickstart應答文件中包含了系統安裝過程中需要使用的選項和參數信息。
系統可以自動調取這個應答文件的內容,從而徹底實現無人值守安裝系統。
cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
chmod +r /var/ftp/pub/ks.cfg
vim /var/ftp/pub/ks.cfg
5 url --url=ftp://192.168.80.10 # 刪除原本的cdrom
30 clearpart --all --initlabel # 意思是清空所有磁碟內容並初始化磁碟
五、自動部署客戶端主機
- 創建虛擬機
- 自定義
- 下一步
下一步
稍後安裝操作系統--> 下一步
下一步
管理好虛擬機名稱和位置,下一步
下一步
下一步
網路類型選僅主機
下一步
下一步
下一步
下一步
下一步
完成
開啟測試
不影響無人值守
開始設置安裝源
自動設置root密碼,在anaconda-ks.cfg中
成功安裝
登錄密碼與服務端虛擬機的登錄密碼一致
ip地址也在地址池中
anaconda-ks.cfg就是original-ks.cfg
- anaconda-ks.cfg:安裝程式自動生成的
- original-ks.cfg:模板的Kickstart配置文件
至此PXE+Kickstart無人值守安裝centos7.9操作系統完成