PXE網絡引導自動化安裝系統詳解

一、PXE:預引導加載環境

 1.PXE

         Preboot ExecuteEnvironment:支持工作站通過網絡從遠端服務器下載映像,并由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTPtrivial file transfer protocol)或MTFTP(multicasttrivial file transfer protocol)協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成Client端自動化基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。PXE可以引導多種操作系統,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。

 

  2.基于PXE自動安裝系統所需組件

     (1)DHCP服務器

             DHCP動態主機配置協議會在預引導加載操作系統的時候動態自動分配一個IP地址,同時完成網絡加載的主機的設定;需要在其地址池subnet配置中配置一下參數:

filename "";

基于網卡引導時要加載的initial  boot file的文件名;

next-server  HOST;

要是一個tftp-servr,簡單文件傳輸協議

   (2)tftp-server服務

            TFTPtrivialfile transfer protocol,簡單文件傳輸協議服務器?;?/span>UDP文件傳輸,一般該服務器僅用于PXE預引導加載環境。用于提供預引導加載文件pxelinux.0的讀取。相關程序包:Server:tftp-server;Client: tftp,監聽端口69/udp

           服務啟動運行方式:

CentOS6:

# chkconfig tftp on

# service xinetd  restart

CentOS7:

# systemctl start  tftp.socket

   (3)syslinux

          提供適用于不同的操作系統的各種bootloader文件,支持DOSFATfilesystemsLinux ext2/ext3 filesystems(EXTLINUX) PXEnetwork boots(PXELINUX)、ISO 9660 CD-ROMs (ISOLINUX);基于網卡引導的bootloader由其提供文件Wie/usr/share/syslinux/pxelinux.0

   (4) file server(yum repository)yum倉庫

          基于網絡引導加載文件的時候會根據腳本,引導到指定的路徑加載yum倉庫進行安裝程序或者鏡像文件,存儲此yum倉庫的位置稱為file server。該file server可以通過http對外通過程序包或者鏡像,實現引導之后的安裝操作。

          file server可以creatrepo命令手動創建;可以直接復制或者掛載光盤的完整鏡像作為通過程序包的文件存儲源服務

 

 

 

二、DHCP服務器搭建

1.DHCP協議

    Dynamic Host Configuration Protocol動態主機配置協議,局域網的網絡協議,使用UDP協議工作。

   (1)用途

          給內部網絡或網絡服務供應商自動分配IP地址;給用戶或者內部網絡管理員作為對所有計算機作中央管理的手段

   (2)實現機制

            rarp:反向地址解析,實現MAC解析到分配IP,

            lease(地址租約)機制:動態地址分配時候按照有效期分配IP地址,連續使用需要續租

   (3)C/S架構

             Server:需要配置一個靜態地址,能夠提供地址池(可用地址列表);監聽67/UDP端口

             Client獲取動態分配的地址,監聽68/UDP端口

 

 2.DHCP交互工作流程

   (1) 常規獲取過程

             DHCP獲取的過程是通過廣播方式進行。Client發出dhcp_discover發現報文,Server響應dhcp_offer報文;Client再次發出dhcp_request請求確認報文,Server作出dhcp_ack確認確認。

   (2) lease續租工作流程

              DHCP引入了lease租約概念,當達到可用時間50%進行續租(單波通信),發出dhcp_request報文。若DHCP服務器沒響應,則在總時長限制75%、87.5%等多次發起請求,DHCP服務器都未響應則主動放棄地址。若DHCP收到服務響應,則地址可使用時間延長到所設置時間的

   (3) DHCP服務端故障

         DHCP地址池發生該變無法請求到:dhcp會返回dhcp_nak拒絕;客戶端會重新發出dhcp_discover發現報文請求分配地址

 

 3.dhcp- relay

       DHCP服務器工作生效范圍:當前物理網絡(局域網絡)。當在兩個局域網用一臺DHCP服務器提供不同網段地址分配時候就要使用到dhcp relay(dhcp中繼代理)概念。

  注意:

       1) 必須保證有本地網段的地址池,先為自己所在的局域網段提供地址

       2) 路由器:單播server通信,廣播client;路由器將自己當做DHCP服務器的代理

 

 4.DHCP服務器安裝配置

  (1)RPM包安裝dhcp程序

           [root@localhost~]# yum install -y dhcp

     注意:

      [root@localhost ~]# rpm -ql dhcp         # 查看dhcp程序生成的相關文件

       1) dhcp程序提供三個服務相關,不能同時啟動,分別對應ipv4地址分配、ipv6地址分配、dhcrelay代理中繼服務

wKioL1bNiVWCrWvBAAA-XeMMveE875.png

       2) dhcpd.servicedhcp6.service對應的地址信息庫,,用于動態IP分配歷史記錄

wKioL1bNiVaAZWhlAAAkIR4pLoM422.png

 (2) 配置文件

        /etc/dhcp/dhcpd.confiPv4_dhcp服務的主配置文件位置,提供了模板配置/usr/share/doc/dhcp*/dhcpd.conf.example,需要自己復制模板文件覆蓋當前文件,在修改配置信息。

[root@localhost ~]# cp/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example   /etc/dhcp/dhcpd.conf

     1)基本配置

option  domain-name

客戶端基于非FQDN,會自動補充搜索域

option  domain-name-server

DNS主機地址

default-lease-time  600

默認租約時長,默認單位秒

max-lease-time  7200

最大租約時長,默認單位秒

log-facility  local7

日志信息記錄方式,local7指向/etc/rsyslong.conf中自定義的local7位置/var/log/boot.log

     2)地址池配置

subnet

定義網絡

range   START END

定義地址分配池范圍(起始地址、結束地址),其網段范圍必須屬于subnet配置的網絡范圍

option routers

配置網關主機地址

        實例:

 subnet 10.254.239.0 netmask 255.255.255.224{

     range 10.254.239.10 10.254.239.20;

    option routers rtr-239-0-1.example.org,rtr-239-0-2.example.org;

}

     擴展:pxe預引導加載相關配置

filename # ;

基于網絡引導是加載的initial  boot file的文件名,網絡引導系統加載文件

next-server  HOST;

initial boot  file所在的服務主機地址;

     3)host 配置主機固定分配IP

  host NAME {   }

hardware  ethernet #;

指明網卡的MAC地址

fixed-address  #;

指明固定分配的IP地址,該地址要在網絡中,但不能再地址池中防止地址沖突

實例:

host  xuding  {

       hardware ethernet 0:0:c0:5d:bd:95;     

       fixed-address 172.16.210.1;

}

      4) class分類是識別制定地址池

 (3)手動測試DHCP獲取命令:dhclient

       dhclient -d:強制顯示在前臺,獲得地址分配過程

wKiom1bNiO7S_RYGAABLr-KjNKM657.png

                                                                                                                        

 

三、基于PXE自動安裝系統服務配置(CentOS 7)

說明:演示搭建環境為CentOS 7系統,自動化安裝的系統鏡像為CentOS 7

  1.安裝相關所需程序包

       [root@localhost ~]# yuminstall httpd

       [root@localhost ~]# yuminstall dhcp

       [root@localhost ~]# yuminstallsyslinux

       [root@localhost ~]# yuminstall tftp-sserver

 

  2.準備file server(yumrepository)yum倉庫

     此處提供的yum倉庫是通過httpweb服務對Client客戶端通過程序包

        [root@localhost ~]# mkdir /var/www/html/centos7      # 創建安裝程序文件放置位置

        [root@localhost ~]# mount –binf/media/cdrom /var/www/html/centos7      # 通過目錄綁定的方式掛載光盤鏡像

        [root@localhost ~]# cp  /tmp/centos7.cfg  /var/www/html/centos7   # 將配置好的kickstart文件放置到指定位置

   注意:

        1) yum倉庫可以將光盤內的鏡像全部復制到/var/www/html/centos7目錄下,也可以自己creatrepo創建yum的依賴關系

        2) kickstart文件:anaconda(CentOS系列基于內核啟動來實現定制自動安裝操作)的配置文件,其可以通過修改/root目錄下模板樣式anaconda-ks.cfg來實現定制。在此配置文件中需要指明"url –url=http://172.16.0.1/"和需要安裝的程序組。

 

  3.配置DHCP

       /etc/dhcp/dhcpd.conf文件中添加如下配置: 

option domain-name"xuding.com";

option domain-anem-servers172.16.0.1;

default-lease-time 3600;

max-lease-time 7200;                                                                                                                                                                               

subnet  172.16.0.0 netmask  255.255.0.0 {

range 172.16.200.101  172.16.200.110;

option route 17216.100.6;

filename "pxelinux.0";

next-server 172.16.100.6;

}

    注意:

option domain-anem-servers的范圍大于option route所配置的路由范圍,會先找option route 所提供的路由

 

  4.提供預引導加載等相關文件

       (1)syslinux程序包所提供的引導加載程序的庫文件中的網絡引導程序pxelinux.0復制到tftp對外提供服務的路

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

       (2) 將鏡像文件中的部分文件復制到tftp服務提供使用

                 [root@localhost ~]# cp  /media/cdrom/images/pxelinux/{vmlinuz,initrd.img} /var/lib/tftpboot/

                 [root@localhost ~]#  cp   /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk}  /var/lib/tftpboot/

 

 5.tftp服務下創建程序文件提供pxelinux.cfg的配置

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

       [root@localhost ~]#  vim   /var/lib/tftpboot/pxelinux.cfg/default

 配置文件內容類似如下:

 menu.c32提供文本圖形化選擇界面,顯示提手時間、超時時長、全局菜單、單個菜單、指明加載的內核、安裝時候yum倉庫位置、自動安裝時所使用的ks配置

default menu.c32

  prompt 5

  timeout 30

 MENU TITLE  CentOS 7 PXE Menu

 

  LABEL linux

  MENU LABELInstall CentOS 7 x86_64

  KERNEL vmlinuz

  APPENDinitrd=initrd.img inst.repo=http://172.16.100.6/centos7ks=http://172.16.100.6/centos7.cfg

 

  6.啟動各服務

[root@localhost ~]# systemctl start httpd.service

[root@localhost ~]# systemctl start dhcpd.service

[root@localhost ~]# systemctl start  tftp.socket

  此時,基于PXE的網絡引導已經完成,可以為與該主機在同一網段內分配IP地址池內的IP,并進行自動化引導操作

 

注意:

  CentOS 6CentOS 7的配置有部分不同,參考如下:

cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

cp/media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}/var/lib/tftpboot/

mkdir/var/lib/tftpboot/pxelinux.cfg/

cp/media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

Nicolo:http://xuding.blog.51cto.com/4890434/1744751

原創文章,作者:Nicolo,如若轉載,請注明出處:http://www.www58058.com/15731

(4)
NicoloNicolo
上一篇 2016-04-30 23:13
下一篇 2016-04-30 23:14

相關推薦

  • Kickstart+PXE自動部署

    Kickstart+PXE自動部署 無人值守安裝簡介 無人值守安裝(Unattended Setup)指軟件安裝時無需任何用戶干預,直接按默認或通過應答文件設置安裝,這對于無特殊需求的用戶或企業大批量部署安裝操作系統及軟件時非常方便。無人值守安裝也稱為靜默安裝,在安裝過程中可以靜默安裝好預先設計集成的一些常用軟件,安裝結束以后軟件就已經可以使用,很多軟件都支…

    Linux干貨 2016-09-17
  • 初學linux遇到的問題

    1 su uername 顯示的是基本格式,不是類似于[root@Centos7 ~]#,看著不知道進入到哪個目錄。解決辦法:在家目錄下使用ls -a命令顯示隱藏文件,使用nano .bash_profile命令,在那里編輯PS1=”[\u@\h \W]\\$”保存退出就好了。 疑問:為什么不在/etc/bashrc下更改呢?自答:改…

    Linux干貨 2017-07-15
  • bash變量類型及區別之淺談

    變量類型,區別 位置變量$0 $1,$2,$# $@ $* 變量的類型:本地變量、環境變量、位置變量 本地變量:生效范圍為當前shell進程,對當前shell之外的其他shell進程包括當前shell的子進程均無效 環境變量:生效范圍為當前shell進程及子進程 位置變量:$1,…..$n,${10}來表示,用于放腳本在腳本代碼中調用通過命令行傳…

    Linux干貨 2016-08-12
  • N22-℡浮生.若夢 ╮第一周作業

    1.描述計算機的組成及其功能  組成:     硬件       (1).CPU: 是計算機的主要設備之一,功能主要是解釋計算機指令以及處理計算機軟件中的數據.       (2).存儲器:內存,硬盤,存儲器的功能是存儲程序、數據和各種信號…

    Linux干貨 2016-09-19
  • N26-第五周-孫逸

    1、 顯示當前系統上root、fedora或user1用戶的默認shell;命令:cat /etc/passwd | grep -E “^(root|fedroa|user1)” | cut -d: -f1,7 2、 找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello(…

    2017-03-10
  • N25第二周博客作業

    第二周博客作業: 1、linux上的文件管理命令都有哪些,其常用的使用方法及其相關示例演示。                    有  cp  mv&nbsp…

    Linux干貨 2016-12-06
欧美性久久久久