Linux kickstart大規模部署系統

在工作中會遇到一種場景,公司領導讓你部署大量的服務器操作系統。但此時如果用原始的方法,CD/USB進行安裝都不太合適。因為數量龐大,時間耗費很長。這個時候就可以用redhat自身的工具kickstart來完成這個工作。

實驗環境:VMware Workstation,操作系統為redhat 6.4


使用光盤安裝linux系統過程:

第一步,POST自檢

第二步,MBR引導,這裡使用的GRUB是CDROM中isolinux/文件夾中的grub.conf。

第三步,啟動帶有安裝、升級、修復等選項的選擇菜單,這是由isolinux.bin啟動的。

第四步,vmlinuz(initrd)掛載根文件系統。

第五步,啟動anaconda安裝界面。而anaconda。


一、基本原理

PXE(Pre-boot Execution Environment)是由Intel設計的協議,它可以使計算機通過網絡啟動。協議分為client和server兩端,PXE client在網卡的ROM中,當計算機引導時,BIOS把PXE client調入內存執行,並顯示出命令菜單,經用戶選擇後,PXE client將放置在遠端的操作系統通過網絡下載到本地運行。客戶端在啟動過程中,請求服務器分配IP地址。之後PXE Client使用TFTP Client 通過TFTP(Trivial File Transfer Protocol)協議下載啟動安裝程序所需的文件。單地說PXE網絡安裝,客戶機通過支持PXE的網卡向網絡中發送請求DHCP信息的廣播請求IP地址等信息,DHCP服務器給客戶端提供IP地址和其它信息(TFTP服務器、啟動文件等),之後請求並下載安裝需要的文件。在這個過程中需要一臺服務器來提供啟動文件、安裝文件、以及安裝過程中的自動應答文件等。圖一中介紹了Linux中自動安裝系統的詳細工作過程:


Linux kickstart大規模部署系統

圖一:從網絡獲取

PXE工作流程示意圖中顯示了client和server兩端的文件流。


Linux kickstart大規模部署系統

從網絡獲取

第一步: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修改回從硬盤啟動,不然的話又會重複的自動安裝操作系統。

在上面介紹中PXE client是需要安裝Linux的計算機,TFTP Server、DHCP Server和FTP Server運行在另外一臺Linux Server上。Bootstrap文件、配置文件、Linux內核都放置在Linux Server上TFTP服務器的根目錄下。而Linux根文件系統存放於FTP Server的共享目錄中。

PXE client在工作過程中,需要三個二進制文件:bootstrap、Linux 內核和Linux根文件系統。Bootstrap文件是可執行程序,它向用戶提供簡單的控制界面,並根據用戶的選擇,下載合適的Linux內核以及Linux根文件系統。

二、配置過程

1、關閉iptables/selinux。配置YUM安裝源。

#iptables -F

#vim /etc/sysconfig/selinux à將enable改成disabled àreboot

2、配置Linux Server的ip地址

本例子中將ip改為:192.168.213.53

3、安裝整個實驗所需要的軟件包:dhcp tftp tftp-server vsftpd syslinux

#yum install -y dhcp tftp tftp-server syslinux vsftpd

4、

#mkdir /var/ftp/pub/dvd

#chmod 777 /var/ftp/pub/dvd

#cp -rf /mnt/cdrom/* /var/ftp/pub/dvd 拷貝系統文件到dvd文件夾下

5、配置TFTP

#vim /etc/xinetd.d/tftp 將disable的值更改為no。如下圖所示:


Linux kickstart大規模部署系統

圖二

6、配置DHCP

首先將DHCP安裝到系統之後,會發現/etc/dhcp/dhcpd.conf文件,但此文件沒有任何參數,需要自行編輯。此時可以將/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample中的示例配置文件複製到/etc/dhcp/dhcpd.conf中,然後再進行修改編輯。

原示例文件中的配置信息如圖三所示:


Linux kickstart大規模部署系統

圖三

將以上信息修改成圖四所示的結果:(dhcp動態更新方式 non:不支持;interim:互動更新模式;ad-hoc:特殊更新模式,<ddns-update-style><ignore>/<ddns-update-style>


Linux kickstart大規模部署系統

圖四

7、創建TFTP的主目錄(默認目錄是/var/lib/tftpboot)

#mkdir -p /var/lib/tftpboot/pxelinux.cfg

8、準備引導文件

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

# cp /var/ftp/pub/dvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

#chmod 755 /var/lib/tftpboot/pxelinux.cfg/default

#cp /var/ftp/pub/dvd/isolinux/* /var/lib/tftpboot/

syslinux是一個功能強大的引導加載程序,而且兼容各種介質。更加確切地說:SYSLINUX是一個小型的Linux操作系統,它的目的是簡化首次安裝Linux的時間,並建立修護或其它特殊用途的啟動盤。如果系統中沒有pxelinux.0文件可以通過安裝syslinux來獲取。

9、重啟相關服務

#service dhcpd restart

#service vsftpd restart

#service xinetd restart

#chkconfig dhcpd on

#chkconfig vsftpd on

#chkconfig tftp on

10、配置無人值守安裝文件

# yum -y install system-config-kickstart 安裝此軟件是為了實現圖形化界面配置自動安裝參數,安裝完成後,執行#system-config-kickstart就會出現如圖五所示的界面。


Linux kickstart大規模部署系統

圖五


Linux kickstart大規模部署系統

圖六


Linux kickstart大規模部署系統

圖七


Linux kickstart大規模部署系統

圖八


Linux kickstart大規模部署系統

圖九


Linux kickstart大規模部署系統

圖十


Linux kickstart大規模部署系統

圖十一


Linux kickstart大規模部署系統

圖十二

安裝方法一欄:這邊是FTP模式 選擇對應的FTP,然後輸入服務器地址:192.168.213.53 下面對應的目錄:/pub/dvd (省略/var/ftp/根目錄)。

將剛才生成的保存的ks.cfg(注:通過system-config-kickstart配置產生的配置文件名稱默認為anaconda-ks.cfg)文件拷貝到/var/ftp/pub。複製到pub下,通過查看發現ks.cfg的默認權限是600,需要通過chmod將權限更改為644。

修改引導文件參數:

#vim /var/lib/tftpboot/pxelinux.cfg/default

找到這一行 append initrd=initrd.img 在其後面添加 ks=ftp://192.168.213.53/pub/ks.cfg(如圖十三),此圖中顯示的信息為ks=ftp://192.168.213.53/pub/ks.cfg在前而append initrd=initrd.img在後。其實位置順序不影響實驗結果。


Linux kickstart大規模部署系統

圖十三

三、部分錯誤提示

經常會出現如下的錯誤提示


Linux kickstart大規模部署系統

出現該問題可能由幾個方面造成。

1、 新建的ks.cfg文件名進行了自定義,由於不清楚該文件的自定義規則所以造成無法下載的問題,最後將名稱創建為ks.cfg就可以正常被下載。

2、 文件的權限問題。


分享到:


相關文章: