PXE支持系統安裝
PXE支持系統安裝
在企業中經常會用到的一種自動安裝系統的方法就是pxe安裝,他是怎麽實現的呢。
PXE全稱Preboot Excution Environment中文翻譯:預啟動執行環境,是由Intel公司研發基於Client/Server 的網絡模式,支持遠程主機通過網絡從遠端服務器下載映像,並由此支持通過網絡啟動操作系統。PXE可以引導和安裝Windows,linux等多種系統。
要完成這項工作需要多種服務同時完成,例如dhcp,tftp等服務,他的工作原理是:
Client向PXE Server 上的DHCP 發送IP 地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC地址),如果合法則返回Client的IP地址,同時將啟動文件pxelinux.0 的位置信息一並傳送給Client。
Client向PXE Server 上的TFTP發送獲取pxelinux.0請求消息,TFTP接收到消息之後再向Client發送pxelinux.0大小信息,試探Client是否滿意,當TFTP 收到Client發回的同意大小信息之後,正式向Client發送pxelinux.0。
Client 執行接收到的pxelinux.0 文件
Client向TFTP Server 發送針對本機的配置信息文件(在TFTP 服務的
pxelinux.cfg 目錄下),TFTP將配置文件發回Client ,繼而Client 根據配置文件執行後續操作。
Client 向TFTP 發送Linux 內核請求信息,TFTP 接收到消息之後將內核文件
Client 向TFTP 發送根文件請求信息,TFTP 接收到消息之後返回Linux根文件系統
Client啟動Linux內核
Client下載安裝源文件,讀取自動化安裝腳本
首先準備一下:關閉防火墻和selinux,DHCP服務器設置靜態ip
·yum 安裝DHCP,tftp-server,syslinux
因本人在虛擬機上實驗,兩個虛擬機一個centos6一個centos7,7當服務器端6為DHCP服務器,還有一個實驗開機。
·在centos7上需要把http的相關功能啟動。
systemctl enable httpd ---> 開機啟動 systemctl start httpd ---> 啟動服務 mkdir /var/www/html/centos/7 -->創建目錄 mount /dev/sr0 /var/www/html/centos/7 -->掛載光盤在該目錄上
這樣就有了centos7的yum源了。(如果需要安裝centos其他版本掛載其他光盤就好)
接下來要準備kickstart文件(在每個系統家目錄下有anaconda-ks.cfg文件,該文件為世紀路安裝系統的過程可以把它拿過來修改當啟動文件)
cp ~/anaconda-ks.cfg /var/www/html/ks/centos7.cfg -->把該文件拷貝到ks目錄下(ks自己創建的目錄)
跟上面一樣,若需要其他系統啟動添加其他.cfg結尾文件。
·重點我感覺在tftp服務器端配置:
mkdir /var/lib/tftpboot/pxelinux.cfg/ -->tftpboot為tftp默認目錄pxelinux.cfg為自己創建 cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/ cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/ cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
安裝syslinux包時有兩個文件是必要的(雖然都是必要的。。。。)/usr/share/syslinux{pxelinux.0,menu.c32}這兩個文件需要放在tftp默認目錄下(tftpboot下)。
這樣tftp裏面啟動文件也有了initrd.img和vmlinuz文件也有了這樣差不多就齊全了。
差不多是這個樣子:
/var/lib/tftpboot/ ├── initrd.img ├── menu.c32 ├── pxelinux.0 ├── pxelinux.cfg │ └── default └── vmlinuz
·在centos6裏面配置了一個dhcp服務端,在配置文件裏面
subnet 192.168.192.0 netmask 255.255.255.0 { range 192.168.192.100 192.168.192.200; option routers 192.168.37.254;(客戶端自動獲取ip時分配默認網關,下面dns一樣) option domain-name-servers 8.8.8.8 8.8.4.4; option domain-name "magedu.com";(域名) filename "pxelinux.0"; next-server 192.168.100.100; }
subnet後面跟上dhcp地址的網段,range為範圍,其他的都不是很重要,但要pxe功能的實現少不了兩行命令:
filename "pxelinux.0";
next-server 192.168.100.100; 指向下一跳地址(也就是tftp的地址)
這樣就齊全了。可以通過網絡啟動來自動安裝系統了。
(其中ks文件路徑指向需註意,這裏就不涉及了)
本文出自 “mlon客” 博客,請務必保留此出處http://13154101.blog.51cto.com/13144101/1970786
PXE支持系統安裝