歡迎您光臨本站 註冊首頁

linux kickstart無人值守批量安裝系統

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

linux Kickstart無人值守安裝

在我們的網路維護生涯中,有不少朋友,感覺到自己在機械的做一件事情,在無聊、無趣和無奈中工作.尤其一些簡單重複的操作更容易讓大家感到工作的無趣.今天將給大家介紹如何大規模的部署RedHat Linux操作系統,避免了手工安裝的繁瑣.當然本方法也使用於一些特殊場合,譬如沒有光碟機或光碟機壞掉的計算機、手中沒有安裝光碟等情況.

在安裝RedHat Linux

企業版的過程中,我們都知道它允許通過NFSHTTPFTP協議來進行網路安裝.但是在一般情況下我們需要有一個安裝引導介質(引導光碟、引導軟盤、U盤等),有沒有一種方法不通過引導光碟方式來安裝呢,而直接通過網路來進行安裝?答案是有,即通過PXE技術實現.

一、基本原理

那麼PXE到底是什麼呢?

PXE(Pre-boot Execution Environment)是由英特爾設計的協議,它可以使計算機通過網路啟動.協議分為clientserver兩端,

PXE client在網卡的ROM中,當計算機引導時,BIOSPXE client調入內存執行,並顯示出命令菜單,經用戶選擇后,PXE client將放置在遠端的操作系統通過網路下載到本地運行.

既然是通過網路傳輸,就需要IP地址;也就是說在其啟動過程中,客戶端請求伺服器分配

IP地址,之後PXE Client使用TFTP Client 通過TFTPTrivial File Transfer Protocol)協議下載啟動安裝程序所需的文件.

簡單地說PXE網路安裝,客戶機通過支持

PXE的網卡向網路中發送請求DHCP信息的廣播請求IP地址等信息,DHCP伺服器給客戶端提供IP地址和其它信息(TFTP伺服器、啟動文件等),之後請求並下載安裝需要的文件.在這個過程中需要一台伺服器來提供啟動文件、安裝文件、以及安裝過程中的自動應答文件等.下圖中介紹了Linux中自動安裝系統的詳細工作過程:

第一步:PXE ClientDHCP發送請求

首先,將支持PXE的網路介面卡(NIC)的客戶端的BIOS設置成為網路啟動,通過PXE BootROM(自啟動晶元)會以

UDP(簡單用戶數據報協議)發送一個廣播請求,向網路中的DHCP伺服器索取IP地址等信息.

第二步:DHCP伺服器提供信息

DHCP伺服器收到客戶端的請求,驗證是否來至合法的

PXE Client的請求,驗證通過它將給客戶端一個提供響應,這個提供響應中包含了為客戶端分配的IP地址、pxelinux啟動程序(

TFTP
)位置,以及配置文件所在位置.

第三步:PXE客戶端請求下載啟動文件

客戶端收到伺服器的回應后,會回應一個幀,以請求傳送啟動所需文件.這些啟動文件包括:pxelinux.0

pxelinux.cfg/defaultvmlinuzinitrd.img等文件.

第四步:Boot Server響應客戶端請求並傳送文件

當伺服器收到客戶端的請求后,他們之間之後將有更多的信息在客戶端與伺服器之間作應答

, 用以決定啟動參數.BootROM TFTP 通訊協議從Boot Server下載啟動安裝程序所必須的文件(pxelinux.0pxelinux.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 ServerDHCP ServerNFS Server運行在另外一台Linux Server上.Bootstrap文件、配置文件、Linux

內核都放置在Linux ServerTFTP伺服器的根目錄下.而Linux根文件系統存放於NFS Server的共享目錄中.

PXE client在工作過程中,需要三個二進位文件:bootstrap

Linux 內核和Linux根文件系統.Bootstrap文件是可執行程序,它向用戶提供簡單的控制界面,並根據用戶的選擇,下載合適的Linux內核以及Linux根文件系統.

二、安裝的前提條件

2.1、PXE KickStart安裝的條件

執行PXE KickStart安裝需要的設備為:

DHCP 伺服器;

TFTP 伺服器;

KickStart所生成的ks.cfg配置文件

一台存放系統安裝文件的伺服器,如 NFS

HTTP FTP 伺服器.

帶有一個 PXE 支持網卡的將安裝的主機;

2.2、安裝過程中所需要的

rpm包及獲取

需要的rpm軟體包

nfs-utils-lib-*

nfs-utils- *

xinetd-*

tftp-server-*

dhcp-*

dhcp-devel-*

system-config-kickstart-*

2.3 軟體包的獲取 

1、本地方式

一般情況下一些常用的安裝包都可以在你的安裝光碟中找到.

2、網路方式

如果你無法在安裝光碟中找到適合的安裝包,你可以通過

yum這種方式安裝.

三、操作步驟:

要求:有兩台虛擬機分別是伺服器和客戶端,伺服器的ip地址是:192.168.0.251 子網掩碼是:

255.255.255.0.客戶端只需開機就可以自動安裝操作系統.

3.1 配置IP地址

1

)在終端里輸入system-config-network-tui,打開IP配置圖形界面.

2)重啟網卡,

service network restart

3.2 安裝rpm

配置該伺服器需要安裝dhcpd,

tftp-server,nfs,system-config-kickstart,等包.首先需要檢查本機上是否已經安裝了這些包,輸入rpm –qa | grep 包名

如果沒有安裝這些包則需要通過rpm –ivh 包名來安裝.首先需要用mount –t iso9660 /dev/hdc /mnt/cdrom(其中cdrom是我自己建的)來將系統光碟掛載到

/mnt/cdrom目錄下.然後安裝需要的rpm包.

3.3 配置dhcp服務

使用vim編輯器編輯/etc/dhcpd.conf文件.由於是第一次編輯dhcp伺服器,地面的文件時空的,因此我們要做一些相應的操作哈!方法如下圖:

回車后即可看到dhcp伺服器的配置文件了哈,不過這只是原始的文件,因此我們需要做一些的修改哦!

3.4 配置tftp服務

tftp是為了給待安裝的機器發送文件的簡單的文件傳輸服務.這個配置還是比較簡單的,只需把配置文件中的disable那項的yes改成

no即可哈!

3.5 配置nfs服務

nfs服務是將安裝過程所需要的一些文件共享出來,這個也是比較簡單的.其中的

/kickstart /linuxinstall文件都是我們自己建立的.

啟動后查看是否共享成功哈!

呵呵 成功了哈!!!!!!!!

3.6 配置ks.cfg文件

ks.cfg是待安裝機器的所有的配置文件,每台機器在安裝過linux系統以後都會自動生成一個ks.cfg文件裡面記錄了在安裝系統的時候所做的所有操作,文件的位置位於/root目錄下的anaconda-ks.cfg.

我們可以查看下他的配置…………………

我們可以通過enter鍵和空格鍵查看哈,我就不過做了哈,你們可以44

接下來就要真正的配置ks.cfg文件了,這個有點麻煩,這裡我們可以通過圖形界面來配置

在這裡我們最好把防火牆關掉,防止出項不必要的意外嘛…………

保存並退出

接下查看ks.cfg文件,並作進一步修改哈、、、、、、、、

呵呵,ks.cfg配置王成后可以說我們的伺服器已經配置好了一半了,當然了ks.cfg文件要是出現錯誤,那就好麻煩了,仔細點啊.

3.7

複製相應的文件和創建相應的共享文件夾

接下來是幾條命令:

3.8編輯我們的/tftpboot/pxelinux.cfg/default文件

timeout 修改成6(只要小一點就可以了

),防止等待的時間過長哈!!然後就是將label linux後面的文件修改成:

kernel vmlinuz

append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks noipv6

由於default這個文件是只讀的,因此我們要加上寫的許可權,否則無法編輯

接下來,我們來編輯這個文件…………

3.9將光碟中的文件全部複製到/linuxinstall

由於我們之前把光碟掛載在/mnt/cdrom下,因此需要將其卸載掉,之後再將其掛載到/linuxinstall

3.10啟動相關的服務並將其全部設置成開機啟動

3.11關閉防火牆和iptables以及selinux

防火牆的關閉,在終端下輸入setup,如下圖所示:

關閉iptables,如下圖所示:

關閉selinux,如下圖所示:

到了這裡我們的伺服器基本上就配置完成了,過程挺複雜的哈…………

四、客戶端的測試過程

啟動客戶端的機器,有時候不需要將客戶端的機器設置成網路啟動,有的則需要設置成網路啟動.

但要注意的是,設置成網路啟動后,在客戶端安裝完成後一定要及時的將系統設置成硬碟啟動,否則客戶端的系統將一直安裝下去.

這個時候系統已經安裝完畢啦哈…………

五、常見故障排除

5.1 無法分配到IP地址,即dhcp伺服器無法啟動

出現的問題:

解決方法:

如果安裝開始的時候無法分配到IP地址,則說明你伺服器的dhcp.conf配置的有問題,有可能你的語法有問題,比如說少了個分號(;),又或者單詞寫的有問題,這些語法錯誤會導致dhcp服務啟動失敗.

5.2 tftp無法連接

出現的問題:

解決的方法:

主要原因是在你的dhcp.conf文件的next-servertftp-server-name兩個欄位上,如果這兩個欄位沒有正確的指出tftp伺服器的地址的話,一般就會出現這樣的問題.這類問題一般都出現在dhcp伺服器的配置上面,當待安裝機器在區域網內廣播需要分配

IP地址的時候,伺服器會將IP地址和一些安裝文件的地址返回給待安裝機器上,如果dhcp出現了問題則無法將這些地址返回回來,這就導致了待安裝機器不知道從何處來獲取安裝文件.

5.3 tftp已經連接上,但客戶端就是無法啟動

出現的問題:

解決的方法:

這主要是由於,伺服器端的防火牆、iptablesselinux沒有關閉.嘗試著將這些關閉,應該可以解決的.

5.4 無法獲取ks.cfg文件

出現的問題:

可以獲取到

dhcp伺服器分配的IP地址,也可以從tftp伺服器上獲取內核文件,並載入,但是在讀取ks.cfg文件的時候出現了錯誤.如下圖.

解決的方法:

出現了這樣的問題則說明你的客戶端是知道

ks.cfg的位置的,但是就是無法讀取,我們看看伺服器的ks.cfg的許可權,一般都是客戶端的許可權不夠,只要更改一下ks.cfg文件的許可權這樣的問題一般都是可以解決的.使用chmod命令來更改許可權.

六、實驗總結

kickstart技術是伴隨linux,但它確實非常的方便和實用,尤其是在批量安裝系統的方面更是體現出了它的價值.通過本次kickstart實驗,簡單的介紹了nfsdhcptftp等服務的使用方法.由於接觸linux比較晚,此次實驗筆者前前後後做了幾十次的實驗,但其中還是出現較多的錯誤,但筆者相信出錯並不可怕,可怕的是錯了就餒.

此次實驗僅供參考,如當中還有別的錯誤,請原諒,也請大家改正!!!!!!!

本文出自 「藍色北極星」 博客,請務必保留此出處http://houyongkai.blog.51cto.com/2256917/404775


[火星人 ] linux kickstart無人值守批量安裝系統已經有523次圍觀

http://coctec.com/docs/linux/show-post-49523.html