1. 程式人生 > >Day16 PXE批量裝機環境(Services05)

Day16 PXE批量裝機環境(Services05)

rom 計算 ket www wal kickstart ftpd tar system

一、批量裝機概述

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服務器的地址

b.客戶端聯系TFTP,下載裝機用的文件(內核vmlinuz、初始化文件initrd.img、網卡啟動程序pxelinux.0)
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)