1.簡介
1.1讶请、 什么是PXE
PXE(Pre-boot Execution Environment,預(yù)啟動執(zhí)行環(huán)境)是由Intel公司開發(fā)的最新技術(shù),工作于Client/Server的網(wǎng)絡(luò)模式,支持工作
站通過網(wǎng)絡(luò)從遠端服 務(wù)器下載映像,并由此支持通過網(wǎng)絡(luò)啟動操作系統(tǒng),在啟動過程中,終端要求服務(wù)器分配IP地址,再用TFTP(trivial
file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協(xié)議下載一個啟動軟件包到本機內(nèi)存中執(zhí)行,由這個啟動軟件
包完成終端基本軟件設(shè)置,從而引導(dǎo)預(yù)先安裝在服務(wù)器中的終端操作系統(tǒng)祈远。
嚴格來說,PXE 并不是一種安裝方式,而是一種引導(dǎo)方式杜秸。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支持的網(wǎng)
卡(NIC),即網(wǎng)卡中必須要有 PXE Client控乾。PXE 協(xié)議可以使計算機通過網(wǎng)絡(luò)啟動遂蛀。此協(xié)議分為 Client端和 Server 端,而PXE Client則
在網(wǎng)卡的 ROM 中。當計算機引導(dǎo)時,BIOS 把 PXE Client 調(diào)入內(nèi)存中執(zhí)行,然后由 PXE Client 將放置在遠端的文件通過網(wǎng)絡(luò)下載到本
地運行鹃答。運行 PXE 協(xié)議需要設(shè)置 DHCP 服務(wù)器和 TFTP 服務(wù)器乎澄。DHCP 服務(wù)器會給 PXE Client(將要安裝系統(tǒng)的主機)分配一個 IP 地
址,由于是給 PXE Client 分配 IP 地址,所以在配置 DHCP 服務(wù)器時需要增加相應(yīng)的 PXE 設(shè)置。此外,在 PXE Client 的 ROM 中,已經(jīng)
存在了 TFTP Client,那么它就可以通過 TFTP 協(xié)議到 TFTP Server 上下載所需的文件了测摔。
PXE的工作過程:
- PXE Client 從自己的PXE網(wǎng)卡啟動,向本網(wǎng)絡(luò)中的DHCP服務(wù)器索取IP;
- DHCP 服務(wù)器返回分配給客戶機的IP 以及PXE文件的放置位置(該文件一般是放在一臺TFTP服務(wù)器上) ;
- PXE Client 向本網(wǎng)絡(luò)中的TFTP服務(wù)器索取pxelinux.0 文件;
- PXE Client 取得pxelinux.0 文件后之執(zhí)行該文件;
- 根據(jù)pxelinux.0 的執(zhí)行結(jié)果,通過TFTP服務(wù)器加載內(nèi)核和文件系統(tǒng) ;
-
進入安裝畫面, 此時可以通過選擇HTTP置济、FTP、NFS 方式之一進行安裝;
1.2 什么是Kickstart
Kickstart是一種無人值守的安裝方式锋八。它的工作原理是在安裝過程中記錄典型的需要人工干預(yù)填寫的各種參數(shù),并生成一個名為ks.cfg的
文 件浙于。如果在安裝過程中(不只局限于生成Kickstart安裝文件的機器)出現(xiàn)要填寫參數(shù)的情況,安裝程序首先會去查找Kickstart生成的
文件,如 果找到合適的參數(shù),就采用所找到的參數(shù);如果沒有找到合適的參數(shù),便需要安裝者手工干預(yù)了。所以,如果Kickstart文件涵蓋
了安裝過程中可能出現(xiàn)的 所有需要填寫的參數(shù),那么安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然后就去忙自己的事情挟纱。等安
裝完畢,安裝程序會根據(jù)ks.cfg中的設(shè) 置重啟系統(tǒng),并結(jié)束安裝羞酗。
PXE+Kickstart 無人值守安裝操作系統(tǒng)完整實驗過程如下:
2. 準備工作
準備一臺虛擬機(桌面版因為一會需要用到,沒有最小化也可以但是需要裝桌面的包)
關(guān)閉防火墻和selinux
安裝epel源
準備一個centos7的鏡像
在服務(wù)器中,生成ks.cfg 文件需要system-config-kickstart 工具,而此工具依賴于X Windows,所以我們需要安裝X Windows 和Desktop 并重啟系統(tǒng)
[root@CentOS ~]#yum -y groupinstall "X Window System"
[root@CentOS ~]# yum -y groupinstall "GNOME Desktop"
3紊服、配置HTTP安裝方式
系統(tǒng)的安裝方式可以選擇HTTP檀轨、FTP胸竞、 NFS,我們這里介紹HTTP方式的安裝,其他兩種方式的安裝,大家可以自行百度。
3.1 安裝并配置HTTP
[root@CentOS ~]# yum -y install httpd
[root@CentOS ~]# systemctl start httpd.service
[root@CentOS ~]# systemctl enable httpd.service
3.2裤园、掛載光盤鏡像
[root@centos ~]# mount CentOS-7-x86_64-Minimal-1804.iso /mnt/centos/
3.3撤师、復(fù)制光盤全部內(nèi)容至http 的根目錄/var/www/html/os/下
[root@CentOS ~]# cp -r /mnt/centos* /var/www/html/os
4、配置TFTP
4.1拧揽、安裝tftp-server
[root@CentOS ~]# yum -y install tftp-server
[root@CentOS ~]# yum -y install xinetd
4.2剃盾、啟用tftp 服務(wù),編輯配置文件/etc/xinetd.d/tftp 內(nèi)容,將disable由yes修改為no
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
4.3淤袜、啟動tftp服務(wù)
[root@centos ~]# systemctl restart xinetd
[root@centos ~]# systemctl enable xinetd
[root@centos ~]# systemctl start tftp
[root@centos ~]# systemctl enable tftp
5痒谴、配置支持PXE的啟動程序
5.1、安裝syslinux
[root@centos ~]# yum -y install syslinux
5.2铡羡、復(fù)制pxelinux.0 文件至/var/lib/tftpboot/ 文件夾中
[root@CentOS ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
說明:syslinux是一個功能強大的引導(dǎo)加載程序,而且兼容各種介質(zhì)积蔚。更加確切地說:SYSLINUX是一個小型的Linux操作系統(tǒng),它的目的
是簡化首次安裝Linux的時間,并建立修護或其它特殊用途的啟動盤。
5.3烦周、復(fù)制iso 鏡像中的/image/pxeboot/initrd.img 和vmlinux 至/var/lib/tftpboot/ 文件夾中
[root@CentOS ~]# cp /var/www/html/os/images/pxeboot/initrd.img /var/lib/tftpboot/
[root@CentOS ~]# cp /var/www/html/os/images/pxeboot/vmlinuz /var/lib/tftpboot/
5.4尽爆、復(fù)制iso 鏡像中的/isolinux/*.msg 至/var/lib/tftpboot/ 文件夾中
[root@CentOS ~]# cp /var/www/html/os/isolinux/*.msg /var/lib/tftpboot/
5.5、在/var/lib/tftpboot/ 中新建一個pxelinux.cfg目錄
[root@CentOS ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
5.6读慎、將iso 鏡像中的/isolinux 目錄中的isolinux.cfg復(fù)制到pxelinux.cfg目錄中,同時更改文件名稱為default
編輯配置文件
[root@centos ~]# cp /var/www/html/os/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@CentOS ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
在位置1處添加menu default這一行,在位置2處修改成圖中樣式,在位置3處刪除兩行之間的menu default,最后效果如圖所示,位置1 在63行
除了label linux其余的label可以刪除
label linux
menu label ^Install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.126.133/os inst.ks=http://192.168.126.133/ks.cfg
label check
menu label Test this ^media & install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
6漱贱、配置DHCP
6.1、安裝DHCP服務(wù)
[root@CentOS ~]# yum -y install dhcp
6.2夭委、復(fù)制配置模板文件到DHCP的配置目錄中
[root@CentOS ~]# cp -f /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
6.3幅狮、修改/etc/dhcp/dhcpd.conf 配置文件,內(nèi)容如下:
在第27行
subnet 192.168.216.0 netmask 255.255.255.0 { //服務(wù)端IP網(wǎng)段及掩碼
option routers 192.168.216.1; //網(wǎng)關(guān)
option subnet-mask 255.255.255.0; //子網(wǎng)掩碼
range dynamic-bootp 192.168.216.20 192.168.216.200; //dhcp分發(fā)的地址范圍
default-lease-time 21600; //設(shè)置默認的IP租用期限
max-lease-time 43200; //設(shè)置最大的IP租用期限
next-server 192.168.216.133; //TFTP服務(wù)器地址
filename "pxelinux.0";
//指定引導(dǎo)文件位置,這里是TFTP根目錄下的pxelinux.0
}
6.4株灸、啟動DHCP服務(wù)
[root@CentOS ~]# systemctl start dhcpd.service
[root@CentOS ~]# systemctl enable dhcpd.service
切忌服務(wù)啟動之后一定要看以下dhcp服務(wù)的狀態(tài)!!!
如果有出現(xiàn)關(guān)于虛擬網(wǎng)卡的問題請參考https://blog.csdn.net/csfreebird/article/details/8967653
7崇摄、生成ks.cfg 文件
7.1、安裝Kickstart
[root@CentOS ~]# yum install system-config-kickstart
7.2慌烧、在桌面環(huán)境下配置Kickstart,啟動X Windows 環(huán)境
[root@CentOS ~]# startx
在圖形界面中打開終端,輸入如下命令啟動Kickstart
[root@CentOS ~]# system-config-kickstart
按下列圖形填,第1個
第二個
第三個
第四個
第五個
第六個
然后保存逐抑,保存完之后在文件最后添加三行內(nèi)容
7.3、保存后使用命令檢查語法是否正確
[root@CentOS ~]# ksvalidator ks.cfg
7.4屹蚊、如果語法沒有問題就復(fù)制文件到www根目錄
[root@CentOS ~]# cp ks.cfg /var/www/html/
7.5泵肄、重啟一下httpd服務(wù)
[root@CentOS ~]# systemctl restart httpd.service
8、驗證自動化安裝
啟動之前準備的客戶端虛擬機查看是否可以正常顯示引導(dǎo)菜單淑翼,是否可以正常獲取initrd.img和vmlinuz內(nèi)核文件。