PXE高效批量網絡裝機
PXE(預啟動執行環境,在作業系統之前運作)是由Intel公司開發的網絡引導技術,工作在Client/Server模式。允許客戶機通過網絡從遠端伺服器下載下傳引導鏡像,并加載安裝檔案或者整個作業系統。
一、PXE批量部署的優點
規模化:同時裝配多台伺服器
自動化:安裝系統、配置各種服務
遠端實作:不需要CD光牒、U盤等安裝媒體
若要搭建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服務。
守護程序也稱精靈程序(Daemon),是運作在背景的一種特殊程序。守護程序獨立于控制終端,它們常常跟随系統啟動時啟動,在系統關閉時才結束。守護程序周期性的執行某些任務或者等待處理某些事件,Linux上的大多數伺服器都是用守護程序實作的。
在系統啟動中預設的守護程序的父程序ID全都是init,守護程序特征就是在程式運作名後加了一個d,但不是所有的尾字母是d的程序都是守護程序。
PXE裝機之前需要準備安裝的服務
需要安裝的伺服器 | 需要的服務程式 |
---|---|
server1 | tftp-server 傳輸小檔案使用 |
xinetd | |
vsftpd 建構FTP的YUM源 | |
syslinux 這個服務隻需要安裝就好,不需要啟動 | |
DHCP,配置設定IP位址使用 |
1.關閉防火牆,挂載CD光牒
systemctl stop firewalld.service
setenforce 0
2、安裝并啟用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 #啟動tftp服務
systemctl enable tftp #啟動tftp服務為開機自啟動
systemctl start xinetd #啟動xinetd服務
systemctl enable xinetd #啟動xinetd服務為開機自啟動
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.110.10; #指定TFTP 伺服器的位址
filename "pxelinux.0"; #指定要下載下傳的PXE 引導程式的檔案
subnet 192.168.110.0 netmask 255.255.255.0 { #聲明要配置設定的網段位址
range 192.168.110.20 192.168.110.200; #設定位址池
option routers 192.168.110.7; #預設網關位址指向TFTP伺服器的IP位址
}
systemctl start dhcpd
systemctl enable dhcpd
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 1 #設定是否等待使用者選擇,"1"表示等待使用者控制
label auto #圖形安裝(預設)引導入口,label用來定義啟動項
kernel vmlinuz #kernel和append用來定義引導參數
append initrd=initrd.img method=ftp://192.168.80.10/centos7
label linux text #文本安裝引導入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.80.10/centos7
label linux rescue #救援模式引導入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.80.10/centos7
使用VMware建立的虛拟機進行測試,虛拟機記憶體至少需要 2GB,否則在啟動安裝時可能會報錯。
開啟虛拟機,在提示字元串"boot:"後直接按Enter鍵(或執行"auto"指令),将會自動通過網絡下載下傳安裝檔案,并進入預設的圖形安裝入口:
若執行"linux text"指令,則進入文本安裝入口;若執行“linux rescue"指令,則進入救援模式。
三、實作Kickstart無人值守安裝
1、準備安裝應答檔案
(1)安裝system-config-kickstart 工具
yum install -y system-config-kickstart
(2)打開"Kickstart配置程式"視窗
通過桌面菜單"應用程式”-->"系統工具”-->"Kickstart”打開
或
執行“system-config-kickstart”指令打開
(3)配置kicksart選項
基本配置:
預設語言設為"中文(簡體)"
時區設為“Asia/Shanghai"
設定root的passwd
進階配置中勾選"安裝後重新開機"。
安裝方法:
選FTP
FTP伺服器:ftp://192.168.110.7
FTP目錄: centos7
(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.efg/default
default auto
prompt 0 #設定是否等待使用者選擇,"0"表示不等待使用者控制
label auto
kernel vmlinuz #kernel 和append用來定義引導參數
append initrd=initrd.img method=ftp://192.168.80.10/centos7 ks=ftp://192.168.80.10/ks.cfg #添加ks 引導參數以指定ks.cfg應答檔案的 URL路徑