PXE(Preboot Execution Environment,預啟動執行環境) 是由Intel開發的網絡引導技術,允許計算機通過網絡從遠程服務器下載引導鏡像并加載操作系統,無需依賴本地存儲設備(如硬盤、U盤)。其核心價值在于規?;?、自動化部署,適用于數據中心、機房等需要批量安裝系統的場景,可大幅減少人工重復操作。
PXE引導依賴Client/Server模式,通過以下協議實現網絡啟動:
pxelinux.0
、內核vmlinuz
、初始內存盤initrd.img
);典型流程:
Cobbler是一款基于Python的開源系統部署工具,旨在簡化PXE引導及自動化安裝流程。其核心功能包括:
ks.cfg
文件,支持自定義分區、軟件包、用戶等參數;manage_dhcp=1
),減少手動配置工作量;cobbler
、cobbler-web
、tftp-server
、dhcp
、httpd
、xinetd
、pykickstart
等組件;systemctl stop firewalld && systemctl disable firewalld
)和SELinux(sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
)。使用Yum包管理器安裝核心組件:
sudo yum install -y epel-release # 安裝EPEL源(可選,部分組件需額外依賴)
sudo yum install -y cobbler cobbler-web tftp-server dhcp httpd xinetd pykickstart
編輯/etc/cobbler/settings
,修改關鍵參數:
server = 192.168.1.100 # Cobbler服務器IP
next_server = 192.168.1.100 # TFTP服務器IP(通常與Cobbler服務器一致)
manage_dhcp = 1 # 允許Cobbler管理DHCP配置(需關閉手動DHCP服務)
pxe_just_once = 1 # 防止客戶端重復PXE啟動
編輯/etc/dhcp/dhcpd.conf
,添加以下內容(根據實際網絡調整):
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200; # 動態IP范圍
option routers 192.168.1.1; # 網關
option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS服務器
filename "pxelinux.0"; # PXE引導文件名
next-server 192.168.1.100; # TFTP服務器IP(與Cobbler服務器一致)
}
重啟DHCP服務使配置生效:
sudo systemctl restart dhcpd
sudo systemctl enable dhcpd
編輯/etc/xinetd.d/tftp
,啟用TFTP并設置根目錄:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
group = root
server = /usr/sbin/tftp
server_args = -s /var/lib/tftpboot # TFTP根目錄
disable = no # 啟用服務
}
重啟xinetd服務:
sudo systemctl restart xinetd
sudo systemctl enable xinetd
將CentOS ISO鏡像(如CentOS-7-x86_64.iso
)上傳至服務器(如/tmp
目錄),使用Cobbler導入:
sudo cobbler import --path=/tmp/CentOS-7-x86_64.iso --name=centos7 --arch=x86_64
該命令會自動將ISO中的內核(vmlinuz
)、初始內存盤(initrd.img
)復制到TFTP根目錄(/var/lib/tftpboot
),并生成對應的安裝源路徑(如/var/www/cobbler/ks_mirror/centos7
)。
Kickstart文件定義了系統安裝的自動化參數,需手動創建(如/var/lib/cobbler/kickstarts/centos7.ks
):
# 基礎配置
lang en_US.UTF-8
keyboard us
timezone Asia/Shanghai
rootpw --plaintext yourpassword # 生產環境建議使用加密密碼
# 網絡配置
network --bootproto=dhcp --onboot=yes
# 分區方案
clearpart --all --initlabel
part / --fstype=xfs --size=1 --grow
part swap --size=2048
# 安裝源
url --url="http://$server/cobbler/ks_mirror/centos7"
# 引導加載器
bootloader --location=mbr --boot-drive=sda
創建系統配置,關聯鏡像、Kickstart文件及PXE啟動:
sudo cobbler profile add --name=centos7-profile --distro=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks
sudo cobbler system add --name=centos7-client --profile=centos7-profile --netboot-enabled=true
--distro
:指定導入的操作系統鏡像名稱(通過cobbler distro list
查看);--kickstart
:指定Kickstart文件路徑;--netboot-enabled=true
:啟用PXE網絡啟動。執行同步命令,將所有配置應用到Cobbler服務:
sudo cobbler sync
測試PXE啟動:
/var/lib/tftpboot
、/var/www/cobbler
等目錄權限正確(通常為root:root
,權限755
);setsebool -P cobblerd_anon_write 1
);cobbler ksvalidator
命令驗證Kickstart文件語法,避免安裝失敗。