1. 程式人生 > >CentOS7無人值守安裝PXE+DHCP+TFTP+SYSLINUX+HTTP+Kickstart

CentOS7無人值守安裝PXE+DHCP+TFTP+SYSLINUX+HTTP+Kickstart

末尾 range config 網絡 客戶端 nvi initrd env 創建

工作原理:

1、PXE(Preboot Execution Environment) Client向DHCP發送請求,將客戶端的BIOS設置成為PXE啟動,通過PXE BootROM(自啟動芯片)會以UDP發送一個廣播請求,向網絡中的DHCP服務器索取IP地址等信息。

2、DHCP服務器收到客戶端的請求,驗證是否來至合法的PXE Client的請求,驗證通過它將給客戶端一個“提供”響應,這個“提供”響應中包含了為客戶端分配的IP地址、pxelinux啟動程序(TFTP)位置,以及配置文件所在位置。

3、PXE客戶端請求下載啟動文件客戶端收到服務器的“回應”後,會回應一個幀,以請求傳送啟動所需文件。這些啟動文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。

4、Boot Server響應客戶端請求並傳送文件,當服務器收到客戶端的請求後,他們之間之後將有更多的信息在客戶端與服務器之間作應答, 用以決定啟動參數。BootROM 由 TFTP 通訊協議從Boot Server下載啟動安裝程序所必須的文件(pxelinux.0、pxelinux.cfg/default)。default文件下載完成後,會根據該文件中定義的引導順序,啟動Linux安裝程序的引導內核。

5、請求下載自動應答文件客戶端通過pxelinux.cfg/default文件成功的引導Linux安裝內核後,安裝程序首先必須確定通過什麽安裝介質來安裝linux,如果是通過網絡安裝(NFS, FTP, HTTP),則會在這個時候初始化網絡,並定位安裝源位置。或許你會說,剛才PXE不是已經獲取過IP地址了嗎?為什麽現在還需要一次?這是由於PXE獲取的是安裝用的內核以及安裝程序等,而安裝程序要獲取的是安裝系統所需的二進制包以及配置文件。由於它們需要的內容不同造成PXE模塊和安裝程序是相對獨立的,PXE的網絡配置並不能傳遞給安裝程序。從而進行兩次獲取IP地址過程。接著會讀取該文件中指定的自動應答文件ks.cfg所在位置,根據該位置請求下載該文件。

6、客戶端安裝操作系統將ks.cfg文件下載回來後,通過該文件找到OS Server,並按照該文件的配置請求下載安裝過程需要的軟件包。OS Server和客戶端建立連接後,將開始傳輸軟件包,客戶端將開始安裝操作系統。安裝完成後,將提示重新引導計算機。

所需組件:

http:用於安裝文件網絡傳輸

tftp:用於上傳內核、入口程序等

dhcp:用於動態IP分配

pxelinux.0:安裝系統入口程序

kickstart:個性化centos7配置

服務器配置

  1. 安裝httpd軟件包

yum install -y httpd

vim /etc/httpd/conf/httpd.conf

ServerName 192.168.200.101:80

systemctl start httpd

systemctl enable httpd

2. 開機自動掛載RHEL7.0的ISO光盤

mkdir /var/www/html/source

mount -o ro /dev/sr0 /var/www/html/source

vim /etc/fstab

添加如下一行,使光盤ISO文件開機自動掛載:

/dev/sr0 /var/www/html/source iso9660 defaults 0 0

3. 安裝tftp-server和xinetd軟件包。

yum install -y xinetd tftp-server

修改tftp配置文件:

vim /etc/xinetd.d/tftp

14 disable = no

systemctl start xinetd

systemctl enable xinetd

ss -ntlu|grep 69

udp UNCONN 0 0 *:69 *:*

4. 安裝並配置DHCP服務

yum install -y dhcp

修改dhcp配置文件:

vim /etc/dhcp/dhcpd.conf

subnet 192.168.200.0 netmask 255.255.255.0 {

range 192.168.200.200 192.168.200.250;

option routers 192.168.200.2;

option domain-name-servers 119.29.29.29, 114.114.114.114;

default-lease-time 36000;

max-lease-time 72000;

next-server 192.168.200.101;

filename "pxelinux.0";

}

啟動dhcp服務:

dhcpd

systemctl start dhcpd

systemctl enable dhcpd

ss -ntlu|grep 67

udp UNCONN 0 0 *:67 *:*

5. 配置支持PXE啟動:

首先要安裝syslinux軟件包。

yum install -y syslinux

復制PXE啟動所需的文件:

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

cp /var/www/html/source/images/pxeboot/initrd.img /var/lib/tftpboot/

cp /var/www/html/source/images/pxeboot/vmlinuz /var/lib/tftpboot/

cp /var/www/html/source/isolinux/boot.msg /var/lib/tftpboot/

cp /var/www/html/source/isolinux/splash.png /var/lib/tftpboot/

cp /var/www/html/source/isolinux/vesamenu.c32 /var/lib/tftpboot/

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

cp /var/www/html/source/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

chmod u+w /var/lib/tftpboot/pxelinux.cfg/default

修改default文件配置ks.cfg的存放地址:

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

技術分享圖片

6. 進入X Windows圖形環境,安裝配置kickstart。

init 5

yum install -y system-config-kickstart

生成ks.cfg文件:

system-config-kickstart

  • 根據內容配置語言和root密碼等

技術分享圖片

  • 選擇http安裝,輸入服務器IP和目錄
  • 技術分享圖片
  • 引導安裝程序選項。

技術分享圖片

  • 分區信息,創建三個分區分別是/boot,swap和/根分區。

技術分享圖片

  • 網絡配置,網絡類型選DHCP,設備名稱選ens32。

技術分享圖片

  • 驗證,默認不需要更改。
  • 防火墻設置。

技術分享圖片

顯示配置,選上安裝圖形環境

技術分享圖片

  • 生成cfg文件,保存到/var/www/html目錄下。
  • 技術分享圖片

    vim /var/www/html/ks.cfg

    在末尾加上

    %packages

    @base

    @core

    %end

    ks.cfg語法檢測

    ksvalidator /var/www/html/ks.cfg

  • 客戶端配置

    新建虛擬機,設置其從網卡啟動

技術分享圖片

內存過小將無法啟動安裝程序

CentOS7無人值守安裝PXE+DHCP+TFTP+SYSLINUX+HTTP+Kickstart