PXE批量安裝操作系統

一、PXE


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


二、PXE工作過程

下圖中介紹了Linux中自動安裝系統的詳細工作過程:

wKiom1bzsx6TxyBAAAFFUBkzl74087.jpg

基本原理及工作流程:
   首先,在客戶端主機的網卡要支持網絡引導,當開機時網卡就會激活當中的程序,自行通過網絡向DHCP請求IP地址,並配置在自己的網卡上。
   其次,DHCP服務器迴應給我們的主機,分配了IP地址,掩碼什麼的,再讓DHCP服務器告訴我們的客戶端主機tftp服務器在什麼位置。
   接着,客戶端主機就去請求tftp服務器,當然,這裏的DHCP服務器和tftp服務器可以是同一臺,也可以不是同一臺,看情況而定。
   而後,tftp服務器就會給客戶端主機提供一個pxe的文件、這個文件就是pxelinux.0,他相當於我們的bootloader、而這個文件是由syslinux這個程序包提供的。
   再則,客戶端主機利用tftp服務器提供的pxelinux.0這個文件,再次嘗試到tftp服務器上獲取內核,因爲要啓動安裝就要啓用引導內核。
   之後,當引導內核啓動後,客戶端主機通過改名後的default(由pxelinux.0改名而來)文件成功的引導Linux安裝內核後,通過httpd服務獲取該文件中指定的自動應答文件ks.cfg所在位置,根據該位置請求下載該文件。
   最後,將ks.cfg文件下載回來後,通過該文件找到ks.cfg文件的配置請求下載安裝過程所需要的軟件包,這樣就可以實現生動化安裝了。

三、PXE實驗環境

1.實驗環境

服務端:

IP:192.168.0.15

關閉iptables,selinux

注:默認情況下,系統存在鏡像,並且鏡像已經掛載/media下

[root@localhost ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2              18G  2.6G   15G  16% /

tmpfs                 495M  144K  495M   1% /dev/shm

/dev/sda1             291M   33M  243M  12% /boot

/dev/sr0              4.2G  4.2G     0 100% /media/CentOS_6.5_Final


客戶端:

安裝Centos6.5系統

2.DHCP服務(爲客服端分配IP地址,並告訴客服端tftp服務位置)

# yum install dhcp -y

# chkconfig dhcpd on

# cp  /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 

# vim /etc/dhcp/dhcpd.conf 

此配置只是爲客戶端分配地址,只需要配置IP段,掩碼,地址池,具體配置看個人需求

option domain-name "example.org";

option domain-name-servers ns1.example.org, ns2.example.org;


default-lease-time 600;

max-lease-time 7200;

log-facility local7;

subnet 192.168.0.0 netmask 255.255.255.0 {

  option domain-name "test.cn";

  option domain-name-servers 8.8.8.8;

  range 192.168.0.110 192.168.0.120;

  option routers 192.168.0.3;  

  filename "pxelinux.0";    ######指定PXE服務文件

  next-server 192.168.0.15; ######指定tftp服務器

}

3.tftp/xinetd服務

# chkconfig xinetd on

# vim /etc/xinetd.d/tftp 

開啓此項服務,主要是提供pxelinux.0等文件

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes 

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /var/lib/tftpboot

        disable                 = no    #########將yes改爲no,開啓tftp服務

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

# cp /media/CentOS_6.5_Final/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

# cp /media/CentOS_6.5_Final/isolinux/{boot.msg,splash.jpg,vesamenu.c32} /var/lib/tftpboot/

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

# cd /var/lib/tftpboot/

# mkdir pxelinux.cfg

#cp /media/CentOS_6.5_Final/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

#chmod 777 pxelinux.cfg -R  ####準確權限不知

# pwd

/var/lib/tftpboot/pxelinux.cfg

# ls

default

說明:

這些文件爲系統初始化安裝必須文件,包括引導,驅動,安裝,背景圖片等

4.http服務

# rpm -q httpd

httpd-2.2.15-26.el6.centos.x86_64

# mkdir /var/www/html/Centos6.5

# mount /dev/sr0 /var/www/html/Centos6.5

# /etc/init.d/httpd restart

# chkconfig httpd on


瀏覽器訪問http://192.168.0.15/Centos6.5/

wKioL1b34ISi02SXAABytCFM3Bk886.png

5.ks.cfg文件

# yum install system-config-kickstart.noarch -y

# system-config-kickstart ###############通過客戶端定製ks文件

# cp /root/ks.cfg  /var/www/html/    

6.指定ks.cfg文件位置

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

18 label linux

 19   menu label ^Install or upgrade an existing system

 20   menu default

 21   kernel vmlinuz

 22   append initrd=initrd.img ks=http://192.168.0.15/ks.cfg

7.在客戶端安裝測試


說明:

PXE爲自動安裝過程,分必安裝與非必安裝,若必安裝沒有配置完,則需在安裝過程中手工干預。

ks.cfg文件組成:

  1. 命令行部分

    url --url="http://192.168.0.15/Centos6.5"

  2. 軟件包部分

    @base  軟件包組

    http   軟件

    -http  不安裝

3.  腳本部分

    此部分爲安裝完系統之後自己定製的腳本



參考:

http://tanxw.blog.51cto.com/4309543/1371355

http://www.2cto.com/net/201602/490925.html

http://xiexiaojun.blog.51cto.com/2305291/1735097

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