Linux——PXE高效批量網路裝機

l文峰發表於2020-11-05

部署PXE遠端安裝服務

PXE概述

PXE批量部署的優點
規模化:同時裝配多臺伺服器
自動化:安裝系統、配置各種服務
遠端實現:不需要光碟、U盤等安裝介質

PXE
預啟動執行環境,在作業系統之前執行

服務端
1、執行DHCP服務,用來分配地址、定位載入程式
2、執行TFTP服務,提供載入程式下載

客戶端
1、網路卡支援PXE協議
2、主機板支援網路引導

配置PXE裝機伺服器

基本部署過程
1、準備CENTOS 7安裝源(YUM倉庫)
2、安裝並啟用TFTP服務
3、提供Linux核心、PXE載入程式等
4、安裝並啟用DHCP服務
5、配置啟動選單

準備CENTOS 7 安裝源
centos 7 安裝源支援HTTP、FTP、NFS等協議釋出
yum -y install vsfpd
mkdir /var/ftp/centos7
cp -rf /media/cdrom/* /var/ftp/centos7/
systemctl start vsftpd

安裝並啟用TFTP服務
1、安裝tftp-server軟體包,啟用tftp服務
2、配置檔案位於/etc/xinetd.d/tftp
yum -y install tftp-server
vi /etc/xinetd.d/tftp
server_args =-s /var/lib/tftpboot
disable =no
systemctl start tftp
systemctl enable tftp

準備Linux核心、PXE載入程式
1、Linux核心、初始化映象檔案分別為vmlinuz和initrd.img
2、載入程式為pxelinux.0,由軟體包syslinux提供
cd /media/cdrom/images/pxeboot
cp vmlinuz initrd.img /var/lib/tftpboot
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

DHCP服務的PXE設定
yum -y install dhcp
vi /etc/dhcp/dhcp.conf
next-server 192.168.4.254;(指定tftp伺服器地址)
filename “pxelinux.0”;(指定要下載的載入程式檔案)
systemctl start dhcpd
systemctl enable dhcpd

配置啟動選單檔案
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default //啟動選單

驗證PXE網路安裝

為客戶機安裝系統
1、調整BIOS設定,以便從網路引導
2、自動獲取IP地址,並指定centos 7安裝源
3、其餘過程與本地安裝相同

實現Kickstart無人值守安裝

關於kickstart

kickstart無人值守技術
1、建立應答檔案,預先定義好各種安裝設定
2、免去互動設定過程,從而實現自動化安裝

準備應答檔案

應答檔案的來源
1、編輯centos 7 系統中現有的應答檔案
/root/anaconda-ks.cfg
2、使用system-config-kickstart工具建立新的應答檔案
需要安裝system-config-kickstart軟體包

PXE+kickstart自動安裝

PXE與kickstart結合使用
cp /root/ks.cfg /var/ftp/ks.cfg
vi /var/lib/tftpboot/pxelinux.cfg/default

驗證自動安裝
1、將客戶機以PXE方式引導
2、系統會自動安裝,並配置好軟體倉庫
3、整個安裝過程無需手動干預

PXE+Kickstart裝機操作

PXE 遠端安裝服務   工作在C/S模式,客戶機通過網路從遠端伺服器下載引導映象,並載入安裝整個作業系統。

PXE遠端伺服器(192.168.1.100)所需準備:
安裝源(系統盤檔案);
TFTP服務;(釋出裝機檔案,讓客戶機可訪問)
XINETD服務;(因為tftp由xinetd管理)
DHCP服務;
Linux核心;
能夠向客戶機裸機傳送PXE載入程式;
啟動選單及無人應答檔案等。

客戶端要求:
客戶端的網路卡支援PXE協議,且主機板支援網路引導(現在多數都支援);
設定BIOS允許從Network或LAN啟動;
*************等待使用者控制的方式實現PXE啟動選單安裝********************
-------------------------伺服器上的配置:-----------------------
一、安裝需要的伺服器(tftp-server/dhcp/ftp)
yum -y install tftp-server
vi /etc/xinetd.d/tftp
        server_args             = -s /var/lib/tftpboot -c (指定儲存路徑 -c:允許上傳)
        disable                 = no (開啟tftp)

yum -y install dhcp
vi /etc/dhcp/dhcpd.conf
ddns-update-style none;     //支援DNS動態更新,一般選擇關閉//
next-server 192.168.1.100;  //指定TFTP伺服器地址//
filename "/pxelinux.0";     //引導檔案TFTP上的位置//
subnet 192.168.1.0 netmask 255.255.255.0 {
  range  192.168.1.150 192.168.1.200;
  option routers 192.168.1.100;
  option domain-name-servers 8.8.8.8, 114.114.114.114;
}
將光碟釋出以ftp協議釋出
yum -y install vsftpd
mount /dev/cdrom /var/ftp/pub  # 讓光碟掛載到共享目錄下,讓ftp客戶機可訪問光碟,目的是裝機用。

二、複製網路啟動所需要檔案到tftp伺服器的根目錄下
yum -y install syslinux    //安裝引導載入程式//
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot  //linux引導載入模組//
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/   //壓縮核心//

mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default //啟動選單
cp  /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot //圖形化啟動選單
修改安裝的配置檔案
[root@localhost ]# vi /var/lib/tftpboot/pxelinux.cfg/default            
default auto # 預設圖形化安裝(當你選擇的時候什麼也不選時自動載入的引導方式)
prompt 1  # 需要使用者選擇
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.1.100/pub   # 指定圖形化介面的光碟引導路徑
label linux text
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.1.100/pub # 指定文字的光碟引導路徑
label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.1.100/pub # 指定救援模式的光碟引導路徑

三、啟動所有伺服器
啟動所有伺服器:
service dhcpd restart
service vsftpd restart
yum -y install xinetd
service xinetd start
chkconfig --level 35 xinetd on
chkconfig --level 35 tftp  on

service firewalld stop   //不關閉沒法下載TFTP中的載入程式//
setenforce 0 
-----------------客戶機設定:---- ----------------- 
客戶機重啟虛擬機器,將bios的boot選項選擇為network啟動方式。
************************PXE客戶機自動安裝--俗稱無人值守(以上系統環境不用改變)*********************
--------------------------伺服器設定:--------------------------
四、自動安裝配置
yum -y install system-config-kickstart  #安裝檔案,可以圖形化介面嚮導來配置安裝應答檔案。

圖形介面開啟kickstart進行配置  (注意 FTP目錄 指定為pub)
安裝後指令碼設定:
cd /etc/yum.repos.d
rm -f *
echo -e "[base]" >> aa.repo
echo -e "baseurl=ftp://192.168.1.100/pub" >> aa.repo 
echo -e "gpgcheck=0" >>aa.repo

指令碼預設儲存在/root/ks.cfg中
備註:修改ks.cfg內容
將伺服器本地anaconda.ks.cfg內的%packages......%end內容即為gnome桌面開發環境必裝軟體新增進ks.cfg


cp /root/ks.cfg /var/ftp/   # 將應答檔案考貝至ftp共享目錄,目的是讓客戶機可訪問

vi /var/lib/tftpboot/pxelinux.cfg/default

default auto
prompt 0  # 無需使用者選擇
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.1.100/pub ks=ftp://192.168.1.100/ks.cfg
 # 指定引導光碟的路徑及應答檔案的路徑
-------------------客戶機設定:-------------
客戶機重啟虛擬機器,將bios的boot選項選擇為network啟動方式。

相關文章