搭建PXE實現自動化安裝系統


一、PXE工作原理

 

Ø  ClientPXE Server上的DHCP發送IP地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC地址),如果合法則返回ClientIP地址,同時將啟動文件pxelinux.0的位置信息一並傳送給Client

Ø  ClientPXE Server上的TFTP發送獲取pxelinux.0請求消息,TFTP接收到消息之后再向Client發送pxelinux.0大小信息,試探Client是否滿意,當TFTP收到Client發回的同意大小信息之后,正式向Client發送pxelinux.0

Ø  Client執行接收到的pxelinux.0文件

Ø  ClientTFTP Server發送針對本機的配置信息文件(在TFTP 服務的pxelinux.cfg目錄下),TFTP將配置文件發回Client,繼而Client根據配置文件執行后續操作。

Ø  ClientTFTP發送Linux內核請求信息,TFTP接收到消息之后將內核文件發送給Client

Ø  ClientTFTP發送根文件請求信息,TFTP接收到消息之后返回Linux根文件系統

Ø  Client啟動Linux內核

 Ø  Client下載安裝源文件,讀取自動化安裝腳本

 

二、CentOS 7搭建PXE自動化系統

通過CentOS 7搭建的PXE自動化系統安裝CentOS 7

²  安裝前准備:關閉防火牆和SELINUXDHCP服務器靜態IP

²  安裝軟件包

  # yum -y install httpd tftp-server dhcp syslinux system-config-kickstart

²  配置http文件共享服務:

  # systemctl enable httpd

  # systemctl start httpd

  # mkdir -p /var/www/html/centos/7

  # mount /dev/sr0 /var/www/html/centos/7    #掛載centos7安裝光盤到httpd服務的目錄

²  准備kickstart文件

  將centos7的ks文件放置於 /var/www/html/ks/centos7.cfg

²  配置tftp服務

  # systemctl enable tftp.socket

   # systemctl start tftp.socket

²  配置DHCP服務

  #vim /etc/dhcp/dhcpd.conf

  option domain-name "example.com";

  default-lease-time 600;

  max-lease-time 7200;

  subnet 192.168.100.0 netmask 255.255.255.0 {

    range 192.168.100.1 192.168.100.200;

    filename "pxelinux.0";

    next-server 192.168.100.100;

  }

  # systemctl enable dhcpd

   # systemctl start dhcpd

 

²  准備相關文件

  # yum -y install syslinux

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

  # cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/

  # cp /var/www/html/centos/7/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/

   # cp /var/www/html/centos/7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

 

²  准備啟動菜單

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

default menu.c32

timeout 600

menu title PXE INSTALL MENU

label auto

  menu label Auto Install CentOS 7

  kernel vmlinuz

  append initrd=initrd.img ks=http://192.168.100.100/ks/centos7.cfg

label manual

  menu label Manual Install CentOS 7

  kernel vmlinuz

  append initrd=initrd.img inst.repo=http://192.168.100.100/centos/7

label local

  menu default

  menu label ^Boot from local drive

   localboot 0xffff

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM