PXE高效批量網路裝機的解析

weixin_50344811發表於2020-11-06

一PXE技術

1.1PXE批量部署的優點

規模化:同時裝配多臺伺服器
自動化:安裝系統,配置各種服務
遠端實現:不需要光碟,U盤等安裝介質
客戶機獲取伺服器的IP地址: DHCP
客戶機從伺服器進行下載: FTP
在裝機時對硬體自檢,載入程式,核心檔案映象檔案

1.2PXE (Preboot eXcution Environment)

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

1.3服務端

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

1.4客戶端

●網路卡支援PXE協議
●主機板支援網路引導

二配置PXE裝機伺服器

2.1基本部署過程

1.準備CentOS 7安裝源(YUM倉庫)_
2.安裝並啟用TFTP服務
3.提供Linux核心、PXE弓 |導程式等
4.安裝並啟用DHCP服務
5.配置啟動選單

2.2準備CentOS 7安裝源

●CentOS 7安裝源支援HTTP、FTP、
NFS等協議釋出

[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# cp -rf /media/cdrom/* lrar/ftp/centos7/
[root@localhost ~]# systemctl start vsftpd

2.3安裝並啟用TFTP服務

安裝ftp-server軟體包,啟用ftp服務
配置檔案位於/etc/xinetd.d/tftp

[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# vi /etc/xinetd.d/tftp
server_ args         = -s /var/lib/tftpboot 
disable                  = no             修改配置值
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable tftp

2.4準備Linux核心、PXE載入程式

●Linux核心、初始化映象檔案分別為vmlinuz和initrd.img
●載入程式為pxelinux.0,由軟體包syslinux提供

[root@localhost ~]# cd /media/cdrom/images/pxebcot    位於系統映象資料夾 images/pxeboot下
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot      也拷貝到tftp的根目錄

2.5DHCP服務的PXE設定

[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
subnet 192. 168.4.0 netmask 255.255.255.0 {
option routers 192. 168.4.254;
option domain-name-servers 192.168.4.254,202.106.0.20;
range 192.168.4. 100192. 168.4.200; 
next-server 192.168.4.254; next-server:指定TFTP伺服器地址
filename "pxelinux.0";    filename:指定要下載的載入程式檔案
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd

2.6配置啟動選單檔案

[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default    確保pxelinux.cfg 目錄已存在
default auto 
prompt 1 
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192. 168.4.254/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.4.254/centos7     文字模式安裝
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.4.254/centos7    進入救援模式

三 驗證PXE網路安裝

3.1為客戶機安裝系統

●調整BIOS設定,以便從網路引導
●自動獲取IP地址,並指定CentOS 7
●其餘過程與本地安裝相同
在這裡插入圖片描述專案過程
1安裝tftp

[root@server1 ~]# hostname pxe
[root@server1 ~]# bash
[root@pxe ~]# yum -y install tftp-server

在這裡插入圖片描述

2.編輯配置檔案

[root@pxe ~]# vi /etc/xinetd.d/tftp

disable      = no  開啟tftp

在這裡插入圖片描述1安裝DHCP

[root@pxe ~]# yum -y install dhcp

在這裡插入圖片描述
2.在編輯配置檔案前先切換網路卡到VMnet1(僅主機模式)
IP地址編輯
在這裡插入圖片描述

[root@server1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
[root@server1 ~]# systemctl restart network
[root@server1 ~]# ifconfig

重連XShell
編輯配置檔案

[root@server1 ~]# vi /etc/dhcp/dhcpd.conf 
ddns-update-style none;   關閉動態DNS服務
next-server 192.168.42.2;  TFTP地址指向本機
filename "/pxelinux.0";     指導檔案TFTP上的位置
subnet 192.168.42.0 netmask 255.255.255.0 {   下發地址
 range 192.168.42.100 192.168.42.200;  網段範圍
 option routers 192.168.42.2;      閘道器地址
 option domain-name-servers 8.8.8.8, 144.144.144.144;  DNS伺服器的地址

1安裝ftp

[root@server1 ~]# yum -y install vsftpd

在這裡插入圖片描述
2掛載

[root@server1 ~]# mount /dev/cdrom /var/ftp/pub

在這裡插入圖片描述
3編輯配置檔案

[root@server1 ~]# vi /etc/vsftpd/vsftpd.conf
新增:
anon_umask=022      設定匿名賬戶的許可權是755
anon_other_write_enable=YES    允許匿名賬戶其它的寫許可權
修改:
anon_upload_enable=YES        允許匿名賬戶上傳
anon_mkdir_write_enable=YES      允許匿名賬戶新建檔案或目錄
listen=YES                     監聽IPv4
listen_ipv6=NO                                 監聽IPv6

1.安裝引導載入程式

[root@server1 ~]# yum -y install syslinux

在這裡插入圖片描述
2,複製網路啟動所需要的檔案到tftp伺服器的根目錄下

[root@server1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@server1 ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
Linux引導載入模組
[root@server1 ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
壓縮核心
[root@server1 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
建立特定的目錄存放選單檔案
[root@server1 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default    啟動選單

3,完成以上
修改安裝的配置檔案

[root@server1 ~]# vi /var/lib/tftpboot/pxelinux.cfg/default 
default auto   預設圖形化安裝(當你選擇的時候什麼也不選擇時,自動載入的引導方式)
prompt 0      需要使用者選擇
label auto     標籤1
          kernel vmlinuz          指定圖形化介面的光碟引導路徑
         append initrd=initrd.img method=ftp://192.168.42.2/pub  ks=ftp://192.168.42.2/ks.cfg
label linux text                    獲取方式
         kernel vmlinuz          指定文字的光碟引導路徑
         append text initrd=initrd.img method=ftp://192.168.42.2/pub
label linux rescue
         kernel vmlinuz          指定救援模式的光碟引導路徑
         append rescue initrd=initrd.img method=ftp://192.168.42.2/pub

4.啟動所有伺服器
安裝xintd用於管理tftp

[root@server1 ~]# yum -y install xinetd

在這裡插入圖片描述

root@server1 ~]# systemctl start dhcpd
[root@server1 ~]# systemctl start vsftpd
[root@server1 ~]# chkconfig --level 35 xinetd on
[root@server1 ~]# chkconfig --level 35 tftp on
[root@server1 ~]# systemctl start tftp
[root@server1 ~]# netstat -anpu | grep dhcpd
[root@server1 ~]# netstat -anpt | grep vsftpd

在這裡插入圖片描述

[root@server1 ~]# systemctl stop firewalld      關閉防火牆
[root@server1 ~]# setenforce 0                        關閉核心防護

現在新建一個客戶機進行PXE來訪問服務
檔案–新建虛擬機器–稍後安裝作業系統—linux CentOS7 64位–網路卡使用僅主機—完成
開始進入按F2,出現PXE檔案,按回車開始下載系統初始化所需的檔案
在這裡插入圖片描述回車開始下載
在這裡插入圖片描述

四kickstart

4.1kickstart無人值守技術

建立應答檔案,預定定義好各種安裝設定
免去互動設定過程,從而實現全自動化安裝

4.2準備應答檔案

4.2.1 應答檔案的來源

編輯CentOS 7 系統中現有的應答檔案
/root/anaconda-ks.cfg (系統自帶的)
使用system-config-kickstart工具建立新的應答檔案
需要安裝system-config-kickstart軟體包

4.3 驗證自動安裝

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

4.4 開始進行PXE自動安裝----無人值守操作設定

1.在伺服器上安裝檔案,可以圖形化介面嚮導來配置安裝應答檔案

root@server1 ~]# yum -y install system-config-kickstart

在這裡插入圖片描述

安裝完成後
進入VMware中檢視虛擬機器應用程式-系統工具中是否多出一個kickstart
在這裡插入圖片描述
設定預設語言,時區,Root密碼,安裝後重啟
在這裡插入圖片描述
設定安全方法:ftp FTP伺服器:ftp://192.168.42.2 目錄:pub
在這裡插入圖片描述
引導裝載程式選項 :安裝新引導裝載程式
在這裡插入圖片描述

分割槽資訊設定: 初始化磁碟標籤
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

防火牆配置 禁用
在這裡插入圖片描述
安裝後指令碼設定
在這裡插入圖片描述

cd /etc/yum.repos.d
rm -f *
echo -e "[base]" >> aa.repo
echo -e "name=yum" >> aa.repo
echo -e "baseurl=ftp://192.168.6.10/pub" >> aa.repo
echo -e "gpgcheck=0" >> aa.repo
echo -e "enable=1" >> aa.repo

修改完成後進行檔案儲存
儲存路徑/var/ftp

之後將伺服器本地anaconda.ks.cfg內的從%packages. …到%end內容即為gnome桌面開發環境必裝軟體新增進ks.cfg的%end下

[root@server1 ~]# vi anaconda-ks.cfg     複製客戶機需要的安裝軟體包
[root@server1 ~]# cd /var/ftp
[root@server1 ftp]# ls -lh
[root@server1 ftp]# vi ks.cfg

完成以上操作,PXE自動安裝設定
新建一個虛擬機器進行測試
在這裡插入圖片描述
成功實現安裝

相關文章