Day16 PXE批量裝機環境(Services05)
1.1 PXE
PXE(Preboot Execution Environment)預啟動環境,在操作系統之前運行
1.1.1 PXE工作模式
PXE Client集成在網卡的啟動芯片中,當計算機引導時,從網卡芯片中把PXE Client調入內存,獲取PXE Server配置、顯示菜單,根據用戶的選擇將引導程序下載到本機運行
1.2 PXE組件及過程引導
1.2.1 需要哪些服務組件
DHCP:分配IP地址,指定引導程序
TFTP:提供引導程序下載。特點:不需要用戶名和密碼
FTP/HTTP/NFS:提供yum安裝源
1.2.2客戶端獲取IP地址直到獲取yum源的過程:
a.客戶端通過DHCP四個過程獲取IP地址,同時得到TFTP服務器的地址
vmlinux、initrd.img在安裝光盤的/images/pxeboot/下
pxelinux.0要安裝syslinux包
c.客戶端運行pxelinux.0,調用圖形支持模塊vesamenu.c32、背景圖片splash.png、菜單配置文件pxelinux.cfg/default
vesamenu.c32、splash.png、default在安裝光盤的/isolinux/下
d.通過FTP/HTTP/NFS提供的yum源,就可以開始安裝系統了
二、部署DHCP服務器
2.1 概述及原理
DHCP地址的四次會話:Discovery—Offer—Request—Acknowledge
租期:允許客戶機租用IP地址的時間期限,單位為秒
作用域:分配給客戶機的IP地址所在網段
地址池:用來分配給客戶機的IP地址的範圍
端口:67/udp(服務器)、68/udp(客戶端)
2.2 搭建dhcp服務器
2.2.1 yum -y install dhcp
安裝dhcp包
2.2.2 /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
dhcpd.conf的模板文件
2.2.3 /etc/dhcp/dhcpd.conf
dhcp服務的主配置文件
2.2.4 修改主配置文件
vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option domain-name-servers 8.8.8.8;
option routers 192.168.4.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.7;
filename "pxelinux.0";
}
2.2.5 systemctl restart dhcpd systemctl enable dcpd
重啟服務並設置開機啟動
2.2.6 dhclient -d eth0
用調試命令對eth0進行dhcp客戶端測試
dhclient -d eth0
nternet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/74:52:08:05:08:01
Sending on LPF/eth0/74:52:08:05:08:01
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4 (xid=0x454b0f80)
DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x454b0f80)
DHCPOFFER from 192.168.4.7
DHCPACK from 192.168.4.7 (xid=0x454b0f80)
bound to 192.168.4.100 -- renewal in 232 seconds.
三、部署TFTP服務
3.1 概述
TFTP(Trival File Transfer Protocol)簡單文件傳輸協議
端口:69/udp
服務端程序:tftp-server
系統服務:tftp
3.2 yum -y install tftp-server
安裝服務端安裝包
3.3 systemctl restart tftp && systemctl enable tftp
啟動服務及設置開機啟動
3.4 /var/lib/tftpboot
tftp服務器的根目錄,所有文件都要放在該目錄下
3.5 yum provides */pxelinux.0
pxelinux.0就是網卡引導程序,我們可以利用yum數據庫查詢pxelinux.0文件是在哪個包裏面,查詢到在syslinux.x86_64裏面
3.6 yum -y install syslinux
安裝syslinux軟件包
3.7 rpm -ql syslinux-4.05-12.el7.x86_64 |grep pxelinux.0
查詢pxelinux.0安裝到哪個目錄去了
3.8 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
拷貝pxelinux.0到tftp服務器的根目錄
3.9 mkdir /var/lib/tftpboot/pxelinux.cfg
創建default文件所在的目錄。菜單配置文件default必須放在這裏
3.10 wget http://192.168.4.254/rhel7/isolinux/isolinux.cfg -O /var/lib/tftpboot/pxelinux.cfg/default
拷貝菜單文件到指定目錄pxelinux.cfg/,並且命名為default,同時要保證文件權限必須是644
3.11 wget http://192.168.4.254/rhel7/isolinux/vesamenu.c32 /var/lib/tftpboot/
拷貝圖形模塊文件vesamenu.c32
3.12 修改默認菜單文件default
修改及註釋
default vesamenu.c32#默認圖形模塊為vesamenu.c32
timeout 600#等待60秒
......
display boot.msg
......
menu title NSD1709 PXE Server !#顯示給用戶的啟動菜單
......
label linux
menu label ^Install Red Hat Enterprise Linux 7.2#^表示鍵盤上的快捷鍵,顯示給用戶的菜單選項
kernel vmlinuz#內核程序
append initrd=initrd.img#啟動內核需要這個驅動程序
label local#從硬盤啟動
menu default#默認啟動方式
menu label Boot from ^local drive
localboot 0xffff
3.13 wget http://192.168.4.254/rhel7/isolinux/vmlinuz /var/lib/tftpboot/
拷貝內核程序到tftp根目錄
3.14 wget http://192.168.4.254/rhel7/isolinux/initrd.img /var/lib/tftpboot/
拷貝驅動程序到tftp根目錄
四、部署FTP服務
yum -y install vsftpd
systemctl enable vsftpd && systemctl restart vsftpd
mkdir /var/ftp/rhel7
mount /dev/cdrom /var/ftp/rhel7
firefox ftp://192.168.4.7/rhel7
五、生成應答文件實現無人值守安裝
5.1 yum -y install system-config-kickstart
安裝能生成應答文件的軟件包
5.2 運行system-config-kickstart
圖形設置生成應答文件,保存為/root/ks.cfg
註意!在選擇軟件包信息的時候會出現“下載軟件包信息失敗”等錯誤信息,這是一個bug。bug解決方法:把yum源文件的[name]修改為[development]
5.3 cp /root/ks.cfg /var/ftp/
拷貝應答文件到ftp的根目錄下
5.4 修改tftp的默認菜單文件
vim /var/lib/tftpbook/pxelinux.cfg/default
到最後一行增加下面的藍色字體部分,來指定應答文件的路徑
append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg
Day16 PXE批量裝機環境(Services05)