1. 程式人生 > >PXE基礎裝機環境

PXE基礎裝機環境

for entos ystemd 信息部 timezone 安裝 arpa sta request

Top
NSD SERVICES DAY04

案例1:PXE基礎裝機環境
案例2:配置並驗證DHCP服務
案例3:配置PXE引導
案例4:驗證PXE網絡裝機
案例5:PXE+kickstart自動裝機

1 案例1:PXE基礎裝機環境
1.1 問題

本例要求為後續的PXE服務器構建提供RHEL7軟件倉庫,完成下列任務:

在CentOS真機部署Web目錄/var/www/html/rh7dvd
掛載RHEL7光盤鏡像文件到該目錄
訪問 http://192.168.4.254/rhel7/ 測試,確保可用

1.2 方案

PXE網絡裝機的整體思路 —— 裝機條件準備:

準備RHEL7安裝源(HTTP方式YUM庫)
啟用DHCP服務

PXE網絡裝機的整體思路 —— PXE引導配置:

啟用TFTP服務,提供裝機用的內核、初始化文件
提供PXE引導程序、配置啟動菜單

1.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:通過 HTTP 方式發布RHEL7軟件源

此環節可以直接使用網絡內共有的YUM軟件源,比如CentOS真機。

1)快速構建httpd服務器(若已構建,此步可跳過)

[root@room9pc13 ~]# yum  -y  install  httpd          //裝包
[root@room9pc13 ~]# systemctl  restart  httpd         //啟動服務
[root@room9pc13 ~]# systemctl  enable  httpd          //設置開機自啟

2)準備yum倉庫,部署到Web子目錄

[root@room9pc13 ~]# mkdir  /var/www/html/rh7dvd      //建掛載點
[root@room9pc13 ~]# vim  /etc/fstab
.. ..
/ISO/rhel-server-7.2-x86_64-dvd.iso  /var/www/html/rh7dvd  iso9660  loop,ro  0  0
[root@room9pc13 ~]# mount  -a                         //掛載ISO鏡像文件
[root@room9pc13 ~]# ls  /var/www/html/rh7dvd/         //確認部署位置
addons  isolinux       repodata
EFI     LiveOS         RPM-GPG-KEY-redhat-beta
EULA    media.repo     RPM-GPG-KEY-redhat-release
GPL     Packages       TRANS.TBL
images  release-notes

步驟二:確保yum倉庫HTTP資源可用

從瀏覽器訪問http://192.168.4.254/rh7dvd/,可看到倉庫資源(如圖-1所示)。

圖-1
2 案例2:配置並驗證DHCP服務
2.1 問題

本例要求為PXE客戶機提供地址分配服務,在主機 svr7 上搭建支持PXE的DHCP服務器,提供的地址參數如下:

IP地址範圍 192.168.4.10~200/24
PXE引導服務器位於 192.168.4.7、引導文件 pxelinux.0

然後在主機 pc207 上使用dhclient命令測試 DHCP地址分配服務。
2.2 方案

DHCP地址分配的四次會話:DISCOVERY --> OFFER --> REQUEST -->ACK 。

DHCP服務器基本概念:

DHCP租期:允許客戶機租用IP地址的時間期限,單位為秒
DHCP作用域:分配給客戶機的IP地址所在的網段
DHCP地址池:用來動態分配的IP地址的範圍

DHCP服務端:軟件包dhcp、系統服務dhcpd

DHCP服務端配置文件:/etc/dhcp/dhcpd.conf

傳輸協議及端口:UDP 67(服務器)、UDP 68(客戶端)
2.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:配置DHCP服務端

1)安裝dhcp軟件包

[root@svr7 ~]# yum  -y  install  dhcp
.. ..

2)建立dhcpd.conf服務配置

[root@svr7 ~]# vim  /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0 {
     range  192.168.4.10 192.168.4.200;
     next-server  192.168.4.7;
     filename  "pxelinux.0";
}

3)啟動系統服務dhcpd,並設置開機自啟

[root@svr7 ~]# systemctl  restart  dhcpd
[root@svr7 ~]# systemctl  enable  dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

4)確認dhcpd服務狀態

[root@svr7 ~]# netstat  -anptu  |  grep  dhcpd
udp        0      0 0.0.0.0:67              0.0.0.0:*                           58693/dhcpd         
.. ..

步驟二:在客戶端測試DHCP服務

1)使用dhclient命令測試,觀察獲取IP地址的過程

[root@pc207 ~]# dhclient  -d  eth0
Internet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
.. ..
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0x6707682f)
DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x6707682f)
DHCPOFFER from 192.168.4.7
DHCPACK from 192.168.4.7 (xid=0x6707682f)
bound to 192.168.4.10 -- renewal in 18008 seconds.
^C                                   //按Ctrl+c鍵退出測試

2)若因操作異常導致IP故障,可恢復客戶機原有IP配置

[root@pc207 ~]# pkill  -9  dhclient                      //殺死dhclient進程
[root@pc207 ~]# nmcli  connection  up  eth0              //激活原配置
.. ..

3 案例3:配置PXE引導
3.1 問題

本例要求為PXE裝機提供引導服務,並提供必要的素材,完成下列任務:

啟用TFTP服務器,部署引導文件(內核vmlinuz、初始文件initrd.img、網卡啟動程序pxelinux.0)
創建pxelinux.cfg/配置目錄,在此目錄下建立默認引導文件default

3.2 方案

TFTP,Trivial File Transfer Protocol:簡單文件傳輸協議,通過UDP 69端口提供小文件的傳輸服務,默認應將資源部署到/var/lib/tftpboot目錄下,不支持認證和目錄訪問等復雜FTP操作。

網卡啟動程序pxelinux.0由軟件包syslinux提供。

PXE安裝用的內核及初始化文件可從RHEL7的光盤目錄/images/pxeboot/下提取。

PXE啟動配置相關資料可參考RHEL7的光盤目錄/isolinux/,其中包括圖形支持模塊vesamenu.c32、背景圖片spash.png、菜單配置文件isolinux.cfg(使用時改名為default)。
3.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:快速構建TFTP服務器

1)安裝tftp-server軟件包

[root@svr7 ~]# yum -y install tftp-server 
.. ..

2)啟動系統服務tftp,並設置開機自啟

[root@svr7 ~]# systemctl  restart  tftp
[root@svr7 ~]# systemctl  enable  tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.

步驟二:部署啟動文件

1)拷貝pxelinux.0程序,部署到TFTP目錄

在軟件包syslinux提供的目錄下找到pxelinux.0程序

[root@svr7 ~]# yum  -y  install  syslinux
[root@svr7 ~]# rpm  -ql  syslinux  |  grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0

將其拷貝到/var/lib/tftpboot/目錄下,確認部署結果:

[root@svr7 ~]# cp  /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
[root@svr7 ~]# ls  /var/lib/tftpboot/
pxelinux.0

2)拷貝引導裝機的內核、初始鏡像,部署到TFTP目錄

當文件較多時,可以在TFTP目錄下創建子目錄:

[root@svr7 ~]# mkdir  /var/lib/tftpboot/rhel7

再通過RHEL7光盤目錄找到PXE版內核vmlinuz、初始鏡像initrd.img,將其拷貝到上述子目錄:

[root@svr7 ~]# cd  /var/lib/tftpboot/rhel7/
[root@svr7 rhel7]# wget  http://192.168.4.254/rh7dvd/isolinux/vmlinuz
[root@svr7 rhel7]# wget  http://192.168.4.254/rh7dvd/isolinux/initrd.img
                                              //下載內核、初始化文件

確認部署結果:

[root@svr7 pxeboot]# ls  -R  /var/lib/tftpboot/
/var/lib/tftpboot/:
pxelinux.0  rhel7
/var/lib/tftpboot/rhel7:
initrd.img  vmlinuz

步驟三:配置啟動菜單

1)創建配置目錄

[root@svr7 ~]# mkdir  /var/lib/tftpboot/pxelinux.cfg

2)以光盤中的isolinux目錄為模板,拷貝必要的文件

[root@svr7 ~]# cd  /var/lib/tftpboot/
[root@svr7 tftpboot]# wget  http://192.168.4.254/rh7dvd/isolinux/vesamenu.c32 
                                                      //提供圖形支持
[root@svr7 tftpboot]# wget  http://192.168.4.254/rh7dvd/isolinux/splash.png  
                                                            //準備背景圖片
[root@svr7 tftpboot]# wget  -O  pxelinux.cfg/default  http://192.168.4.254/rh7dvd/isolinux/isolinux.cfg 
                                                         //建立菜單配置
[root@svr7 isolinux]# ls  -R  /var/lib/tftpboot/          //確認部署結果
/var/lib/tftpboot/:
pxelinux.0  pxelinux.cfg  rhel7  splash.png  vesamenu.c32
/var/lib/tftpboot/pxelinux.cfg:
default
/var/lib/tftpboot/rhel7:
initrd.img  vmlinuz

3)調整啟動參數

[root@svr7 ~]# vim  /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32                              //默認交給圖形模塊處理
timeout 600                                      //選擇限時為60秒(單位1/10秒)
.. ..
menu title  PXE  Installation  Server             //啟動菜單標題信息
.. ..
label  linux                                  //菜單項標簽
    menu  label  ^Install Red Hat Enterprise Linux 7
    kernel  rhel7/vmlinuz                      //內核的位置
    append  initrd=rhel7/initrd.img  inst.stage2=http://192.168.4.254/rh7dvd 
                                                 //初始鏡像、安裝源位置
label rescue
    menu label ^Rescue a Red Hat Enterprise Linux system
    kernel rhel7/vmlinuz
    append initrd=rhel7/initrd.img inst.stage2=http://192.168.4.254/rh7dvd rescue
label local                                     //從硬盤啟動
    menu  default                              //默認啟動方式
    menu label Boot from ^local drive
    localboot 0xffff
menu  end

步驟四:訪問TFTP服務端確保可用

1)在pc207上安裝tftp命令工具

[root@pc207 ~]# yum  -y  install  tftp
.. ..

2)在pc207上訪問svr7上的TFTP服務端,下載文件測試

[root@pc207 ~]# tftp  192.168.4.7  -c  get pxelinux.0
[root@pc207 ~]# ls  -lh  pxelinux.0                      //檢查下載結果
-rw-r--r--. 1 root root 27K 1月  13 15:48 pxelinux.0

4 案例4:驗證PXE網絡裝機
4.1 問題

沿用案例三,本例要求新建一臺虛擬機(內存1G、硬盤20G),完成PXE網絡裝機的過程測試:

選擇采用URL源,自動獲取IP地址
指定路徑 http://192.168.4.254/rh7dvd
後續過程與光盤本地安裝相同

4.2 方案

認識PXE客戶機裝機的引導環節:

通過DHCP配置網卡、獲知TFTP地址及PXE啟動文件
從TFTP服務器下載PXE啟動文件
讀取啟動配置(pxelinux.cfg/default)
根據用戶選擇下載 vmlinuz 和 initrd.img
內核 vmlinuz 運行後,主導安裝過程

4.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:新建虛擬機pxetest

新建一臺虛擬機,註意將安裝方式選擇“網絡引導(PXE)”(如圖-2所示)。虛擬機的其他設置參考:內存1G、硬盤20G;網絡類型要與PXE服務器相同,比如選用private1隔離網絡。

圖-2

註意:如果是生產環境中已經有系統的客戶機,則需要調整BIOS設置,將網絡引導作為第一啟動設備。

步驟二:啟動虛擬機pxetest,驗證PXE網絡安裝過程

1)確認啟動界面

客戶機通過PXE引導以後,可以獲得服務端提供的配置界面(如圖-3所示)。

圖-3

2)選擇第一個菜單項開始安裝RHEL7操作系統

成功出現RHEL7安裝程序的歡迎界面,根據提示選擇中文(如圖-4所示)後繼續。

圖-4

3)下一步需手動選擇安裝源

指定位於http://192.168.4.254/rh7dvd的軟件倉庫(如圖-5所示),軟件選擇、安裝位置等設置根據需要指定,確認後繼續。

圖-5

後續過程與正常的光盤安裝類似,不再贅述。

順利操作到這裏說明PXE網絡引導安裝的目標已經實現了。
5 案例5:PXE+kickstart自動裝機
5.1 問題

本例要求在PXE服務器上為RHEL7客戶機準備ks應答文件,完成下列任務:

實現全自動的安裝及配置
能夠自動配好YUM倉庫

然後在客戶機上驗證PXE+kickstart全自動裝機過程:

再次將測試客戶機從PXE啟動並安裝
完成後,重啟客戶機並驗證結果

5.2 方案

使用圖形配置工具system-config-kickstart來生成應答文件
5.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:準備應答文件

找一臺RHEL7系統的模板虛擬機,使用配置工具生成應答文件。

1)在模板機上安裝system-config-kickstart軟件包

[root@svr7 ~]# yum  -y  install  system-config-kickstart
.. ..

2)調整模板機的yum倉庫設置

清理掉無關的yum源,只保留為客戶機安裝RHEL7系統所必要的yum源,並且將源的ID修改為development。

[root@svr7 ~]# vim  /etc/yum.repos.d/rh7dvd.repo
[development]
name = Red Hat Enterprise Linux 7
baseurl = http://192.168.4.254/rh7dvd
gpgcheck = 0

3)運行system-config-kickstart工具,創建應答文件

在支持圖形程序的環境運行system-config-kickstart,即可打開該配置工具(如圖-6所示)。

圖-6

通過“文件”菜單打開/root/anaconda-ks.cfg文件,作為應答配置模板,這樣可以節省很多時間(如圖-7所示)。根據需要確認默認語言、時區,設置根口令、磁盤分區規劃等基本信息。

圖-7

在安裝方法部分,選擇“執行新安裝”,並正確設置HTTP安裝源的訪問地址信息(如圖-8所示)。

圖-8

在分區信息部分,選擇清除主引導記錄、刪除所有現存分區、初始化磁盤標簽,並手動添加/boot 200MB、SWAP分區 2000MB、/分區 所有剩余空間(如圖-9所示)。

圖-9

在網絡配置部分,確認已添加第一塊網卡,設為DHCP自動獲取(如圖-10所示)。

圖-10

在防火墻配置部分,禁用SELinux、禁用防火墻(如圖-11所示)。

圖-11

在軟件包選擇部分,根據客戶機的實際需要定制。比如若要使用圖形桌面環境,建議將GNOME相關的包勾選上(如圖-12所示)。

圖-12

在安裝後腳本部分,添加經驗證的正確可執行語句,使客戶機裝好系統後能夠自動配好YUM源(如圖-13所示)。

圖-13

確認上述調整後,通過“文件”菜單將其保存為/root/ks-rhel7.cfg。

4)應答文件微調整

刪除掉隨模板機配置殘留的不可用倉庫記錄(比如以repo --name開頭的Server-HighAvailability、Server-ResilientStorage、autopart等行)

[root@svr7 ~]# vim  /root/ks-rhel7.cfg
install                                                  //安裝基本信息設置
xconfig  --startxonboot
keyboard --vckeymap=cn --xlayouts=‘cn‘
rootpw --iscrypted $1$.48kBNVL$e.Ym0L/RzkJonYwbg9Brq1
timezone Asia/Shanghai
url --url="http://192.168.4.254/rh7dvd"                  //安裝源設置
lang zh_CN
firewall --disabled
#repo --name="Server-HighAvailability" --baseurl=file:///run/install/repo/addons/HighAvailability
#repo --name="Server-ResilientStorage" --baseurl=file:///run/install/repo/addons/ResilientStorage
#autopart --type=lvm                                      //分區設置
zerombr
clearpart --all --initlabel
part /boot --fstype="xfs" --size=200
part swap --fstype="swap" --size=2000
part / --fstype="xfs" --grow --size=1
.. ..
%post --interpreter=/bin/bash                          //安裝後腳本設置
echo  ‘[rhel7]
name = Red Hat Enterprise Linux 7
baseurl = http://192.168.4.254/rh7dvd
gpgcheck = 0‘  >  /etc/yum.repos.d/rhel7.repo
%end
%packages                                              //軟件包設置
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
.. ..
initial-setup
initial-setup-gui
-NetworkManager
-NetworkManager-team
.. ..
%end

步驟二:部署應答文件

1)將應答文件部署在客戶機可訪問的位置

部署並確認文件:

[root@room9pc13 ~]# scp  [email protected]:/root/ks-rhel7.cfg  /var/www/html/
[root@room9pc13 ~]# ls  -lh  /var/www/html/ks-rhel7.cfg          //檢查部署的文件
-rw-r--r--. 1 root root 4.5K 1月  13 20:20 /var/www/html/ks-rhel7.cfg

在客戶端下載應答文件,確保可訪問:

[root@pc207 ~]# wget  http://192.168.4.254/ks-rhel7.cfg
.. ..
2017-01-13 20:22:19 (183 MB/s) - “ks-rhel7.cfg” 已保存 [4508] 
[root@pc207 ~]# ls  -lh  ks-rhel7.cfg                 //檢查下載的文件
-rw-r--r--. 1 root root 4.5K 1月  13 20:22 ks-rhel7.cfg

2)在PXE服務器上修改default引導配置,調用應答文件

找到相應的label啟動項,在append後添加ks=應答文件地址,去掉原有的inst.stage2參數設置:

[root@svr7 ~]# vim  /var/lib/tftpboot/pxelinux.cfg/default
.. ..
label linux
    menu label ^Install Red Hat Enterprise Linux 7
    kernel rhel7/vmlinuz
    append initrd=rhel7/initrd.img ks=http://192.168.4.254/ks-rhel7.cfg 
.. ..

步驟三:驗證PXE+kickstart自動應答

1)新建一臺虛擬機裸機,確認支持PXE網卡啟動

新建一臺虛擬機裸機,註意以下事項:將內存設為1G、硬盤設為20G;網絡類型要與pxesvr服務器的相同,比如選擇private1。

2)啟動虛擬機裸機,驗證PXE網絡安裝過程

正常PXE引導,選擇第一個啟動項回車確認即快速進入全自動安裝,後續過程基本無需人工幹預(如圖-14所示)。

圖-14

PXE基礎裝機環境