1、PXE 簡介
linux
PXE(Pre-boot Execution Environment,預啓動執行環境)是由Intel公司開發的最新技術,工做於Client/Server的網絡模式,支持工做站經過網絡從遠端服 務器下載映像,並由此支持經過網絡啓動操做系統,在啓動過程當中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操做系統。vim
嚴格來講,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 上下載所需的文件了。bash
2、PXE的工做過程:服務器
1. PXE Client 從本身的PXE網卡啓動,向本網絡中的DHCP服務器索取IP(第一次獲取ip),前提是BIOS開啓pxe功能,本地網卡支持pxe功能;網絡
2. DHCP 服務器返回分配給客戶機的IP(第二次) 以及PXE文件的放置位置(該文件通常是放在一臺TFTP服務器上) ;app
3. PXE Client 向本網絡中的TFTP服務器索取pxelinux.0 文件;dom
4. PXE Client 取得pxelinux.0 文件後之執行該文件;socket
5. 根據pxelinux.0 的執行結果,經過TFTP服務器加載內核和文件系統 ;ide
6. 進入安裝畫面, 此時能夠經過選擇HTTP、FTP、NFS 方式之一進行安裝;網站
詳細工做流程,請參考下面這幅圖:
3、Kickstart 簡介
Kickstart是一種無人值守的安裝方式。它的工做原理是在安裝過程當中記錄典型的須要人工干預填寫的各類參數,並生成一個名爲ks.cfg的文件。如 果在安裝過程當中(不僅侷限於生成Kickstart安裝文件的機器)出現要填寫參數的狀況,安裝程序首先會去查找Kickstart生成的文件,若是找到 合適的參數,就採用所找到的參數;若是沒有找到合適的參數,便須要安裝者手工干預了。因此,若是Kickstart文件涵蓋了安裝過程當中可能出現的全部需 要填寫的參數,那麼安裝者徹底能夠只告訴安裝程序從何處取ks.cfg文件,而後就去忙本身的事情。等安裝完畢,安裝程序會根據ks.cfg中的設置重啓 系統,並結束安裝。
4、執行kickstart安裝步驟
kickstart 安裝可使用本地光盤,本地硬盤驅動器,或經過 NFS,FTP,HTTP 來執行.
要使用 kickstart,必須:
1.建立一個kickstart文件.
2.建立有kickstart文件的引導介質或者使這個文件在網絡上可用.
3.籌備安裝樹.
4.開始kickstart安裝.
流程圖以下:
5、實驗準備
物理機: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。
6、具體部署步驟:
1.關閉防火牆和selinux
[root@rhel6 ~]# yum -y install dhcp* tftp* vsftpd* syslinux
2.安裝完畢檢查包組
[root@rhel6 /]# rpm -qa | grep dhcp dhcp-4.1.1-34.P1.el6.x86_64 dhcp-common-4.1.1-34.P1.el6.x86_64 [root@rhel6 /]# rpm -qa | grep vsftp vsftpd-2.2.2-11.el6.x86_64 [root@rhel6 /]# rpm -qa | grep xinetd xinetd-2.3.14-38.el6.x86_64
3.安裝dhcp服務器
DHCP.conf介紹:
ddns-update-style interim:這個是動態獲取IP地址啦。必須放在第一項哇。 ignore client-updates:服務端與客戶端傳輸相關 Subnet:獲取IP段,要配置正確。 Routers:是路由地址 Range:dhcp分配IP段。 next-server:是tftp地址。 Allow booting bootp:放行傳輸和協議。
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 subnet 10.0.0.0 netmask 255.255.0.0 { range dynamic-bootp 10.0.0.100 10.0.0.200; --->此部分表明該DHCP服務器支持PXE next-server 10.0.0.2; filename "pxelinux.0"; -->最基本的啓動文件 //指向的是tftp-server的根目錄 option domain-name-servers 10.0.0.2; option domain-name "baidu.com"; #這兩條是DNS,若是沒有DNS就不要寫,環境不支持反解,寫着個安裝起來會很慢 default-lease-time 600; max-lease-time 7200; }
5.啓動服務
[root@rhel6 /]# service dhcpd start Starting dhcpd: [ OK ] [root@rhel6 /]# service dhcpd status dhcpd (pid 3490) is running... [root@rhel6 /]# chkconfig dhcpd on
6.檢查syslinux包組
[root@rhel6 /]# rpm -ql syslinux| grep pxelinux.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@rhel6 cdrom]# cp -rf isolinux/* /var/lib/tftpboot/ [root@rhel6 cdrom]# ls /var/lib/tftpboot/ boot.cat grub.conf isolinux.bin memtest splash.jpg vesamenu.c32 boot.msg initrd.img isolinux.cfg pxelinux.0 TRANS.TBL vmlinuz [root@rhel6 cdrom]# [root@rhel6 tftpboot]# pwd /var/lib/tftpboot [root@rhel6 tftpboot]# mkdir pxelinux.cfg [root@rhel6 tftpboot]# cp isolinux.cfg pxelinux.cfg/default [root@rhel6 tftpboot]# [root@rhel6 tftpboot]# ls boot.cat initrd.img memtest splash.jpg vmlinuz boot.msg isolinux.bin pxelinux.0 TRANS.TBL grub.conf isolinux.cfg pxelinux.cfg vesamenu.c32 [root@rhel6 tftpboot]# mkdir rhel6 [root@rhel6 tftpboot]# cp vmlinuz initrd.img rhel6/ [root@rhel6 tftpboot]# ls rhel6/ initrd.img vmlinuz [root@rhel6 tftpboot]# [root@rhel6 tftpboot]# vim pxelinux.cfg/default label linux menu label ^Install RHEL6 <manual> menu default kernel rhel6/vmlinuz #kernel 參數指定要啓動的內核。 append initrd=rhel6/initrd.img #append 指定追加給內核的參數,可以在grub 裏使用的追加 給內核的參數,在這裏也均可以使用。 注:若是是要安裝多版本鏡像源就在tftpboot下每一個版本建立一個目錄,並在default下指定不一樣的位置。
8.配置xinetd服務
TFTP配置文件介紹:
Default:用在於tftp創建傳輸入協議後會去tftpboot裏找文件,啥都找不着以後就會找default。
tftp-server :這個是用來傳送引導文件的,
Initrd.img/vmlinux: 看用來安裝前的一些工做。但tftp是用來傳輸這些文件的協議。
9.具體步驟:
[root@rhel6 tftpboot]# vi /etc/xinetd.d/tftp service tftp { 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 = 100 2 flags = IPv4 }
10.啓動服務:
[root@rhel6 tftpboot]# chkconfig xinetd on [root@rhel6 tftpboot]# umount /mnt/cdrom/ [root@rhel6 tftpboot]# mount /dev/cdrom /mnt/cdrom mount: block device /dev/sr0 is write-protected, mounting read-only [root@rhel6 tftpboot]# cp -rf /mnt/cdrom/* /var/ftp/pub/ [root@rhel6 tftpboot]# service vsftpd start Starting vsftpd for vsftpd: [ OK ] [root@rhel6 tftpboot]# chkconfig vsftpd on [root@rhel6 tftpboot]# 訪問ftp裏是否有鏡像源,若是有則嘗試安裝,若是能安到安裝軟件包界面,則pxe安裝成功。
11.網絡結構:
如圖爲網絡安裝環境的一個原理示意,安裝環境由一個局域網和鏈接到該局域網的啓動服務器、安裝服務器和待安裝客戶端,其中啓動服務器和安裝服務器能夠部署在同一臺物理機上。
服務相關做用:
Dhcpd: 分發IP地址。
Tftpd: 分發啓動文件安裝。
vsftpd:分發系統文件安裝。
1.安裝kickstart
1.在10.0.0.1服務器上建立kickstart文件
[root@rhel6 ~]# yum -y install system-config-kickstart 如下選項必選: 基本配置密碼 從新引導系統 文本安裝 安裝方法 ftp 分區 清除主引導記錄 網絡配置添加 禁用防火牆
2.配置最小化安裝文件內容
[root@localhost ~]# vim /root/ks.cfg 找到packages部分添加@core,最小化安裝 %packages @core %end reboot
3.將作好的ks.cfg文件放到pxe服務器內
[root@localhost ~]# scp /root/ks.cfg root@10.0.0.2:/var/ftp/pub root@10.0.0.2's password: ks.cfg 100% 975 1.0KB/s 00:00 [root@localhost ~]# [root@rhel6 /]# vim /var/lib/tftpboot/pxelinux.cfg/default label linux menu label ^Install RHEL6 <manual> menu default kernel rhel6/vmlinuz ks= #告訴系統,從哪裏獲取ks.cfg文件 append initrd=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. 配置cobber
3. 配置DHCP模版文件
4. 修改rsync
5. 執行檢查
6. 修改密碼
7. 生成system-config-kickstart
8. 當 cobbler check 檢測基本沒問題後
9.修改啓動文件路徑
10. 導入系統安裝DVD ISO中的文件
第三步 客戶端啓動