批量裝機環(huán)境 、 配置PXE引導(dǎo) 、 kickstart自動應(yīng)答 、 Cobbler裝機平臺

1 案例1:配置并驗證DHCP服務(wù)

1.1 問題

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

  • IP地址范圍 192.168.4.10~200/24
  • PXE引導(dǎo)服務(wù)器位于 192.168.4.7、引導(dǎo)文件 pxelinux.0

然后在主機 pc207 上使用dhclient命令測試 DHCP地址分配服務(wù)。

1.2 方案

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

DHCP服務(wù)器基本概念:

  • DHCP租期:允許客戶機租用IP地址的時間期限,單位為秒
  • DHCP作用域:分配給客戶機的IP地址所在的網(wǎng)段
  • DHCP地址池:用來動態(tài)分配的IP地址的范圍

DHCP服務(wù)端:軟件包dhcp、系統(tǒng)服務(wù)dhcpd

DHCP服務(wù)端配置文件:/etc/dhcp/dhcpd.conf

傳輸協(xié)議及端口:UDP 67(服務(wù)器)、UDP 68(客戶端)

1.3 步驟

實現(xiàn)此案例需要按照如下步驟進行。

步驟一:配置DHCP服務(wù)端

1)安裝dhcp軟件包


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

2)建立dhcpd.conf服務(wù)配置


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

3)啟動系統(tǒng)服務(wù)dhcpd,并設(shè)置開機自啟


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

4)確認dhcpd服務(wù)狀態(tài)


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

步驟二:在客戶端測試DHCP服務(wù)

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


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

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


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

2 案例2:PXE基礎(chǔ)裝機環(huán)境

2.1 問題

本例要求為后續(xù)的PXE服務(wù)器構(gòu)建提供Linux軟件倉庫,完成下列任務(wù):

  1. 部署Web目錄/var/www/html/dvd
  2. 掛載Linux光盤鏡像文件到該目錄
  3. 訪問 http://192.168.4.7/dvd測試,確保可用

2.2 方案

PXE網(wǎng)絡(luò)裝機的整體思路 —— 裝機條件準備:

  • 準備CentOS7安裝源(HTTP方式Y(jié)UM庫)
  • 啟用DHCP服務(wù)

PXE網(wǎng)絡(luò)裝機的整體思路 —— PXE引導(dǎo)配置:

  • 啟用TFTP服務(wù),提供裝機用的內(nèi)核、初始化文件
  • 提供PXE引導(dǎo)程序、配置啟動菜單

2.3 步驟

實現(xiàn)此案例需要按照如下步驟進行。

步驟一:通過 HTTP 方式發(fā)布CentOS7軟件源

1)快速構(gòu)建httpd服務(wù)器(若已構(gòu)建,此步可跳過)


1.  [root@room9pc13 ~]# yum  -y  install  httpd          //裝包
2.  [root@room9pc13 ~]# systemctl  restart  httpd         //啟動服務(wù)
3.  [root@room9pc13 ~]# systemctl  enable  httpd          //設(shè)置開機自啟

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


1.  [root@room9pc13 ~]# mkdir /var/www/html/dvd      //建掛載點
2.  [root@room9pc13 ~]# vim /etc/fstab
3.  .. ..
4.  /dev/cdrom /var/www/html/dvd  iso9660  defaults  0  0
5.  [root@room9pc13 ~]# mount  -a                         
6.  [root@room9pc13 ~]# ls /var/www/html/dvd/         //確認部署位置

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

從瀏覽器訪問http://192.168.4.7/dvd/,可看到倉庫資源。

3 案例3:配置PXE引導(dǎo)

3.1 問題

本例要求為PXE裝機提供引導(dǎo)服務(wù),并提供必要的素材,完成下列任務(wù):

  1. 啟用TFTP服務(wù)器,部署引導(dǎo)文件(內(nèi)核vmlinuz、初始文件initrd.img、網(wǎng)卡啟動程序pxelinux.0)
  2. 創(chuàng)建pxelinux.cfg/配置目錄,在此目錄下建立默認引導(dǎo)文件default

3.2 方案

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

網(wǎng)卡啟動程序pxelinux.0由軟件包syslinux提供。

PXE安裝用的內(nèi)核及初始化文件可從CentOS7的光盤目錄/images/pxeboot/下提取。

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

3.3 步驟

實現(xiàn)此案例需要按照如下步驟進行。

步驟一:快速構(gòu)建TFTP服務(wù)器

1)安裝tftp-server軟件包


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

2)啟動系統(tǒng)服務(wù)tftp,并設(shè)置開機自啟


1.  [root@svr7 ~]# systemctl  restart  tftp

步驟二:部署啟動文件

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

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


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

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


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

2)拷貝引導(dǎo)裝機的內(nèi)核、初始鏡像,部署到TFTP目錄

當文件較多時,可以在TFTP目錄下創(chuàng)建子目錄:


1.  [root@svr7 ~]# mkdir /var/lib/tftpboot/CentOS7

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


1.  [root@svr7 ~]# cd /var/lib/tftpboot/CentOS7/
2.  [root@svr7 CentOS7]# wget  http://192.168.4.7/dvd/isolinux/vmlinuz
3.  [root@svr7 CentOS7]# wget  http://192.168.4.7/dvd/isolinux/initrd.img
4.  //下載內(nèi)核、初始化文件

確認部署結(jié)果:


1.  [root@svr7 pxeboot]# ls  -R /var/lib/tftpboot/
2.  /var/lib/tftpboot/:
3.  pxelinux.0  CentOS7

5.  /var/lib/tftpboot/CentOS7:
6.  initrd.img  vmlinuz

步驟三:配置啟動菜單

1)創(chuàng)建配置目錄


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

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


1.  [root@svr7 ~]# cd /var/lib/tftpboot/
2.  [root@svr7 tftpboot]# wget  http://192.168.4.7/dvd/isolinux/vesamenu.c32 
3.  //提供圖形支持
4.  [root@svr7 tftpboot]# wget  http://192.168.4.7/dvd/isolinux/splash.png 
5.  //準備背景圖片

7.  [root@svr7 tftpboot]# wget  -O  pxelinux.cfg/default  http://192.168.4.7/dvd/isolinux/isolinux.cfg 
8.  //建立菜單配置
9.  [root@svr7 isolinux]# ls  -R /var/lib/tftpboot/          //確認部署結(jié)果
10.  /var/lib/tftpboot/:
11.  pxelinux.0  pxelinux.cfg  CentOS7  splash.png  vesamenu.c32

13.  /var/lib/tftpboot/pxelinux.cfg:
14.  default

16.  /var/lib/tftpboot/CentOS7:
17.  initrd.img  vmlinuz

3)調(diào)整啟動參數(shù)


1.  [root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
2.  default vesamenu.c32                              //默認交給圖形模塊處理
3.  timeout 600                                      //選擇限時為60秒(單位1/10秒)
4.  .. ..
5.  menu title  PXE  Installation  Server             //啟動菜單標題信息
6.  .. ..
7.  label  linux                                  //菜單項標簽
8.  menu  label  ^Install CentOS7 Linux 7
9.  kernel  CentOS7/vmlinuz                      //內(nèi)核的位置
10.  append  initrd=CentOS7/initrd.img  
11.  //初始鏡像、安裝源位置
12.  label local                                     //從硬盤啟動
13.  menu  default                              //默認啟動方式
14.  menu label Boot from ^local drive
15.  localboot 0xffff

17.  menu  end

步驟四:訪問TFTP服務(wù)端確保可用

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


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

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


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

4 案例4:PXE+kickstart自動裝機

4.1 問題

本例要求在PXE服務(wù)器上為CentOS7客戶機準備ks應(yīng)答文件,完成下列任務(wù):

  1. 實現(xiàn)全自動的安裝及配置
  2. 能夠自動配好YUM倉庫

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

  1. 再次將測試客戶機從PXE啟動并安裝
  2. 完成后,重啟客戶機并驗證結(jié)果

4.2 方案

使用圖形配置工具system-config-kickstart來生成應(yīng)答文件

4.3 步驟

實現(xiàn)此案例需要按照如下步驟進行。

步驟一:準備應(yīng)答文件

找一臺CentOS7系統(tǒng)的模板虛擬機,使用配置工具生成應(yīng)答文件。

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


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

2)調(diào)整模板機的yum倉庫設(shè)置

清理掉無關(guān)的yum源,只保留為客戶機安裝CentOS7系統(tǒng)所必要的yum源,并且將源的ID修改為development。


1.  [root@svr7 ~]# vim /etc/yum.repos.d/dvd.repo
2.  [development]
3.  name = CentOS Linux 7
4.  baseurl = http://192.168.4.7/dvd
5.  gpgcheck = 0

3)運行system-config-kickstart工具,創(chuàng)建應(yīng)答文件

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

image

圖-5

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

image

圖-6

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

/

圖-7

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

image

圖-8

在網(wǎng)絡(luò)配置部分,確認已添加第一塊網(wǎng)卡,設(shè)為DHCP自動獲?。ㄈ鐖D-9所示)。

image

圖-9

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

image

圖-10

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

image

圖-11

確認上述調(diào)整后,通過“文件”菜單將其保存為/root/ks.cfg。

4)應(yīng)答文件微調(diào)整

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


1.  [root@svr7 ~]# vim /root/ks.cfg
2.  install                                                  //安裝基本信息設(shè)置
3.  xconfig  --startxonboot
4.  keyboard --vckeymap=cn --xlayouts='cn'
5.  rootpw --iscrypted $1$.48kBNVL$e.Ym0L/RzkJonYwbg9Brq1
6.  timezone Asia/Shanghai
7.  url --url="http://192.168.4.254/dvd"                  //安裝源設(shè)置
8.  lang zh_CN
9.  firewall --disabled
10.  #repo --name="Server-HighAvailability" --baseurl=file:///run/install/repo/addons/HighAvailability
11.  #repo --name="Server-ResilientStorage" --baseurl=file:///run/install/repo/addons/ResilientStorage
12.  #autopart --type=lvm                                      //分區(qū)設(shè)置
13.  zerombr
14.  clearpart --all --initlabel
15.  part /boot --fstype="xfs" --size=200
16.  part swap --fstype="swap" --size=2000
17.  part / --fstype="xfs" --grow --size=1
18.  .. ..
19.  %post --interpreter=/bin/bash                          //安裝后腳本設(shè)置
20.  %end

22.  %packages                                              //軟件包設(shè)置
23.  @^graphical-server-environment
24.  @base
25.  @core
26.  @desktop-debugging
27.  @development
28.  .. ..
29.  initial-setup
30.  initial-setup-gui
31.  -NetworkManager
32.  -NetworkManager-team
33.  .. ..

35.  %end

步驟二:部署應(yīng)答文件

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

部署并確認文件:


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

在客戶端下載應(yīng)答文件,確??稍L問:


1.  [root@pc207 ~]# wget  http://192.168.4.7/ks.cfg
2.  .. ..
3.  2017-01-13 20:22:19 (183 MB/s) - “ks.cfg” 已保存 [4508] 

5.  [root@pc207 ~]# ls  -lh  ks.cfg                 //檢查下載的文件
6.  -rw-r--r--. 1 root root 4.5K 1月  13 20:22 ks.cfg

2)在PXE服務(wù)器上修改default引導(dǎo)配置,調(diào)用應(yīng)答文件

找到相應(yīng)的label啟動項,在append后添加ks=應(yīng)答文件地址,去掉原有的inst.stage2參數(shù)設(shè)置:


1.  [root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
2.  .. ..
3.  label linux
4.  menu label ^Install CentOS7 Linux 7
5.  kernel CentOS7/vmlinuz
6.  append initrd=CentOS7/initrd.img ks=http://192.168.4.7/ks.cfg 
7.  .. ..

步驟三:驗證PXE+kickstart自動應(yīng)答

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

新建一臺虛擬機裸機,注意以下事項:將內(nèi)存設(shè)為2G、硬盤設(shè)為20G;網(wǎng)絡(luò)類型要與pxesverver服務(wù)器的相同,比如選擇vmnet1。

2)啟動虛擬機裸機,驗證PXE網(wǎng)絡(luò)安裝過程

正常PXE引導(dǎo),選擇第一個啟動項回車確認即快速進入全自動安裝,后續(xù)過程基本無需人工干預(yù)(如圖-13所示)。

image

圖-13

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容