PXE自動化系統安裝服務器(DHCP + TFTP + syslinux +vsftpd)

PXE服務器介紹及部署


PXE簡介:

      PXE:預安裝環境 . 是Intel公司推出的一款通過網絡來引導操作系統的協議 . 廣泛應用於網吧無盤系統 .


實驗目標:

      用centos7 系統部署一臺pxe 服務器, 通過PXE網絡來給客戶端實現手動或自動安裝 centos7 操作系統 .


PXE 服務器需要的支撐軟件: 

      DHCP + TFTP +sys Linux (提供pxe 引導程序文件系統文件pxelinux.0)+ 文件共享(nfs , ftp , http , samba 等) . 


工作原理流程:

                image.png

PXE服務器和客戶機的工作過程:

1.      PXE客戶機發出DHCP請求,向服務器申請IP地址。

2.      DHCP服務器響應PXE客戶機的請求,自動從IP地址池中分配一個IP地址給PXE客戶機,並且告知PXE客戶機TFTP(簡單文件傳輸協議)服務器的IP地址和PXE引導程序文件pxelinux.0

3.      PXE客戶機向TFTP服務器發起獲取pxelinux.0引導程序文件的請求。

4.      TFTP服務器響應PXE客戶機的請求,將其共享的pxelinux.0文件傳輸給PXE客戶機。

5.      PXE客戶機通過網絡來啓動到系統安裝主界面。

6.      PXE客戶機向文件共享服務器發起獲取centoswindows系統安裝文件的請求。

7.      文件共享服務響應PXE客戶機的請求,將共享的系統安裝文件傳輸給PXE客戶機。

8.      PXE客戶機進入到安裝提示嚮導界面,用戶需要手動來完成系統的操作。


kickstart自動化系統安裝:

PXE服務器上用vimkcikstart工具創建一個系統自動安裝的應答文件ks.cfg(自行命名),並用文件共享服務來共享ks.cfg文件。ks.cfg自動應答文件中是記錄的安裝操作步驟。客戶機在進入安裝界面時會自動根據ks.cfg文件中的內容來完成安裝操作。


PXE 服務器部署流程:

  •      關閉selinux 和 防火牆

            setenforce   0

            systemctl   stop   firewalld

  •      部署 DHCP 服務器

            1. 查看軟件是否安裝 :  rpm  -q  dhcp

            2. 安裝DHCP服務器軟件 : yum  install  -y  dhcp

            3. 查看文件配置列表 : rpm  -qc  dhcp    (/etc/dhcp/dhcpd.conf  爲  dhcp服務器的主配置文件)

            4. 編輯dhcpd.conf 配置文件:

                先查看主配置文件 , 再用vim編輯如下圖紅色標記文件

                image.png

                找到其中例子如下圖所示

                image.png

                將其複製到主配置文件 /etc/dhcp/dhcpd.conf 中 ,並添加兩行,以本人IP(192.168.11.11/24 爲例) , 如下圖

                192.168.11.11 爲 tftp 服務器IP地址 , filename 爲PXE引導程序文件名稱 .

                image.png

            5. 啓動 dhcp 服務 , 並允許開機自啓動

                systemctl   restart  dhcpd

                systemctl   enable  dhcpd

 

  •      部署tftp-server服務流程:

     1. 查看軟件是否已安裝: rpm  -q  tftp-server

     2. 安裝tftp 服務軟件: yum  install  -y  tftp-server

     3. 查看tftp 服務配置文件並用vim 編輯此文件 , 將配置文件中的disabled = yes  改爲 = no 如圖:

          image.png  

          image.png

      4. 啓動 tftp 服務 , 並設置開機自啓動

           systemctl  restart  tftp

           systemctl  enable  tftp     


  •      安裝提供pxelinux.0的syslinux軟件共享pxe引導程序文件

            1. 查軟件是否已安裝:  rpm  -q  syslinux  mlocate

            2. 安裝指定的軟件:     yum  install  -y  syslinux  mlocate

            3. 更新locate文件查找數據庫:   updatedb

            4. 查找pxelinux.0文件:   locate  pxelinux.0

            5.  切換到tftp-server的默認共享目錄:  cd  /var/lib/tftpboot

            6. 複製指定的文件到當前目錄中:  cp  -v  /usr/share/syslinux/pxelinux.0   ./

            7. 查看磁盤空間使用狀態:  df  -hT

            8. 複製光盤掛載點目錄中指定的文件到當前目錄中:  cp  -v  /dvd/isolinux/*  ./

            9. 在當前目錄中創建pxelinux.cfg目錄:  mkdir  -v  pxelinux.cfg

            10. 複製指定的文件到指定目錄中並改名爲default:  cp  -v  isolinux.cfg    pxelinux.cfg/default 


  •     文件共享服務部署(以vsftpd 爲例):

      

1.  查軟件是否已安裝:rpm  -q  vsftpd

2.  安裝tftp-server服務器軟件:yum   install  -y  vsftpd

3.  查配置文件列表:rpm  -qc   vsftpd

4.  啓動vsftpd服務,允許開機自動啓動服務

          systemctl  restart  vsftpd

          systemctl  enable  vsftpd

    5.   創建/var/ftp/dvd目錄 , 共享centos7的系統鏡像到/var/ftp/dvd目錄

         mkdir  -v  /var/ftp/dvd

         mount  /dev/sr0   /var/ftp/dvd


完成上述  dhcp , tftp , vsftpd 服務後 , 採用kickstart 程序或用 vim 來創建 ks.cfg 配置文件 . 並用文件共享服務來共享ks.cfg 自動應答文件.

  •       使用 vim 創建 ks.cfg 自動應答文件:

      技巧 : linux系統在安裝時會自動生成一個anaconda-ks.cfg 配置文件 ,文件位於/root 目錄中 . anaconda-ks.cfg 裏面記錄的就是用戶在安裝系統時所作的操作 , 像選擇語言環境  , 硬盤分區 , 安裝的軟件包 , 網卡IP設置 , 設置主機名 , root密碼 ,新建普通等一系列操作 

      具體步驟: 

      1.修改/root/anaconda-ks.cfg 權限爲 644 , 複製該文件到vsftpd服務共享目錄/var/ftp/ks 目錄中

         image.png

       2.修改  /var/lib/tftpboot/pxelinux.cfg/default 啓動菜單文件

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

           :set nu 顯示行號

           找到第64行文件,

           修改64行內容爲append  initrd=initrd.img  method=ftp://192.168.11.11/dvd  ks=ftp://192.168.11.11/ks/ks.cfg            

          image.png         

         

          之後開啓客戶機 , 客戶機會先獲取IP , 再進入安裝界面,如圖:

         image.png

   

        用上下方向鍵選擇第一個 , 按 Tab 鍵 , 下面會出現圖上白色的字樣 , 再按enter 鍵安裝 , 客戶機會自動根據/var/lib/tftpboot/pxelinux.cfg/default 內容進行自動化安裝 . 

----------------------------     

      附:ks.cfg 配置文件解析:

      

cat    /var/ftp/ks/ks.cfg    看ks.cfg自動應答文件

#version=DEVEL系統版本號爲DEVEL開發版

# System   authorization information系統認證信息,即指定系統密碼加密方式爲sha512加密算法

auth --enableshadow --passalgo=sha512

# Use CDROM   installation media使用CDROM光盤安裝媒體

cdrom

# Use graphical   install使用圖形安裝界面進行系統安裝,此處可用graphical圖形、也可用text文本方式。

graphical

# Run the Setup   Agent on first boot運行設置代理在第1次啓動時

firstboot --enable

ignoredisk --only-use=sda

# Keyboard   layouts鍵盤佈局

keyboard --vckeymap=cn --xlayouts='cn'

# System   language系統語言環境

lang zh_CN.UTF-8

 

# Network   information網絡信息,包括IP地址獲取方式(static或dhcp)、網關、device網卡設備名、nameserver域名解析服務器IP地址、netmask子網掩碼、IPv6的IP地址等。

network    --bootproto=static --device=ens33 --gateway=192.168.11.2   --ip=192.168.11.11 --nameserver=114.114.114.114,8.8.8.8   --netmask=255.255.255.0 --ipv6=auto --activate

network    --hostname=localhost.localdomain

 

# Root password――指定root用戶的登錄密碼,是加密後的密碼

rootpw --iscrypted   $6$6vsqEcQaDu/y9CkV$1ZSy74HR1mxG.i0xBiUALwywaWCx2zgbWx5QRbJ2Nskck.29C2UxjXIr5jM6LatiaKtip7nvnQ2B5xrype.pA.

# System   services系統服務,以下是允許chronyd網絡時間服務開機自動啓動

services --enabled="chronyd"

# System   timezone系統時區,新建普通用戶jin並設置登錄密碼

timezone Asia/Shanghai --isUtc

user --groups=wheel --name=jin   --password=$6$MHU28rsP7sGGkw7s$JaqYHxDXAHmQaEHS33Py7kvnrKtfMnFp8HqlGw3xy6PAo1dtkxeKOGpi2Yg9UqXJqDLnTjsBkauRekkPYycvt/   --iscrypted --gecos="jin"

# X Window   System configuration information――x window系統配置

xconfig    --startxonboot

# System   bootloader configuration系統引導程序配置

bootloader --append="   crashkernel=auto" --location=mbr --boot-drive=sda

# Partition   clearing information分區表清除信息

clearpart --none --initlabel

# Disk   partitioning information磁盤分區表信息

#創建名稱爲pv.157這個PV,在sda硬盤上,容量大小爲50175兆

part pv.157 --fstype="lvmpv"   --ondisk=sda --size=50175

#創建/boot分區,文件系統類型爲xfs,在sda硬盤上,容量大小爲1024兆

part /boot --fstype="xfs"   --ondisk=sda --size=1024

#創建名稱爲centos的VG卷組,PE大小爲4096K,在pv.157這個PV中創建

volgroup centos --pesize=4096 pv.157

#創建/根的邏輯卷,文件系統類型爲xfs,最大容量爲51200兆,初始容量大小爲1024兆,邏輯卷名稱爲root,組卷名稱爲centos

logvol  /    --fstype="xfs" --grow --maxsize=51200 --size=1024   --name=root --vgname=centos

logvol swap  --fstype="swap" --size=2048   --name=swap --vgname=centos

 

#設置需要安裝的軟件包和軟件包分組

%packages

@^gnome-desktop-environment

@base

@core

@desktop-debugging

@dial-up

@directory-client

@fonts

@gnome-desktop

@guest-agents

@guest-desktop-agents

@input-methods

@internet-browser

@java-platform

@multimedia

@network-file-system-client

@networkmanager-submodules

@print-client

@x11

chrony

kexec-tools

 

%end

 

%addon com_redhat_kdump --enable   --reserve-mb='auto'

 

%end

 

%anaconda

pwpolicy root --minlen=6 --minquality=1   --notstrict --nochanges --notempty

pwpolicy user --minlen=6 --minquality=1   --notstrict --nochanges --emptyok

pwpolicy luks --minlen=6 --minquality=1   --notstrict --nochanges --notempty

%end

 ------------------------------


    使用kickstart軟件來生成ks.cfg自動應答文件。  



    步驟:

             1. 搜索kickstart 關鍵字的軟件

                 yum  search  kickstart

             2. 安裝 kickstart 軟件包

                 yum  install  -y  system-config-kickstart

             3. 啓動kickstart 配置程序

                 system-config-kickstart

     完成安裝之後,啓動kickstart , 會自動彈出 kickstart 設置界面 , 如圖所示:

           image.png

            

     點擊左上角文件 --> 預覽 , 裏面所示爲 kickstart 生成的自動化安裝文件 ks.cfg 的內容 :

         image.png

   

     問題:圖中的“軟件包選擇”界面會出現下圖所示的錯誤:問題的原因是yum源的repo文件中的“倉庫標識”必須用[development]

       image.png   


             修改yum源配置文件:

             vim   /etc/yum.repos.d/local.repo   文件內容如下

            [development]

            name=centos 7.5  linux

            baseurl=file:///dvd

            enabled=1

            gpgcheck=0

    

    yum 源設置可詳細參考 https://blog.51cto.com/14181896/2344517

    修改yum 源倉庫標識之後 , 再啓用kickstart , 軟件包選擇就會變成如下圖所示 , 勾選需要安裝的軟鍵 , 客戶機安裝系統上就會自動安裝 .

   image.png


   管理員可根據需求對kickstart軟件進行設置自動化安裝過程 , 設置好之後 ,左上角文件保存 , 會自動生成一個ks.cfg 的文件 ,把生成的文件放在 /var/ftp下 , 客戶機會根據kickstart設置的內容進行自動安裝 .



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章