一、PXE 簡介
PXE(Pre-boot Execution Environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。
嚴格來說,PXE 並不是一種安裝方式,而是一種引導方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE Client。PXE 協議可以使計算機通過網絡啟動。此協議分為 Client端和 Server 端,而PXE Client則在網卡的 ROM 中。當計算機引導時,BIOS 把 PXE Client 調入內存中執行,然後由 PXE Client 將放置在遠端的文件通過網絡下載到本地運行。運行 PXE 協議需要設置 DHCP 服務器和 TFTP 服務器。DHCP 服務器會給 PXE Client(將要安裝系統的主機)分配一個 IP 地址,由於是給 PXE Client 分配 IP 地址,所以在配置 DHCP 服務器時需要增加相應的 PXE 設置。此外,在 PXE Client 的 ROM 中,已經存在了 TFTP Client,那麼它就可以通過 TFTP 協議到 TFTP Server 上下載所需的文件了。
二、PXE的工作過程:
1. PXE Client 從自己的PXE網卡啟動,向本網絡中的DHCP服務器索取IP(第一次獲取ip),前提是BIOS開啟pxe功能,本地網卡支持pxe功能;
2. DHCP 服務器返回分配給客戶機的IP(第二次) 以及PXE文件的放置位置(該文件一般是放在一台TFTP服務器上) ;
3. PXE Client 向本網絡中的TFTP服務器索取pxelinux.0 文件;
4. PXE Client 取得pxelinux.0 文件後之執行該文件;
5. 根據pxelinux.0 的執行結果,通過TFTP服務器加載內核和文件系統 ;
6. 進入安裝畫面, 此時可以通過選擇HTTP、FTP、NFS 方式之一進行安裝;
詳細工作流程,請參考下面這幅圖:
三、Kickstart 簡介
Kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工干預填寫的各種參數,並生成一個名為ks.cfg的文件。如 果在安裝過程中(不只局限於生成Kickstart安裝文件的機器)出現要填寫參數的情況,安裝程序首先會去查找Kickstart生成的文件,如果找到 合適的參數,就采用所找到的參數;如果沒有找到合適的參數,便需要安裝者手工干預了。所以,如果Kickstart文件涵蓋了安裝過程中可能出現的所有需 要填寫的參數,那麼安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然後就去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中的設置重啟 系統,並結束安裝。
四、執行kickstart安裝步驟
kickstart 安裝可以使用本地光盤,本地硬盤驅動器,或通過 NFS,FTP,HTTP 來執行.要使用 kickstart,必須:1.創建一個kickstart文件.2.創建有kickstart文件的引導介質或者使這個文件在網絡上可用.3.籌備安裝樹.4.開始kickstart安裝.
流程圖如下:
五、實驗准備
物理機:redhat 6.4圖形化
IP:10.0.0.1/16
實驗環境:VMware Workstation 10
系統平台:redhat 6.4(最小化)
網絡模式:NAT模式
DHCP / TFTP / FTP IP:10.0.0.2/16
所有服務器均支持PXE網絡啟動
實現目的:通過配置Kickstart服務器,全自動批量安裝部署Linux系統
軟硬件配置:網卡要支持pxe啟動,操作系統也要支持pxe啟動,另外有ftp服務器用於存儲操作系統的安裝文件,dhcp服務器用於分配ip。
六、具體部署步驟:
1.關閉防火牆和selinux
[root@rhel6~]#yum-yinstalldhcp*tftp*vsftpd*syslinux
2.安裝完畢檢查包組
[root@rhel6/]#rpm-qa|grepdhcp dhcp-4.1.1-34.P1.el6.x86_64 dhcp-common-4.1.1-34.P1.el6.x86_64 [root@rhel6/]#rpm-qa|grepvsftp vsftpd-2.2.2-11.el6.x86_64 [root@rhel6/]#rpm-qa|grepxinetd xinetd-2.3.14-38.el6.x86_64
3.安裝dhcp服務器
DHCP.conf介紹:
ddns-update-styleinterim:這個是動態獲取IP地址啦。必須放在第一項哇。 ignoreclient-updates:服務端與客戶端傳輸相關 Subnet:獲取IP段,要配置正確。 Routers:是路由地址 Range:dhcp分配IP段。 next-server:是tftp地址。 Allowbootingbootp:放行傳輸和協議。
4.具體步驟
[root@rhel6/]#cp-rf/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample/etc/dhcp/dhcpd.conf [root@rhel6/]#vim/etc/dhcp/dhcpd.conf subnet10.0.0.0netmask255.255.0.0{ rangedynamic-bootp10.0.0.10010.0.0.200;--->此部分代表該DHCP服務器支持PXE next-server10.0.0.2; filename"pxelinux.0";-->最基本的啟動文件//指向的是tftp-server的根目錄 optiondomain-name-servers10.0.0.2; optiondomain-name"baidu.com"; #這兩條是DNS,如果沒有DNS就不要寫,環境不支持反解,寫著個安裝起來會很慢 default-lease-time600; max-lease-time7200; }
5.啟動服務
[root@rhel6/]#servicedhcpdstart Startingdhcpd:[OK] [root@rhel6/]#servicedhcpdstatus dhcpd(pid3490)isrunning... [root@rhel6/]#chkconfigdhcpdon
6.檢查syslinux包組
[root@rhel6/]#rpm-qlsyslinux|greppxelinux.0 /usr/share/syslinux/gpxelinux.0 /usr/share/syslinux/pxelinux.0 [root@rhel6/]#
7.安裝並配置pxelinux.cfg文件
[root@rhel6/]#cp/usr/share/syslinux/pxelinux.0/var/lib/tftpboot/ 提供引導菜單所需的文件(從RHEL6光盤上的isolinux目錄中找) [root@rhel6cdrom]#cp-rfisolinux/*/var/lib/tftpboot/ [root@rhel6cdrom]#ls/var/lib/tftpboot/ boot.catgrub.confisolinux.binmemtestsplash.jpgvesamenu.c32 boot.msginitrd.imgisolinux.cfgpxelinux.0TRANS.TBLvmlinuz [root@rhel6cdrom]# [root@rhel6tftpboot]#pwd /var/lib/tftpboot [root@rhel6tftpboot]#mkdirpxelinux.cfg [root@rhel6tftpboot]#cpisolinux.cfgpxelinux.cfg/default [root@rhel6tftpboot]# [root@rhel6tftpboot]#ls boot.catinitrd.imgmemtestsplash.jpgvmlinuz boot.msgisolinux.binpxelinux.0TRANS.TBL grub.confisolinux.cfgpxelinux.cfgvesamenu.c32 [root@rhel6tftpboot]#mkdirrhel6 [root@rhel6tftpboot]#cpvmlinuzinitrd.imgrhel6/ [root@rhel6tftpboot]#lsrhel6/ initrd.imgvmlinuz [root@rhel6tftpboot]# [root@rhel6tftpboot]#vimpxelinux.cfg/default labellinux menulabel^InstallRHEL6menudefault kernelrhel6/vmlinuz#kernel參數指定要啟動的內核。 appendinitrd=rhel6/initrd.img#append指定追加給內核的參數,能夠在grub裡使用的追加 給內核的參數,在這裡也都可以使用。 注:如果是要安裝多版本鏡像源就在tftpboot下每個版本創建一個目錄,並在default下指定不同的位置。
8.配置xinetd服務
TFTP配置文件介紹:
Default:用在於tftp建立傳輸入協議後會去tftpboot裡找文件,啥都找不著之後就會找default。
tftp-server:這個是用來傳送引導文件的,
Initrd.img/vmlinux:看用來安裝前的一些工作。但tftp是用來傳輸這些文件的協議。
9.具體步驟:
[root@rhel6tftpboot]#vi/etc/xinetd.d/tftp servicetftp { disable=no socket_type=dgram protocol=udp wait=yes user=root server=/usr/sbin/in.tftpd server_args=-s/var/lib/tftpboot per_source=11 cps=1002 flags=IPv4 }
10.啟動服務:
[root@rhel6tftpboot]#chkconfigxinetdon [root@rhel6tftpboot]#umount/mnt/cdrom/ [root@rhel6tftpboot]#mount/dev/cdrom/mnt/cdrom mount:blockdevice/dev/sr0iswrite-protected,mountingread-only [root@rhel6tftpboot]#cp-rf/mnt/cdrom/*/var/ftp/pub/ [root@rhel6tftpboot]#servicevsftpdstart Startingvsftpdforvsftpd:[OK] [root@rhel6tftpboot]#chkconfigvsftpdon [root@rhel6tftpboot]# 訪問ftp裡是否有鏡像源,如果有則嘗試安裝,如果能安到安裝軟件包界面,則pxe安裝成功。
11.網絡結構:
如圖為網絡安裝環境的一個原理示意,安裝環境由一個局域網和連接到該局域網的啟動服務器、安裝服務器和待安裝客戶端,其中啟動服務器和安裝服務器可以部署在同一台物理機上。
服務相關作用:
Dhcpd:分發IP地址。
Tftpd:分發啟動文件安裝。
vsftpd:分發系統文件安裝。
1.安裝kickstart
1.在10.0.0.1服務器上創建kickstart文件
[root@rhel6~]#yum-yinstallsystem-config-kickstart 以下選項必選: 基本配置密碼重新引導系統文本安裝 安裝方法ftp 分區清除主引導記錄 網絡配置添加 禁用防火牆
2.配置最小化安裝文件內容
[root@localhost~]#vim/root/ks.cfg找到packages部分添加@core,最小化安裝 %packages @core %end reboot
3.將做好的ks.cfg文件放到pxe服務器內
[root@localhost~]#scp/root/[email protected]:/var/ftp/pub [email protected]'spassword: ks.cfg100%9751.0KB/s00:00 [root@localhost~]# [root@rhel6/]#vim/var/lib/tftpboot/pxelinux.cfg/default labellinux menulabel^InstallRHEL6menudefault kernelrhel6/vmlinuzks=#告訴系統,從哪裡獲取ks.cfg文件 appendinitrd=rhel6/initrd.img
kickstart到此安裝完畢。
注:如果安裝失敗,則是服務沒起或是生成kickstart有問題,需要重新生成,到此本次實驗完滿完成。
附:cobbler
在pxe和kickstart的基礎上還可以增加cobbler功能,用圖形化操作管理鏡像源,但是圖形化的支持不是很完善,但是這款軟件的命令行很完善,在這裡再次簡單介紹一下大概的步驟(不涉及安裝,因為很簡單)。
網絡安裝服務器套件 Cobbler(補鞋匠)從前,我們一直在做裝機民工這份很有前途的職業。自打若干年前 Red Hat 推出了 Kickstart,此後我們頓覺身價倍增。不再需要刻了光盤一台一台地安裝 Linux,只要搞定 PXE、DHCP、 TFTP,還有那滿屏眼花缭亂不知所雲的 Kickstart 腳本,我們就可以像哈裡波特一樣,輕點魔棒,瞬間安裝上百台服務器。這一堆花裡胡哨的東西可不是一般人都能整明白的,沒有大專以上學歷,通不過英語四級, 根本別想玩轉。總而言之,這是一份多麼有前途,多麼有技術含量的工作啊。很不幸,Red Hat 最新(Cobbler項目最初在2008年左右發布)發布了網絡安裝服務器套件 Cobbler(補鞋匠),它已將 Linux 網絡安裝的技術門檻,從大專以上文化水平,成功降低到初中以下,連補鞋匠都能學會。對於我們這些在裝機領域浸淫多年,經驗豐富,老骥伏枥,志在千裡的民工兄弟們來說,不啻為一個晴天霹雳。
編輯
第一步 下載安裝
去fedora.redhat 網站下載
第二步 配置文件
1. 配置tftp-server
2. 配置cobber3. 配置DHCP模版文件
4. 修改rsync5. 執行檢查
6. 修改密碼7. 生成system-config-kickstart
8. 當 cobbler check 檢測基本沒問題後9.修改啟動文件路徑
10. 導入系統安裝DVD ISO中的文件
第三步 客戶端啟動