PXE是什麼?
PXE(preboot execute environment,預啓動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啓動操作系統,在啓動過程中,終端要求服務器分配IP地址,再用tftp(trivial file transfer protocol)或mtftpmulticast trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成終端(客戶?)基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。PXE可以引導多種操作系統。如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。
什麼情形使用PXE系統安裝?
在實際工作中,我們經常會遇到這樣的情況:想要安裝Linux但是計算機沒有光驅,或者是有大批量的計算機需要同時安裝Linux,如果通過光驅的方式一個個安裝,不僅效率低,也不利於維護。這是時候你就需要PXE的強大功能了。
硬件支持:
網卡必須可通過網絡引導啓動, 具體實現的是可獲取到來自dhcp服務器上分配的ip地址, 並且可充當tftp服務端的客戶端,去加載內核等文件。 早期網卡可能默認不支持這種功能, 但是現在幾乎所有的網卡都支持這個功能。
需要搭建服務:
1>. dhcp服務器
2>. tftp-server 服務器
3>. ftp或則httpd服務 (用來提供yum倉庫、kickstart文件)
下面通過pxe結合kickstart文件實現真正的全自動化安裝centos7操作系統
實驗拓撲圖:
注意: dhcp、tftp、ftp(httpd)服務器可以放在不同服務器之上,這裏簡化。
流程圖:
實驗步驟:
搭建dhcp服務器:
1>. 修改配置文件/etc/dhcp/dhcpd.conf
2>. 啓動dhcp服務器
systemctl start dhcpd
注意: dhcp具體細節可查看博客:http://9280078.blog.51cto.com/9270078/1870055
搭建tftp-server服務器。
1>. 安裝程序包:
yum install -y tftp-server
2>. tftp-server生成的配置文件。
/etc/xinetd.d/tftp /usr/lib/systemd/system/tftp.service /usr/lib/systemd/system/tftp.socket /usr/sbin/in.tftpd /usr/share/doc/tftp-server-5.2 /usr/share/doc/tftp-server-5.2/CHANGES /usr/share/doc/tftp-server-5.2/README /usr/share/doc/tftp-server-5.2/README.security /usr/share/man/man8/in.tftpd.8.gz /usr/share/man/man8/tftpd.8.gz /var/lib/tftpboot
3>. 提供特定的內核、initrd.img、bootloader等文件。
提供bootloader文件: pxelinux.0 chain.c32 mboot.c32 memdisk menu.c32
以上這些文件由syslinux程序包提供。
yum install -y syslinux , 則可生成以上文件。
vmlinuz (內核文件) 、initrd.img則由光盤目錄下的images/pxeboot/目錄下的文件提供。
[root@node1 tftpboot]# ls /var/lib/tftpboot/ chain.c32 initrd.img mboot.c32 memdisk menu.c32 pxelinux.0 pxelinux.cfg vmlinuz
4>. 在/var/lib/tftpboot/目錄下, 創建pxelinux.cfg目錄
mkdir /var/lib/tftpboot/pxelinux.cfg vim /var/lib/tftpboot/pxelinux.cfg/default
5>. 啓動tfpd.server服務
]# systemctl start tftp.socket
搭建ftp服務器, 提供安裝源(類似於光盤)、kickstart文件。
1>. 搭建ftp-server服務器。
]# yum install -y vsftpd
2>. 將光盤文件掛載至/var/ftp/pub/Centos7目錄下。
mount /dev/cdrom /var/ftp/pub/Centos7/
3>. 將kickstart文件複製到/var/ftp/pub/目錄下。
cp centos7.cfg /var/ftp/pub/
4>. 啓動ftp服務器。
]# systemctl start vsftpd
kickstart文件如何生成?
在圖形化界面下安裝system-config-kickstart工具包, 執行system-config-kickstart命令打開圖形化配置界面。
如下:
客戶端測試;(node2節點)
1>. 選擇網絡引導.
2>.
3>. 後面測試結果正確,可實現自動化安裝。