kickstart無人值守安裝CentOS6


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

1、 理解PXE原理

2、 配置DHCP服務器,用於給客戶端提供IP地址及其它信息

3、 配置TFTP服務器,用於提供客戶端PXE引導所必須的文件

4、 配置kickstart自動應答安裝文件

5、 使用PXE功能引導客戶機

一、理解PXE原理

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中自動安裝系統的詳細工作過程:

wKioL1dEJeqxTNKxAACKGpXYb-Y897.jpg


第一步: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網絡啓動的整個過程,下面我們開始正式的配置。

二、配置DHCP服務器

DHCP:動態主機配置協議,在此就不多做介紹。


要想配置DHCP服務,我們要先來安裝DHCP軟件包,如下:

# yum install -y dhcp


wKiom1dELsuj364kAAB4cgk7dhI037.png

檢查安裝DHCP軟件包,所生成的文件。如下:


# rpm -ql dhcp


wKioL1dEMPXSxuewAACh2QmflcA663.png


通過上圖我們可以知道,DHCP的配置文件爲/etc/dhcp/dhcpd.conf。但該配置文件內容默認是空的,我們可以直接編輯內容,

本次實驗的配置如下:

# vim /etc/dhcp/dhcpd.conf


subnet 192.168.244.0 netmask 255.255.255.0 {

      range 192.168.244.10 192.168.244.60;

      option routers 192.168.244.2;

      option domain-name-servers 202.106.0.20;

      option domain-name "centos";

      default-lease-time 600;

      max-lease-time 7200;

      next-server 192.168.244.12;

      filename "pxelinux.0";

}

wKioL1dE-GjAZF_8AAA8xSdFapQ969.png



dhcpd.conf文件有兩大部分,分別是全局配置和局部配置:

1、當全局配置與局部配置發生衝突時,局部配置優先級更高。

2、配置文件中每一行必須以分號結尾,因爲在啓動dhcpd時是不會報錯的,只能通過查看日誌文件/var/log/message得知配置文件是否有問題。

3、局部配置必須包含在一對中括號之間。

●常用參數:

●ddns-update-style (none|interim|ad-hoc):定義所支持的DNS動態更新類型,該參數必選且必須放在第一行且只能在全局配置中使用。

●default-lease-time:客戶端IP默認租約時間,單位秒,該參數可以在全局配置、局部配置均可使用。

●max-lesase-time:客戶端IP租約時間的最大值,單位秒,該參數可以在全局配置、局部配置均可使用。

●subnet 網絡號 netmask 子網掩碼 {…..}:定義作用域。

●range 起始IP 結束IP:動態IP地址範圍。

●option routes IP地址:默認網關,該選項可以在全局配置、局部配置均可使用。

●option subnet-mask 子網掩碼:默認子網掩碼,該選項可以在全局配置、局部配置均可使用。

●option domain-name-servers:DNS服務器地址,該選項可以在全局配置、局部配置均可使用。

●option domain-name:DNS後綴,該選項可以在全局配置、局部配置均可使用。

●host 名稱 {…..} 爲特殊機器保留IP地址。


三、配置TFTP服務器

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

3.1 複製pxelinux.0文件

PXE啓動映像文件由syslinux提供,我們只要安裝syslinux,就會生成一個pxelinux.0文件,只需要將 pxelinux.0 這個文件複製到TFTP根目錄即可。

# yum install -y syslinux

wKioL1dE-UuhPh9sAAAxnyKQwrM030.png

查看syslinux安裝後,所生成的文檔,如下:


# rpm -ql syslinux

# rpm -ql syslinux|grep pxe*


wKiom1dE-S2CoPCbAAC9WYk24KM366.png

查找syslinux生成的pxelinux.0文件位置,如下:


wKioL1dE-mXSDZBNAAAJ6y80Asw117.png


要把pxelinux.0複製到tftp的根目錄下,要先安裝和配置TFTP服務器。


wKiom1dE-f3hD4I0AAAw9x1iXEg731.png


因爲tftp服務的正常運行是依賴於xinetd服務的,配置文件位於/etc/xinetd.d/tftp,如下:


# vim /etc/xinetd.d/tftp


wKiom1dE_KHyIcOLAAAmNGrPEcs005.png


在此我們的TFTP根目錄還是使用默認,爲/var/lib/tftpboot/。其上傳和下載的權限也已經開啓。如下:

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


3.2 複製vmlinuz、initrd.img文件


下面複製centos的安裝引導文件vmlinuz、initrd.img。

vmlinuz 是可引導的、壓縮的內核文件

initrd.img在系統引導過程中掛載的一個臨時根文件系統,用來支持兩階段的引導過程的文件系統

以上兩個文件存放在光盤,需要把光盤掛載到/mnt下:如下:


# mount /dev/sr0 /mnt/

wKioL1dE_xuj5vdtAAA6Q1mqEWo137.png


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


wKioL1dFAB3RttZ7AAA_FxjzwnI873.png


以上文件複製完畢後,我們來創建pxelinux.cfg目錄及default文件。


3.3 創建pxelinux.cfg目錄及default文件


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

mkdir /var/lib/tftpboot/pxelinux.cfg


wKioL1dFAPXzx9coAABM0hTK4aw263.png



因爲default文件的內容格式比較複雜,所以在此我們不建議手工創建。centos鏡像文件中已經爲我們提供了一個模版,該模版是/isolinux/isolinux.cfg,如下:

wKioL1dFAWzDJjf4AAAjYWnyZpw158.png

複製isolinux.cfg並重命名爲default,如下:

cp /mnt/centos/isolinux/isolinux.cfg  /var/lib/tftpboot/pexlinux.cfg/default

wKiom1dFANawpW2PAAAcE3gApZQ233.png



3.4 修改default文件內容

修改該配置文件,如下圖:


wKiom1dFAcviilaTAAB6X_iCCEM556.png



其中我們只需要注意ks=ftp://192.168.244.12/pub/ks.cfg這行,這行是需要kickstart生成的配置文件,而是使用的ftp方式訪問該文件。在這我們先把該文件的名稱填寫進來。



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



四、配置kickstart自動應答安裝文件

4.1 安裝kickstart軟件包

首先要安裝kickstart軟件包,使用如下命令:

# yum search kickstart

wKiom1dFA_bhsku3AABMKV5bp0c437.png


# yum -y install system-config-kickstart pykickstart


wKioL1dFBTfhKNiJAABAItMXXqQ532.png


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


# find / -name an*.cfg


wKioL1dFBcfgjltJAAAiO810zjI206.png


查看該配置文件,如下:


# cat /root/anaconda-ks.cfg


wKioL1dFBkiz5iXCAAB2ZHK-6WI314.png


如果你對這個配置文件比較熟悉的話,你可以直接把該文件複製一份到/var/ftp/pub目錄下,並重命名爲ks.cfg。修改保存後,就可以去啓動客戶端。



4.2 生成kickstart自動應答文件

但是對於不熟悉該自動應答配置文件的人來說,還是通過圖形界面方式來生成kickstart自動應答文件吧。

注意圖形界面生成kickstart自動應答文件,一定要再kickstart服務器上安裝圖形界面。如下:

wKiom1dFBySCbZvaAAGVRZF-mkc505.png


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

wKioL1dFCDnQdJCmAADlRN8Leok660.png


該界面主要是配置是通過何種方式安裝系統的,在此我們選擇的是ftp方式,常見的有nfs和ftp


wKiom1dFB0bCmiACAAEWbOoQDXE192.png

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

wKiom1dFCa-Aqu_ZAAEtYHmgJ_w236.png

該界面主要是配置系統的分區,注意圖形界面下不能進行LVM的配置。如果要進行LVM配置的話,可以通過修改kickstart的配置文件來達到目的。

wKiom1dFCa_BJh-pAAD6kCfDcVI351.png

wKiom1dFCbCzMuQ3AADbs8cdkgc721.png

該界面主要是配置客戶端的網卡名稱以及該網卡的IP地址形式,我們在此爲網卡命名爲eth0,並且配置該網卡的獲取IP地址形式是DHCP方式的。

wKiom1dFCbDCM-xhAADWeus-8R0084.png

默認即可

wKiom1dFCbGRsFItAAC-zfyvpUQ186.png

該界面主要是配置防火牆和Selinux,默認在此我們禁用。

wKioL1dFCqWRkdjHAAC-aJL3MII522.png

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

wKioL1dFCqXgtccPAACMyloYqQo337.png

該界面主要配置需要安裝的軟件包。


wKioL1dFCqbCPfQrAADNiCjROPo013.png


該界面配置系統安裝前需要執行的腳本。wKiom1dFCbPBUdlbAAB-vN8DwJs218.png

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

wKioL1dFCqeAd7_gAACB_OVWxrY216.png

以上配置完畢後,我們就可以保存此配置文件。點擊“file”-“save”,如下:

wKiom1dFCbOR2X7NAACioBL_fSY162.png

該配置文件默認會保存到,/var/ftp/pub/目錄下,

wKiom1dFCbTwwaBhAADb5-kfp6M864.png

如下:

wKiom1dFDFnTgLzxAAAP8UhX4Q8253.png


# vim /var/ftp/pub/ks.cfg


wKiom1dFDOPwKx-gAACT2CiHsyg598.png


注意:%packages與%end 之間的內容可以自定義一些軟件組和軟件,軟件組名字前面加@,例如@Emacs (查詢用yum grouplist),軟件不需要直接名字即可。例如zip(查詢用yum list)


通過上圖我們可以看到,此配置文件的內容和我們剛剛通過圖形界面配置意義對應的


4.3 安裝vsftp服務

在前文,我們提到過PXE的default文件的ks文件路徑是存放在/var/ftp/pub目錄下,這個是通過FTP進行連接的。那麼我們就要按照vsftpd,如下:

# mkdir /var/ftp/centos/

# mount /dev/sr0 /var/ftp/centos/

wKioL1dFEdvSpYwkAAApjD9YQVw571.png

# yum –y install vsftpd

#chown -R nobody:nobody /var/ftp/pub/


五、使用PXE功能引導客戶機

上述配置完畢後,我們就可以啓動客戶端來進行centos的網絡安裝,在客戶端的BIOS中需要配置PXE啓動。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章