CentOS7無人值守安裝PXE+DHCP+TFTP+SYSLINUX+HTTP+Kickstart
工作原理:
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配置
服務器配置
-
安裝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