1. 程式人生 > 其它 >PXE高效網路裝機與Kickstart無人值守安裝

PXE高效網路裝機與Kickstart無人值守安裝

目錄

一、PXE概述

1、 PXE (Preboot eXcution Environment)的概念

PXE(預啟動執行環境,在作業系統之前執行)由Intel公司開發的網路引導技術,工作在Client/Server模式, 允許客戶機通過網路從遠端伺服器下載引導映象,並載入安裝檔案或者整個作業系統

2、 PXE批量部署的優點

• 規模化:同時裝配多臺伺服器

• 自動化:安裝系統、配置各種服務

• 遠端實現:不需要光碟、U盤等安裝介質

3、部署PXE遠端安裝服務

若要搭建PXE 網路體系,必須滿足以下幾個前提條件:

客戶端:

• 客戶機的網絡卡要支援PXE協議(整合BOOTROM晶片),且主機板支援網路引導。一般大多數伺服器主機都支援,只需在BIOS設定中允許從Network或LAN啟動即可

服務端:

• 伺服器要通過TFTP服務(簡單檔案傳輸協議)來提供系統核心和引導映象檔案的下載

4、搭建PXE遠端安裝伺服器

• PXE 遠端安裝伺服器集成了Centos 7 安裝源、TFTP 服務、DHCP服務、FTP 服務,能夠向客戶機裸機發送PXE載入程式、Linux 核心、啟動選單等資料,以及提供安裝檔案

• TFTP (簡單檔案傳輸協議),是一個基於UDP協議實現的用於在客戶機和伺服器之間進行簡單檔案傳輸的協議,適合於小檔案傳輸的應用場合。TFTP服務預設由xinetd服務進行管理,使用UDP 埠69

• xinetd是新一代的網路守護程序服務程式,又叫超級伺服器,常用來管理多種輕量級Internet服務
守護程序也稱精靈程序(Daemon),是執行在後臺的一種特殊程序。守護程序獨立於控制終端,它們常常跟隨系統啟動時啟動,在系統關閉時才結束。守護程序週期性的執行某些任務或者等待處理某些時間,Linux上的大多數伺服器都是用守護程序實現的

在系統啟動中預設的守護程序的父程序ID全都是init,守護程序特徵就是在程式執行名後加了一個d,但不是所有的尾字母是d的程序都是守護程序

二、 搭建PXE遠端安裝伺服器的步驟

1、安裝啟用TFTP服務

yum install -y tftp-server xinetd       #使用yum安裝tftp-server 和 xinetd程式
 
vim /etc/xinetd.d/tftp                  #修改TFTP服務的配置檔案,如下:
    service tftp
    {
            socket_type             = dgram
            protocol                = udp                       #TFTP預設使用的UDP協議
            wait                    = yes                       #yes:客戶機單臺連線,no:多臺連線
            user                    = root
            server                  = /usr/sbin/in.tftpd        #指定TFTP跟目錄(引導檔案的儲存路徑)
            server_args             = -s /var/lib/tftpboot
            disable                 = no                        #no:表示開啟TFTP服務
            per_source              = 11
            cps                     = 100 2
            flags                   = IPv4
    }
 
#將tftp和xinetd服務開啟並設為開機自啟
    systemctl start tftp
    systemctl enable tftp
    systemctl start xinetd
    systemctl enable xinetd

2、安裝啟用DHCP服務

yum install -y dhcp                                 #使用yum安裝dhcp服務
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf        #複製dhcp配置檔案
 
ddns-update-style none;                             #禁用DNS動態更新(取消原有的#號)
next-server 192.168.229.10;                         #指定TFTP伺服器的地址
filename "pxelinux.0";                              #指定要下載的PXE載入程式的檔案
 
subnet 192.168.80.0 netmask 255.255.255.0 {         #宣告要分配的網段地址
  range 192.168.229.100 192.168.229.200;                #設定地址池
  option routers 192.168.80.77;                     #預設閘道器地址指向TFTP伺服器的IP地址
}
 
#啟用DHCP服務並設為開機自啟
systemctl start dhcpd
systemctl enable dhcpd

3、準備Linux核心、初始化映象檔案

cd /mnt/images/pxeboot/                         #進入到掛載的光碟目錄(無法進入的話檢查掛載情況)
cp vmlinuz /var/lib/tftpboot/                   #複製Linux 系統的核心檔案到TFTP根 目錄下
cp initrd.img /var/lib/tftpboot/                #複製初始化映象檔案(linux引導載入模組)到TFTP根目錄下

4、準備PXE載入程式

yum install -y syslinux                                 ##PXE載入程式由軟體包syslinux 提供
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/    #複製PXE載入程式到TFTP根目錄下

5、安裝FTP服務,準備CentOS 7安裝源

yum install -y vsftpd                               #使用yum安裝vsftpd服務
mkdir /var/ftp/centos7                              #在/var/ftp目錄下建立centos7,作為安裝源目錄
cp -rf /mnt/* /var/ftp/centos7/                     #將掛載的光碟內的檔案全部複製到centos7中
 
#將vsftpd服務開啟並設定為開機自啟動
systemctl start vsftpd                                 
systemctl enable vsftpd

6、配置啟動選單檔案

#預設的啟動選單檔案在TFTP根目錄的pxelinux.cfg 子目錄下,檔名為default,
 所以需要建立pxelinux.cfg目錄 和 default 配置檔案
 
mkdir /var/lib/tftpboot/pxelinux.cfg                #建立目錄
vim /var/lib/tftpboot/pxelinux.cfg/default          #建立配置檔案並修改      
#這個檔案不會寫,沒關係,可以再開一個會話,可以在isolinux.cfg檔案去複製
 
default auto                #指定預設入口名稱  
prompt 1                    #設定是否等待使用者選擇,“1"表示等待使用者控制
 
label auto                  #圖形安裝(預設)引匯入口,label用來定義啟動項
kernel vmlinuz              #kernel和append用來定義引導引數
append initrd=initrd.img method=ftp://192.168.229.10/centos7
 
label linux text            #text安裝(預設)引匯入口,label用來定義啟動項
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.229.10/centos7
 
label linux rescue          #rescue安裝(預設)引匯入口,label用來定義啟動項
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.229.10/centos7

7、關閉防火牆和安全防護,驗證PXE網路安裝

systemctl stop firewalld            #關閉防火牆
setenforce 0                        #關閉安全防護

注意事項:

使用VMware建立的虛擬機器進行測試,虛擬機器記憶體至少需要2GB,否則在啟動安裝時可能會報錯,其他安裝步驟無需改變。
開啟虛擬機器,在提示字串"boot:"後直接按Enter鍵( 或執行“auto"命令),將會自動通過網路下載安裝檔案,並進入預設的圖形安裝入口; 若執行“linux text"命令,則進入文字安裝入口;若執行"linux rescue"命令,則進入救援模式。

三、實現Kickstart無人值守安裝的步驟

通過PXE技術遠端安裝CentOS 7 系統的方法,安裝介質不再受限於光碟、行動硬碟等裝置,大大提高了系統安裝的靈活性,然而安裝期間人需要手動選擇語言、鍵盤型別、指定安裝源等一系列互動操作,當需要批量安裝時非常不方便,這裡我將介紹通過Kickstart工具配置安裝應答檔案,自動完成安裝過程中的各種設定,從而無須手動干預,提高網路裝機效率,同時也可以在應答檔案中通過新增%post指令碼,完成安裝後的各種配置操作

1、安裝應答檔案

yum install -y system-config-kickstart      #安裝Kickstart程式

2、開啟Kickstart配置程式視窗

通過桌面選單“應用程式”————>>“系統工具”————>>“Kickstart”開啟,
或者執行
system-config-kickstart         #調出Kickstart配置程式

3、配置Kickstary選項

> 1)基本配置 :
    > 預設語言:中文(簡體)
    > 時區設為:Asia/shanghai
    > 設定root密碼
    > 勾選“安裝後重啟”
> 2)安裝方法:
    > 選擇TFP
    > FTP伺服器:ftp://192.168.3.100           #選擇伺服器的ip,本機IP
    > FTP目錄:centos7                          #之前建立的目錄
> 3)引導裝載程式選項:
    > “安裝型別”:安裝新引導裝載程式
    > “安裝選項”:在主引導記錄(MBR)中安裝引導裝載程式
    > “GRUB選項”:可以根據自己的需求進行設定
> 4)分割槽資訊:
    > 主引導記錄:清除主引導記錄
    > 分割槽:刪除所有現存分割槽
    > 磁碟標籤:初始化磁碟標籤
    > 點選佈局:新增分割槽
    > 掛載點: /boot, 檔案系統型別: xfs, 固定大小: 500M
    > 檔案系統型別: swap, 固定大小: 4096M
    > 掛載點: /,檔案系統型別: xfs,使用磁碟上全部未使用空間
> 5)網路配置
    > 新增網路裝置:ens33
    > 網路型別設為:DHCP
> 6)防火牆配置:
    > SELinux:禁用
    > 安全級別:禁用防火牆

4、儲存自動應答檔案

選擇“Kickstart 配置程式“視窗的”檔案”—————>>“儲存命令”,選擇指定儲存位置,檔名為ks.cfg
預設儲存在/var/ftp

5、配置需要安裝的軟體包

可以根據需要將/root/anaconda-ks.cfg的軟體包安裝指令碼複製到ks.cfg檔案中,只需要複製%packages到%end部分即可。
如要求最小化安裝,可複製下面內容:
vim ks.cfg
%packages
@^minimal
%end

6、編輯引導選單檔案default,新增ks引導引數

vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0            #設定是否等待使用者選擇,“0”表示不等待使用者控制
 
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.80.77/centos7 ks=ftp://192.168.3.100/ks.cfg
#新增ks引導引數以指定ks.cfg應答檔案的URL路徑

四、例項操作一:搭建PXE遠端安裝伺服器

1、安裝啟用TFTP服務

1.1 使用yum安裝tftp-server 和 xinetd程式

1.2、修改TFTP服務的配置檔案

1.3、開啟TFTP服務並設定為開機自啟動

 

2、安裝啟用DHCP服務

2.1 使用yum安裝dhcp服務


 

2.2 複製示例檔案到dhcp的配置檔案中


  

2.3 修改dhcp的配置檔案並開啟dhcp服務

3、準備Linux核心、初始化映象檔案


 

4、準備PXE載入程式

5、安裝FTP服務,準備CentOS 7安裝源

6、配置啟動選單檔案

7、關閉防火牆和安全防護,驗證PXE網路安裝

7.1 關閉防火牆和安全防護

7.2 驗證PXE網路安裝(新建虛擬機器,進行操作)

五、例項操作二:實現Kickstart無人值守安裝的步驟

1、安裝應答檔案

2、開啟Kickstart配置程式視窗(兩種方法)

2.1 開啟終端輸入命令調出

2.2 點選應用程式,選擇系統工具,即可找到kickstart

3、配置Kickstart選項

3.1 基本配置

3.2 安裝方法

3.3 引導裝載程式選項

3.4 分割槽資訊

3.5 網路配置

3.6 防火牆配置

3.7 安裝後腳本

3.8 儲存自動應答檔案,名稱為ks.cfg,並檢視

4、 配置需要安裝的軟體包

將anaconda-ks.cfg的軟體包安裝指令碼複製到ks.cfg檔案中,只需要複製%packages到%end部分即可。

5、 編輯引導選單檔案default,新增ks引導引數

總結

1.安裝PXE需要 3個服務 :TFTP、DHCP、FTP

2.修改TFTP和DHCP的配置檔案

3.準備2個檔案,1個程式:

Linux核心 vmlinuz 和 初始化映象檔案 initrd.img

PXE 載入程式
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

4.配置啟動選單檔案

mkdir /var/lib/tftpboot/pxelinux.cfg

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