天天看點

kickstart無人值守安裝CentOS6.5

在本次實驗進行之前,首先我們要把公司的網絡環境進行介紹。

<b>注意這個網絡拓撲圖,也是生産環境的一個執行個體。同時伺服器</b><b>192.168.1.214</b><b>已關閉</b><b>iptables</b><b>、</b><b>selinux</b><b>。</b>

看如下拓撲圖:

kickstart無人值守安裝CentOS6.5

kickstart完全配置後的網絡拓撲如下:

kickstart無人值守安裝CentOS6.5

目前路由器使用的是軟路由ros,因為centos的無人值守安裝需要dhcp伺服器的配合使用,并且還需要對dhcp服務進行特殊配置。

而一般路由器根本就不支援此特殊功能,是以我們需要關閉路由器ros的dhcp功能。隻讓路由器ros當作網關使用,當然ros的其他功能,包括ros的路由政策、arp位址綁定、限速等等都可以正常使用。

關閉ros的dhcp功能,ip—dhcp server,如下:

kickstart無人值守安裝CentOS6.5

伺服器192.168.1.11安裝的nfs服務,所有的鏡像檔案都是存在該伺服器上。好了接下來,我們開始一步一步的介紹相關的工作。

要想無人值守安裝centos,我們需要以下幾個步驟,進行操作:

1、 了解pxe原理

2、 配置nfs伺服器,用于存放系統安裝時所需要的檔案

3、 配置dhcp伺服器,用于給用戶端提供ip位址及其它資訊

4、 配置tftp伺服器,用于提供用戶端pxe引導所必須的檔案

5、 配置kickstart自動應答安裝檔案

6、 使用pxe功能引導客戶機

<b>一、了解</b><b>pxe</b><b>原理</b><b></b>

kickstart怎麼和pxe有聯系?pxe是什麼東西?

kickstart無人值守安裝centos,也就是通過網絡安裝centos系統,而且在安裝的過程不需要人工幹預系統的安裝。系統會按照你配置好的步驟進行安裝,而網絡安裝centos系統必須需要網卡的支援。

網卡要想去下載下傳遠端伺服器上的相關系統鏡像檔案,必須支援pxe。

pxe(pre-boot execution environment,預啟動執行環境)是由intel設計的協定,它可以使計算機通過網絡啟動。該協定分為client和server兩端,pxe client在網卡的rom中,當計算機引導時,bios把pxe client調入記憶體執行,并顯示出指令菜單,經使用者選擇後,pxe client将放置在遠端的作業系統通過網絡下載下傳到本地運作。

既然是通過網絡傳輸,就需要ip位址。也就是說在其啟動過程中,用戶端請求伺服器配置設定ip位址之後,pxe client使用tftp client 通過tft協定下載下傳啟動安裝程式所需的檔案。

簡單地說pxe網絡安裝,客戶機通過支援pxe的網卡向網絡中發送請求dhcp資訊的廣播請求ip位址等資訊,dhcp伺服器給用戶端提供ip位址和其它資訊(tftp伺服器、啟動檔案等),之後請求并下載下傳安裝需要的檔案。在這個過程中需要一台伺服器來提供啟動檔案、安裝檔案、以及安裝過程中的自動應答檔案等。

下圖中介紹了linux中自動安裝系統的詳細工作過程:

kickstart無人值守安裝CentOS6.5

第一步:pxe client向dhcp發送請求

首先,将支援pxe的網絡接口卡(nic)的用戶端的bios設定成為網絡啟動,選擇基本所有的網卡都支援網絡啟動。通過pxe bootrom(自啟動晶片)會以udp方式發送一個廣播請求,向網絡中的dhcp伺服器索取ip位址等資訊。

第二步:dhcp伺服器提供資訊

dhcp伺服器收到用戶端的請求,驗證是否來至合法的pxe client的請求,驗證通過它将給用戶端一個“提供”響應,這個“提供”響應中包含了為用戶端配置設定的ip位址、pxelinux啟動程式(tftp)位置,以及配置檔案所在位置。

第三步:pxe用戶端請求下載下傳啟動檔案

用戶端收到伺服器的“回應”後,會回應一個幀,以請求傳送啟動所需檔案。這些啟動檔案包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等檔案。

第四步:boot server響應用戶端請求并傳送檔案

當伺服器收到用戶端的請求後,他們之間之後将有更多的資訊在用戶端與伺服器之間作應答,用以決定啟動參數。bootrom 由 tftp 通訊協定從boot server下載下傳啟動安裝程式所必須的檔案(pxelinux.0、pxelinux.cfg/default)。default檔案下載下傳完成後,會根據該檔案中定義的引導順序,啟動linux安裝程式的引導核心。

第五步:請求下載下傳自動應答檔案

用戶端通過pxelinux.cfg/default檔案成功的引導linux安裝核心後,安裝程式首先必須确定你通過什麼安裝媒體來安裝linux。如果是通過網絡安裝(nfs, ftp, http),則會在這個時候初始化網絡,并定位安裝源位置。或許你會說,剛才pxe不是已經擷取過ip位址了嗎?為什麼現在還需要一次?這是由于pxe擷取的是安裝用的核心以及安裝程式等,而安裝程式要擷取的是安裝系統所需的二進制包以及配置檔案。由于它們需要的内容不同造成pxe子產品和安裝程式是相對獨立的,pxe的網絡配置并不能傳遞給安裝程式。進而進行兩次擷取ip位址過程。

接着會讀取該檔案中指定的自動應答檔案ks.cfg所在位置,根據該位置請求下載下傳該檔案。

第六步:用戶端安裝作業系統

将ks.cfg檔案下載下傳回來後,通過該檔案找到os server,并按照該檔案的配置請求下載下傳安裝過程需要的軟體包。

os server和用戶端建立連接配接後,将開始傳輸軟體包,用戶端将開始安裝作業系統。安裝完成後,将提示重新開機計算機。這個時候注意,在重新開機的過程中一定要将bios修改回從硬碟啟動,不然的話又會重複的自動安裝作業系統。

ok以上就是pxe網絡啟動的整個過程,下面我們開始正式的配置。

<b>二、配置</b><b>nfs</b><b>伺服器</b><b></b>

系統安裝的檔案,我們可以從鏡像檔案中得到。

把本地的鏡像檔案進行挂載,如下:

mount –o loop /home/datasoft/soft/iso/centos-6.5-x86_64-bin-dvd1.iso /iso1

kickstart無人值守安裝CentOS6.5

把/ios1目錄下所有的内容全部複制到/iso目錄下,如下:

cp –rv /iso1/* ./

kickstart無人值守安裝CentOS6.5

把/iso目錄通過nfs方式映射出去,如下:

kickstart無人值守安裝CentOS6.5

該鏡像檔案的結構如下:

kickstart無人值守安裝CentOS6.5

* isolinux目錄存放CD光牒啟動時的安裝界面資訊

* images目錄包括了必要的啟動映像檔案,最重要的是引導第二階段安裝需要用到的鏡像檔案install.img,anaconda程式就在這個鏡像檔案中

* packages目錄存放安裝軟體包及資訊

* efi目錄:用于64位的基于efi的系統引導。其中boot目錄下bootx64.conf為grub的配置檔案,用于顯示引導菜單。

*trans.tbl檔案:記錄目前目錄的清單,用mkisofs的-t參數重新生成,主要是為了長檔案名稱。

nfs服務配置好後,我們現在開始配置dhcp服務。

<b>三、配置</b><b>dhcp</b><b>伺服器</b><b></b>

我們現在需要做的是在dhcp服務的配置中添加tftp伺服器的位址,以及用戶端所要擷取到的配置檔案名稱。如下:

vi /etc/dhcp/dhcpd.conf

next-server 192.168.1.214;

filename “pxelinux.0”;

kickstart無人值守安裝CentOS6.5

<b>四、配置</b><b>tftp</b><b>伺服器</b><b></b>

此步驟牽涉的内容比較多,請耐心觀看。

4.1 複制pxelinux.0檔案

pxe啟動映像檔案由syslinux提供,我們隻要安裝syslinux,就會生成一個pxelinux.0檔案,隻需要将pxelinux.0 這個檔案複制到tftp根目錄即可。

pxelinux.0檔案的作用是加載系統引導檔案。如下:

yum –y install syslinux

kickstart無人值守安裝CentOS6.5

檢視syslinux安裝後,所生成的文檔,如下:

rpm -ql syslinux |grep pxe*

kickstart無人值守安裝CentOS6.5

查找syslinux生成的pxelinux.0檔案位置,如下:

find / -name pxelinux.0

kickstart無人值守安裝CentOS6.5

或者直接使用locate pxe進行搜尋也可以,該指令的意思是查找以pxe開頭的所有檔案。如下:

locate pxe

kickstart無人值守安裝CentOS6.5

檢視pxelinux.0檔案的内容,可以看到全部是亂碼,如下:

more /usr/share/syslinux/pxelinux.0

kickstart無人值守安裝CentOS6.5

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

kickstart無人值守安裝CentOS6.5

4.2 複制boot.msg、splash.jpg、vesamenu.c32檔案

以上我們把pxelinux.0檔案已經複制到tftp的根目錄下,下面我們開始複制有關系統核心和系統安裝時的相關檔案。這些檔案我們可以通過centos鏡像網站進行下載下傳,比如國内的阿裡雲網站,截圖示範如下:

kickstart無人值守安裝CentOS6.5

也可以通過把本地的鏡像檔案進行挂載使用,本實驗我們是先把本地的鏡像檔案進行挂載,然後通過nfs的方式把該鏡像中的檔案複制出來。如下:

mount -t nfs 192.168.1.11:/iso /iso

kickstart無人值守安裝CentOS6.5

打開/iso/isolinux目錄,isolinux目錄中主要是存放CD光牒啟動時的安裝界面資訊,在這裡面有幾個檔案是我們需要的。

boot.msg引導子產品的菜單選項

splash.jpg 啟動時的背景檔案

vesamenu.c32用于設定菜單子產品

ll -h /iso/isolinux/

kickstart無人值守安裝CentOS6.5

把上述檔案複制到tftp伺服器的根目錄,如下:

cp -rv /iso/isolinux/{boot.msg,splash.jpg,vesamenu.c32} /var/lib/tftpboot/

ll -h /var/lib/tftpboot/

kickstart無人值守安裝CentOS6.5

4.3 複制vmlinuz、initrd.img檔案

下面複制centos的安裝引導檔案vmlinuz、initrd.img。

vmlinuz 是可引導的、壓縮的核心檔案

initrd.img在系統引導過程中挂載的一個臨時根檔案系統,用來支援兩階段的引導過程的檔案系統

以上兩個檔案存放在/iso/images/pxeboot目錄下:如下:

ll –h /iso/images/pxeboot

kickstart無人值守安裝CentOS6.5

cp -rv /iso/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

kickstart無人值守安裝CentOS6.5

以上檔案複制完畢後,我們來建立pxelinux.cfg目錄及default檔案。

4.4 建立pxelinux.cfg目錄及default檔案

pxelinux.cfg目錄主要是用來存放default檔案。default檔案主要是用來系統正常引導後的相關配置。如下:

mkdir /var/lib/tftpboot/pxelinux.cfg

kickstart無人值守安裝CentOS6.5

因為default檔案的内容格式比較複雜,是以在此我們不建議手工建立。centos鏡像檔案中已經為我們提供了一個模版,該模版是/iso/isolinux/isolinux.cfg,如下:

kickstart無人值守安裝CentOS6.5

複制isolinux.cfg并重命名為default,如下:

cp /iso/isolinux/isolinux.cfg /var/lib/tftpboot/pexlinux.cfg/default

kickstart無人值守安裝CentOS6.5

4.5 修改default檔案内容

在修改default檔案内容之前,先檢視其檔案的内容,如下:

more /var/lib/tftpboot/pexlinux.cfg/default

kickstart無人值守安裝CentOS6.5

通過上圖我們可以看到,default檔案的内容非常多。其實有很多是我們不需要的。修改該配置檔案,隻保留如下内容:

vi /var/lib/tftpboot/pxelinux.cfg/default

kickstart無人值守安裝CentOS6.5

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

<b>其中我們隻需要注意</b><b>ks=ftp://192.168.1.214/pub/ks.cfg</b><b>這行,這行是需要</b><b>kickstart</b><b>生成的配置檔案,而是使用的</b><b>ftp</b><b>方式通路該檔案。在這我們先把該檔案的名稱填寫進來。</b><b></b>

下面我們開始安裝及配置kickstart自動應答檔案。

<b>五、配置</b><b>kickstart</b><b>自動應答安裝檔案</b><b></b>

5.1 安裝kickstart軟體包

首先要安裝kickstart軟體包,使用如下指令:

yum -y install system-config-kickstart

kickstart無人值守安裝CentOS6.5
kickstart無人值守安裝CentOS6.5

kickstart安裝完畢後,你會在/root/目錄下生成anaconda-ks.cfg檔案。該檔案就是kickstart自動應答檔案的一個模版,如下:

find / -name an*.cfg

kickstart無人值守安裝CentOS6.5

檢視該配置檔案,如下:

more /root/anaconda-ks.cfg

kickstart無人值守安裝CentOS6.5

如果你對這個配置檔案比較熟悉的話,你可以直接把該檔案複制一份到/var/ftp/pub目錄下,并重命名為ks.cfg。修改儲存後,就可以去啟動用戶端。

5.2 生成kickstart自動應答檔案

但是對于不熟悉該自動應答配置檔案的童鞋來說,還是通過圖形界面方式來生成kickstart自動應答檔案吧。

注意圖形界面生成kickstart自動應答檔案,一定要再kickstart伺服器上安裝圖形界面。

在終端下輸入system-config-kickstart,系統就會彈出kickstart的配置界面,如下:

kickstart無人值守安裝CentOS6.5

注意此指令可以在普通使用者下使用,也可以通過centos圖形界面的菜單打開,如下:

kickstart無人值守安裝CentOS6.5

下面我們開始配置kickstart,如下:

kickstart無人值守安裝CentOS6.5

該界面主要是配置語言、鍵盤類型、時區、root使用者的密碼

kickstart無人值守安裝CentOS6.5

該界面主要是配置是通過何種方式安裝系統的,在此我們選擇的是nfs方式。這個我們也在前文提到過。

kickstart無人值守安裝CentOS6.5

該界面主要是詢問是否安裝新的boot loader和mbr。

kickstart無人值守安裝CentOS6.5

該界面主要是配置系統的分區,注意圖形界面下不能進行lvm的配置。如果要進行lvm配置的話,可以通過修改kickstart的配置檔案來達到目的。這個我會在以後的文章中進行介紹。

kickstart無人值守安裝CentOS6.5

該界面主要是配置用戶端的網卡名稱以及該網卡的ip位址形式,我們在此為網卡命名為eth0,并且配置該網卡的擷取ip位址形式是dhcp方式的。

kickstart無人值守安裝CentOS6.5

該界面主要是配置防火牆和selinux,預設在此我們禁用。

kickstart無人值守安裝CentOS6.5

該界面配置是否顯示配置。

kickstart無人值守安裝CentOS6.5

該界面主要配置需要安裝的軟體包。在此我要提醒下,如果你的centos鏡像使用的是mini版的話,在安裝包選擇base後,系統安裝時會報錯。

但是centos鏡像檔案使用的是dvd版的話,安裝包選擇base正常安裝。

kickstart無人值守安裝CentOS6.5

該界面配置系統安裝前需要執行的腳本。

kickstart無人值守安裝CentOS6.5

該界面配置系統安裝後需要執行的腳本。

以上配置完畢後,我們就可以儲存此配置檔案。點選“file”-“save”,如下:

kickstart無人值守安裝CentOS6.5

該配置檔案預設會儲存到,使用者的home目錄下,如下:

kickstart無人值守安裝CentOS6.5
kickstart無人值守安裝CentOS6.5

檢視ks.cfg自動應答檔案的内容,如下:

kickstart無人值守安裝CentOS6.5

通過上圖我們可以看到,此配置檔案的内容和我們剛剛通過圖形界面配置意義對應的。

5.3 安裝vsftp服務

在前文,我們提到過pxe的default檔案的ks檔案路徑是存放在/var/ftp/pub目錄下,如下:

kickstart無人值守安裝CentOS6.5

這個是通過ftp進行連接配接的。那麼我們就要按照vsftpd,如下:

yum –y install vsftpd

kickstart無人值守安裝CentOS6.5

複制kickstart的自動應答檔案ks.cfg,到ftp的公共目錄下并修改其相應的使用者組,如下:

cp /root/ks.cfg /var/ftp/pub/

ll -h /var/ftp/pub/

chown -r nobody:nobody /var/ftp/pub/

kickstart無人值守安裝CentOS6.5

<b>六、使用</b><b>pxe</b><b>功能引導客戶機</b><b></b>

上述配置完畢後,我們就可以啟動用戶端來進行centos的網絡安裝,在用戶端的bios中需要配置pxe啟動。

配置完畢後,我們就可以啟動用戶端。如下:

kickstart無人值守安裝CentOS6.5

通過上圖,我們可以知道用戶端已認證dhcp伺服器擷取到ip位址。

kickstart無人值守安裝CentOS6.5
kickstart無人值守安裝CentOS6.5

通過上圖我們可以看出系統已經成功下載下傳核心檔案,并加載成功。

kickstart無人值守安裝CentOS6.5

開始安裝系統。

繼續閱讀