案例1:PXE基礎裝機環境 案例2:配置並驗證DHCP服務 案例3:配置PXE引導 案例4:驗證PXE網絡裝機 案例5:PXE+kickstart自動裝機
1 案例1:PXE基礎裝機環境
1.1 問題html
本例要求爲後續的PXE服務器構建提供RHEL7軟件倉庫,完成下列任務:linux
在CentOS真機部署Web目錄/var/www/html/rh7dvd 掛載RHEL7光盤鏡像文件到該目錄 訪問 http://192.168.4.254/rhel7/ 測試,確保可用
1.2 方案vim
PXE網絡裝機的總體思路 —— 裝機條件準備:瀏覽器
準備RHEL7安裝源(HTTP方式YUM庫) 啓用DHCP服務
PXE網絡裝機的總體思路 —— PXE引導配置:bash
啓用TFTP服務,提供裝機用的內核、初始化文件 提供PXE引導程序、配置啓動菜單
1.3 步驟服務器
實現此案例須要按照以下步驟進行。網絡
步驟一:經過 HTTP 方式發佈RHEL7軟件源app
此環節能夠直接使用網絡內共有的YUM軟件源,好比CentOS真機。socket
1)快速構建httpd服務器(若已構建,此步可跳過)ide
[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.七、引導文件 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.c3二、背景圖片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.2 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.2 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 root@192.168.4.7:/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.2 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