本文由秀依林楓提供友情贊助,首發(fā)于爛泥行天下。
在本次實驗進行之前,首先我們要把公司的網(wǎng)絡(luò)環(huán)境進行介紹。
注意這個網(wǎng)絡(luò)拓撲圖,也是生產(chǎn)環(huán)境的一個實例。同時服務(wù)器192.168.1.214已關(guān)閉iptables、Selinux。
看如下拓撲圖:
kickstart完全配置后的網(wǎng)絡(luò)拓撲如下:
目前路由器使用的是軟路由ROS,因為centos的無人值守安裝需要DHCP服務(wù)器的配合使用,并且還需要對DHCP服務(wù)進行特殊配置。
而一般路由器根本就不支持此特殊功能,所以我們需要關(guān)閉路由器ROS的DHCP功能。只讓路由器ROS當(dāng)作網(wǎng)關(guān)使用,當(dāng)然ROS的其他功能,包括ROS的路由策略、ARP地址綁定、限速等等都可以正常使用。
關(guān)閉ROS的DHCP功能,IP—DHCP server,如下:
服務(wù)器192.168.1.11安裝的NFS服務(wù),所有的鏡像文件都是存在該服務(wù)器上。好了接下來,我們開始一步一步的介紹相關(guān)的工作。
要想無人值守安裝Centos,我們需要以下幾個步驟,進行操作:
1、 理解PXE原理
2、 配置NFS服務(wù)器,用于存放系統(tǒng)安裝時所需要的文件
3、 配置DHCP服務(wù)器,用于給客戶端提供IP地址及其它信息
4、 配置TFTP服務(wù)器,用于提供客戶端PXE引導(dǎo)所必須的文件
5、 配置kickstart自動應(yīng)答安裝文件
6、 使用PXE功能引導(dǎo)客戶機
一、理解PXE原理
kickstart怎么和PXE有聯(lián)系?PXE是什么東西?
kickstart無人值守安裝centos,也就是通過網(wǎng)絡(luò)安裝centos系統(tǒng),而且在安裝的過程不需要人工干預(yù)系統(tǒng)的安裝。系統(tǒng)會按照你配置好的步驟進行安裝,而網(wǎng)絡(luò)安裝centos系統(tǒng)必須需要網(wǎng)卡的支持。
網(wǎng)卡要想去下載遠程服務(wù)器上的相關(guān)系統(tǒng)鏡像文件,必須支持PXE。
PXE(PRe-boot Execution Environment,預(yù)啟動執(zhí)行環(huán)境)是由Intel設(shè)計的協(xié)議,它可以使計算機通過網(wǎng)絡(luò)啟動。該協(xié)議分為client和server兩端,PXE client在網(wǎng)卡的ROM中,當(dāng)計算機引導(dǎo)時,BIOS把PXE client調(diào)入內(nèi)存執(zhí)行,并顯示出命令菜單,經(jīng)用戶選擇后,PXE client將放置在遠端的操作系統(tǒng)通過網(wǎng)絡(luò)下載到本地運行。
既然是通過網(wǎng)絡(luò)傳輸,就需要IP地址。也就是說在其啟動過程中,客戶端請求服務(wù)器分配IP地址之后,PXE Client使用TFTP Client 通過TFT協(xié)議下載啟動安裝程序所需的文件。
簡單地說PXE網(wǎng)絡(luò)安裝,客戶機通過支持PXE的網(wǎng)卡向網(wǎng)絡(luò)中發(fā)送請求DHCP信息的廣播請求IP地址等信息,DHCP服務(wù)器給客戶端提供IP地址和其它信息(TFTP服務(wù)器、啟動文件等),之后請求并下載安裝需要的文件。在這個過程中需要一臺服務(wù)器來提供啟動文件、安裝文件、以及安裝過程中的自動應(yīng)答文件等。
下圖中介紹了Linux中自動安裝系統(tǒng)的詳細工作過程:
第一步:PXE Client向DHCP發(fā)送請求
首先,將支持PXE的網(wǎng)絡(luò)接口卡(NIC)的客戶端的BIOS設(shè)置成為網(wǎng)絡(luò)啟動,選擇基本所有的網(wǎng)卡都支持網(wǎng)絡(luò)啟動。通過PXE BootROM(自啟動芯片)會以UDP方式發(fā)送一個廣播請求,向網(wǎng)絡(luò)中的DHCP服務(wù)器索取IP地址等信息。
第二步:DHCP服務(wù)器提供信息
DHCP服務(wù)器收到客戶端的請求,驗證是否來至合法的PXE Client的請求,驗證通過它將給客戶端一個“提供”響應(yīng),這個“提供”響應(yīng)中包含了為客戶端分配的IP地址、pxelinux啟動程序(TFTP)位置,以及配置文件所在位置。
第三步:PXE客戶端請求下載啟動文件
客戶端收到服務(wù)器的“回應(yīng)”后,會回應(yīng)一個幀,以請求傳送啟動所需文件。這些啟動文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
第四步:Boot Server響應(yīng)客戶端請求并傳送文件
當(dāng)服務(wù)器收到客戶端的請求后,他們之間之后將有更多的信息在客戶端與服務(wù)器之間作應(yīng)答, 用以決定啟動參數(shù)。BootROM 由 TFTP 通訊協(xié)議從Boot Server下載啟動安裝程序所必須的文件(pxelinux.0、pxelinux.cfg/default)。default文件下載完成后,會根據(jù)該文件中定義的引導(dǎo)順序,啟動Linux安裝程序的引導(dǎo)內(nèi)核。
第五步:請求下載自動應(yīng)答文件
客戶端通過pxelinux.cfg/default文件成功的引導(dǎo)Linux安裝內(nèi)核后,安裝程序首先必須確定你通過什么安裝介質(zhì)來安裝linux。如果是通過網(wǎng)絡(luò)安裝(NFS, FTP, HTTP),則會在這個時候初始化網(wǎng)絡(luò),并定位安裝源位置?;蛟S你會說,剛才PXE不是已經(jīng)獲取過IP地址了嗎?為什么現(xiàn)在還需要一次?這是由于PXE獲取的是安裝用的內(nèi)核以及安裝程序等,而安裝程序要獲取的是安裝系統(tǒng)所需的二進制包以及配置文件。由于它們需要的內(nèi)容不同造成PXE模塊和安裝程序是相對獨立的,PXE的網(wǎng)絡(luò)配置并不能傳遞給安裝程序。從而進行兩次獲取IP地址過程。
接著會讀取該文件中指定的自動應(yīng)答文件ks.cfg所在位置,根據(jù)該位置請求下載該文件。
第六步:客戶端安裝操作系統(tǒng)
將ks.cfg文件下載回來后,通過該文件找到OS Server,并按照該文件的配置請求下載安裝過程需要的軟件包。
OS Server和客戶端建立連接后,將開始傳輸軟件包,客戶端將開始安裝操作系統(tǒng)。安裝完成后,將提示重新引導(dǎo)計算機。這個時候注意,在重新引導(dǎo)的過程中一定要將BIOS修改回從硬盤啟動,不然的話又會重復(fù)的自動安裝操作系統(tǒng)。
ok以上就是PXE網(wǎng)絡(luò)啟動的整個過程,下面我們開始正式的配置。
二、配置NFS服務(wù)器
配置NFS服務(wù)器,有關(guān)NFS服務(wù)器的搭建與配置可以參考這篇文章《爛泥:NFS存儲與VSphere配合使用》。我們現(xiàn)在把系統(tǒng)安裝時,所需要的文件全部復(fù)制到服務(wù)器192.168.1.11的/iso目錄下。
系統(tǒng)安裝的文件,我們可以從鏡像文件中得到。
把本地的鏡像文件進行掛載,如下:
mount –o loop /home/datasoft/soft/iso/CentOS-6.5-x86_64-bin-DVD1.iso /iso1
把/ios1目錄下所有的內(nèi)容全部復(fù)制到/iso目錄下,如下:
cp –rv /iso1/* ./
把/iso目錄通過NFS方式映射出去,如下:
該鏡像文件的結(jié)構(gòu)如下:
* isolinux目錄存放光盤啟動時的安裝界面信息
* images目錄包括了必要的啟動映像文件,最重要的是引導(dǎo)第二階段安裝需要用到的鏡像文件install.img,anaconda程序就在這個鏡像文件中
* Packages目錄存放安裝軟件包及信息
* EFI目錄:用于64位的基于EFI的系統(tǒng)引導(dǎo)。其中BOOT目錄下BOOTX64.conf為grub的配置文件,用于顯示引導(dǎo)菜單。
*TRANS.TBL文件:記錄當(dāng)前目錄的列表,用mkisofs的-T參數(shù)重新生成,主要是為了長文件名稱。
NFS服務(wù)配置好后,我們現(xiàn)在開始配置DHCP服務(wù)。
三、配置DHCP服務(wù)器
有關(guān)DHCP服務(wù)器的搭建與配置,可以參考這篇文章《爛泥:CentOS安裝及配置DHCP服務(wù)器》。
我們現(xiàn)在需要做的是在DHCP服務(wù)的配置中添加TFTP服務(wù)器的地址,以及客戶端所要獲取到的配置文件名稱。如下:
vi /etc/dhcp/dhcpd.conf
next-server 192.168.1.214;
filename "pxelinux.0";
四、配置TFTP服務(wù)器
此步驟牽涉的內(nèi)容比較多,請耐心觀看。
4.1 復(fù)制pxelinux.0文件
PXE啟動映像文件由syslinux提供,我們只要安裝syslinux,就會生成一個pxelinux.0文件,只需要將 pxelinux.0 這個文件復(fù)制到TFTP根目錄即可。
pxelinux.0文件的作用是加載系統(tǒng)引導(dǎo)文件。如下:
yum –y install syslinux
查看syslinux安裝后,所生成的文檔,如下:
rpm -ql syslinux |grep pxe*
查找syslinux生成的pxelinux.0文件位置,如下:
find / -name pxelinux.0
或者直接使用locate pxe進行搜索也可以,該命令的意思是查找以pxe開頭的所有文件。如下:
locate pxe
查看pxelinux.0文件的內(nèi)容,可以看到全部是亂碼,如下:
more /usr/share/syslinux/pxelinux.0
要把pxelinux.0復(fù)制到tftp的根目錄下,要先安裝和配置TFTP服務(wù)器,有關(guān)TFTP服務(wù)器的安裝及配置可參考這篇文章《爛泥:CentOS安裝及配置TFTP服務(wù)器》。在此我們的TFTP根目錄還是使用默認,為/var/lib/tftpboot/。其上傳和下載的權(quán)限也已經(jīng)開啟。如下:
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
4.2 復(fù)制boot.msg、splash.jpg、vesamenu.c32文件
以上我們把pxelinux.0文件已經(jīng)復(fù)制到TFTP的根目錄下,下面我們開始復(fù)制有關(guān)系統(tǒng)內(nèi)核和系統(tǒng)安裝時的相關(guān)文件。這些文件我們可以通過centos鏡像網(wǎng)站進行下載,比如國內(nèi)的阿里云網(wǎng)站,截圖演示如下:
也可以通過把本地的鏡像文件進行掛載使用,本實驗我們是先把本地的鏡像文件進行掛載,然后通過NFS的方式把該鏡像中的文件復(fù)制出來。如下:
mount -t nfs 192.168.1.11:/iso /iso
打開/iso/isolinux目錄,isolinux目錄中主要是存放光盤啟動時的安裝界面信息,在這里面有幾個文件是我們需要的。
boot.msg引導(dǎo)模塊的菜單選項
splash.jpg 啟動時的背景文件
vesamenu.c32用于設(shè)置菜單模塊
ll -h /iso/isolinux/
把上述文件復(fù)制到TFTP服務(wù)器的根目錄,如下:
cp -rv /iso/isolinux/{boot.msg,splash.jpg,vesamenu.c32} /var/lib/tftpboot/
ll -h /var/lib/tftpboot/
4.3 復(fù)制vmlinuz、initrd.img文件
下面復(fù)制centos的安裝引導(dǎo)文件vmlinuz、initrd.img。
vmlinuz 是可引導(dǎo)的、壓縮的內(nèi)核文件
initrd.img在系統(tǒng)引導(dǎo)過程中掛載的一個臨時根文件系統(tǒng),用來支持兩階段的引導(dǎo)過程的文件系統(tǒng)
以上兩個文件存放在/iso/images/pxeboot目錄下:如下:
ll –h /iso/images/pxeboot
cp -rv /iso/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
ll -h /var/lib/tftpboot/
以上文件復(fù)制完畢后,我們來創(chuàng)建pxelinux.cfg目錄及default文件。
4.4 創(chuàng)建pxelinux.cfg目錄及default文件
pxelinux.cfg目錄主要是用來存放default文件。default文件主要是用來系統(tǒng)正常引導(dǎo)后的相關(guān)配置。如下:
mkdir /var/lib/tftpboot/pxelinux.cfg
因為default文件的內(nèi)容格式比較復(fù)雜,所以在此我們不建議手工創(chuàng)建。centos鏡像文件中已經(jīng)為我們提供了一個模版,該模版是/iso/isolinux/isolinux.cfg,如下:
ll -h /iso/isolinux/
復(fù)制isolinux.cfg并重命名為default,如下:
cp /iso/isolinux/isolinux.cfg /var/lib/tftpboot/pexlinux.cfg/default
4.5 修改default文件內(nèi)容
在修改default文件內(nèi)容之前,先查看其文件的內(nèi)容,如下:
more /var/lib/tftpboot/pexlinux.cfg/default
通過上圖我們可以看到,default文件的內(nèi)容非常多。其實有很多是我們不需要的。修改該配置文件,只保留如下內(nèi)容:
vi /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
#prompt 1
timeout 60
display boot.msg
menu background splash.jpg
menu title ilanni install CentOS 6.5!
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.1.214/pub/ks.cfg
其中我們只需要注意ks=ftp://192.168.1.214/pub/ks.cfg這行,這行是需要kickstart生成的配置文件,而是使用的ftp方式訪問該文件。在這我們先把該文件的名稱填寫進來。
下面我們開始安裝及配置kickstart自動應(yīng)答文件。
五、配置kickstart自動應(yīng)答安裝文件
5.1 安裝kickstart軟件包
首先要安裝kickstart軟件包,使用如下命令:
yum -y install system-config-kickstart
kickstart安裝完畢后,你會在/root/目錄下生成anaconda-ks.cfg文件。該文件就是kickstart自動應(yīng)答文件的一個模版,如下:
find / -name an*.cfg
查看該配置文件,如下:
more /root/anaconda-ks.cfg
如果你對這個配置文件比較熟悉的話,你可以直接把該文件復(fù)制一份到/var/ftp/pub目錄下,并重命名為ks.cfg。修改保存后,就可以去啟動客戶端。
5.2 生成kickstart自動應(yīng)答文件
但是對于不熟悉該自動應(yīng)答配置文件的童鞋來說,還是通過圖形界面方式來生成kickstart自動應(yīng)答文件吧。
注意圖形界面生成kickstart自動應(yīng)答文件,一定要再kickstart服務(wù)器上安裝圖形界面。
在終端下輸入system-config-kickstart,系統(tǒng)就會彈出kickstart的配置界面,如下:
注意此命令可以在普通用戶下使用,也可以通過centos圖形界面的菜單打開,如下:
下面我們開始配置kickstart,如下:
該界面主要是配置語言、鍵盤類型、時區(qū)、root用戶的密碼
該界面主要是配置是通過何種方式安裝系統(tǒng)的,在此我們選擇的是NFS方式。這個我們也在前文提到過。
該界面主要是詢問是否安裝新的boot loader和MBR。
該界面主要是配置系統(tǒng)的分區(qū),注意圖形界面下不能進行LVM的配置。如果要進行LVM配置的話,可以通過修改kickstart的配置文件來達到目的。這個我會在以后的文章中進行介紹。
該界面主要是配置客戶端的網(wǎng)卡名稱以及該網(wǎng)卡的IP地址形式,我們在此為網(wǎng)卡命名為eth0,并且配置該網(wǎng)卡的獲取IP地址形式是DHCP方式的。
該界面主要是配置防火墻和Selinux,默認在此我們禁用。
該界面配置是否顯示配置。
該界面主要配置需要安裝的軟件包。在此我要提醒下,如果你的centos鏡像使用的是mini版的話,在安裝包選擇base后,系統(tǒng)安裝時會報錯。
但是centos鏡像文件使用的是DVD版的話,安裝包選擇base正常安裝。
該界面配置系統(tǒng)安裝前需要執(zhí)行的腳本。
該界面配置系統(tǒng)安裝后需要執(zhí)行的腳本。
以上配置完畢后,我們就可以保存此配置文件。點擊“file”-“save”,如下:
該配置文件默認會保存到,用戶的home目錄下,如下:
查看ks.cfg自動應(yīng)答文件的內(nèi)容,如下:
通過上圖我們可以看到,此配置文件的內(nèi)容和我們剛剛通過圖形界面配置意義對應(yīng)的。
5.3 安裝vsftp服務(wù)
在前文,我們提到過PXE的default文件的ks文件路徑是存放在/var/ftp/pub目錄下,如下:
這個是通過FTP進行連接的。那么我們就要按照vsftpd,如下:
yum –y install vsftpd
復(fù)制kickstart的自動應(yīng)答文件ks.cfg,到ftp的公共目錄下并修改其相應(yīng)的用戶組,如下:
cp /root/ks.cfg /var/ftp/pub/
ll -h /var/ftp/pub/
chown -R nobody:nobody /var/ftp/pub/
六、使用PXE功能引導(dǎo)客戶機
上述配置完畢后,我們就可以啟動客戶端來進行centos的網(wǎng)絡(luò)安裝,在客戶端的BIOS中需要配置PXE啟動。
配置完畢后,我們就可以啟動客戶端。如下:
通過上圖,我們可以知道客戶端已通過DHCP服務(wù)器獲取到IP地址。
通過上圖我們可以看出系統(tǒng)已經(jīng)成功下載內(nèi)核文件,并加載成功。
開始安裝系統(tǒng)。
新聞熱點
疑難解答
圖片精選