天天看點

SystemImager自動化安裝Linux系統(上)

SystemImager”

通常人們在安裝Linux作業系統中,常使用是“CD光牒安裝”的傳統方式。目前,U盤安裝的方法也逐漸盛行。但是,上述的兩種方法隻适用于單機部署,對于大規模化的安裝作業系統,推薦使用網絡引導無人值守的自動化安裝作業系統的方式。

在實際的部署過程中,我們經常會遇到不僅僅需要成功的安裝系統,關鍵是系統上的應用。(例如:高性能叢集、計算機實驗室、公司桌面環境。)如何快速、簡單、高效地完成整個部署值得大家思考。本文将介紹基于鏡像方式安裝的SystemImager部署Linux作業系統。

一、SystemImager簡介

SystemImager是System Installation Suite的一部份,創始人Brian Elliott Finley。目前的維護者和項目小組的上司者是Andrea Righi。該軟體支援所有的GUN/Linux版本,釋出軟體及快速部署生産環境。其主要特點如下:

SystemImager的一個主要特征是與發行版本無關,并且能支援不同種類的硬體。這一特征可以讓我們将任何種類的GNU/Linux(标準的發行版本或者自定義的版本)部署到目标機器。此項目的主要目标是實作輕松,快捷的部署大量的節點。典型的應用環境包括計算機實驗室,render farms(注:視覺農場,很多大片在後期制作所使用的圖形渲染的工作站,類似于超級計算機),Internet伺服器中心,資料庫伺服器中心,公司桌面環境等。SystemImager已經被證明了在叢集計算環境中很流行,如:網格計算和高性能計算。

另一個設計上便于GNU/Linux發行以及不依賴于硬體的特點是SystemImager處理的是基于系統鏡像的檔案。鏡像以檔案形式儲存目錄體系節構,即為樣本節點的一個全面的快照,包含節點根檔案系統中所有檔案及目錄。鏡像以多種方法獲得,包括從目标系統(golden client)中獲得,或應用第三方工具直接在鏡像伺服器中生成。

二、SystemImager工作原理

   三、部署systemimager服務

要部署systemimager服務,一共需要一下幾個步驟:

(1)  安裝鏡像伺服器

(2)  安裝黃金用戶端

(3)  制作黃金用戶端鏡像

(4)配置systemimager服務

(5)克隆作業系統

1、安裝鏡像伺服器:

首先,到SystemImager官方網站下載下傳安裝鏡像伺服器所需的軟體包,官方提供了sis-install腳本,可以快速的下載下傳所需的軟體包。當然,也可以到網站上單個的下載下傳。鏡像伺服器所需的軟體包清單如下所示:

server  

|-- perl-AppConfig-1.52-4.noarch.rpm  

|-- systemconfigurator-2.2.11-1.noarch.rpm  

|-- systemimager-common-4.1.6-1.noarch.rpm  

|-- systemimager-i386boot-standard-4.1.6-1.noarch.rpm  

`-- systemimager-server-4.1.6-1.noarch.rpm 

在安裝的過程中,注意軟體包的依賴關系,確定以安裝perl-XML-Simple、perl-XML-Parser等軟體包。執行如下指令開始安裝:

[root@localhost server]# rpm -ivh *.rpm  

error: failed to stat /media/RHEL_5.4 i386 DVD: No such file or directory  

Preparing...                ########################################### [100%]  

   1:perl-AppConfig         ########################################### [ 20%]  

   2:systemconfigurator     ########################################### [ 40%]  

   3:systemimager-common    ########################################### [ 60%]  

   4:systemimager-server    ########################################### [ 80%]  

Stopping xinetd: [  OK  ]  

Starting xinetd: [  OK  ]  

   5:systemimager-i386boot-s########################################### [100%]  

[root@localhost server]# 

2、安裝黃金(Golden)用戶端:

要建立golden client,你必須安裝systemimager-client包。黃金用戶端所需的軟體包清單如下所示:

client/  

|-- systemimager-client-4.1.6-1.noarch.rpm  

`-- systemimager-i386initrd_template-4.1.6-1.noarch.rpm 

    執行rpm –ivh *.rpm完成黃金用戶端的安裝:

[root@qiuri client]# rpm -ivh *.rpm  

   4:systemimager-client    ########################################### [ 80%]  

   5:systemimager-i386initrd########################################### [100%]  

[root@qiuri client]# 

3、制作黃金用戶端鏡像

當你安裝完畢後,就可以以root身份執行si_prepareclient指令,執行後會在/etc/systemimager目錄下生成許多檔案,其中包含分區方案,檔案系統類型等。同時si_prepareclient也會在黃金用戶端上啟動一個rsync程序,以便SystemImager伺服器可以擷取通路它的檔案的權限,并通過網絡複制檔案到鏡像伺服器中。 

[root@qiuri ~]# si_prepareclient --server 172.16.0.10  

Welcome to the SystemImager si_prepareclient command.  This command may modify 

the following files to prepare your golden client for having it's image   

retrieved by the imageserver.  It will also create the /etc/systemimager   

directory and fill it with information about your golden client.  All modified  

files will be backed up with the .before_systemimager-4.1.6 extension.  

 /etc/services:  

   This file defines the port numbers used by certain software on your system.  

   Entries for rsync will be added if necessary.  

 /tmp/fileO0rkKZ:  

   This is a temporary configuration file that rsync needs on your golden client  

   in order to make your filesystem available to your SystemImager server.  

 inetd configuration:  

   SystemImager needs to run rsync as a standalone daemon on your golden client  

   until it's image is retrieved by your SystemImager server.  If rsyncd is   

   configured to run as a service started by inetd, it will be temporarily  

   disabled, and any running rsync daemons or commands will be stopped.  Then,  

   an rsync daemon will be started using the temporary configuration file  

   mentioned above.  

See "si_prepareclient --help" for command line options.  

Continue? (y/[n]): y  #輸入“y”,繼續。  

*********************************** WARNING ***********************************   

This utility starts an rsync daemon that makes all of your files accessible  

by anyone who can connect to the rsync port of this machine.  This is the   

case until you reboot, or kill the 'rsync --daemon' process by hand.  By   

default, once you use si_getimage to retrieve this image on your imageserver,   

these contents will become accessible to anyone who can connect to the rsync   

port on your imageserver.  See rsyncd.conf(5) for details on restricting   

access to these files on the imageserver.  See the systemimager-ssh package  

for a more secure method of making images available to clients.  

Continue? (y/[n]): y  #再次輸入"y"。

-rw-r--r-- 1 root root 1855956 Apr 10 21:31 /etc/systemimager/boot/kernel  

Starting or re-starting rsync as a daemon.....  

done!  

This client is ready to have its image retrieved.  You must now run   

the "si_getimage" command on your imageserver.  

Your client has been successfully prepared.  Boot kernel (copied from 

this Linux distribution) and an initrd.img (generated by the  

initrd_template package) can be found in /etc/systemimager/boot.  

Automatically create configuration file for systemconfigurator:  

  >> /etc/systemconfig/systemconfig.conf  

[root@qiuri ~]# 

    我們可以使用ps –ef指令來檢查si_prepareclient腳本工作是否正常,可以看到一個正在運作的rsync守護程序(使用/tmp/rsyncd.conf檔案作為配置檔案)在等待發送檔案到網絡的請求。

[root@qiuri ~]# ps -ef |grep rsync   

root      3812     1  0 15:46 ?        00:00:00 rsync --daemon --port=873 --config=/tmp/filerqgMEG  

root      3846  3539  0 15:47 pts/2    00:00:00 grep rsync 

現在可以在鏡像伺服器上執行si_getimage,将鏡像(即:黃金用戶端上的内容)從黃金用戶端複制到鏡像伺服器。預設情況下,鏡像被存儲在SystemImager伺服器上的/var/lib/SystemImager/images目錄。

注意:鏡像伺服器上有足夠的磁盤空間用于存儲黃金用戶端鏡像。

基本的文法是:“si_getimage -golden-client [client_hostname] -image [image_name]”

其中[client_hostname]是golden client的主機名或IP位址,[image_name]是你想要給存儲鏡像的名稱。--post-install reboot選項指定克隆一台機器後用戶端重新啟動計算機,-directory選項可以指定鏡像存儲的路徑。可以用“man si_getimage”檢視更多其它的選項。

[root@localhost ~]# si_getimage --golden-client 172.16.0.2 -image vfast_backup   

--post-install reboot -directory /systemimager/  

This program will get the "vfast_backup" system image from "172.16.0.2" 

making the assumption that all filesystems considered part  

of the system image are using ext2, ext3, jfs, FAT, reiserfs, or xfs.  

This program will not get /proc, NFS, or other filesystems  

not mentioned above.  

All files retrieved from a golden client are, by default, made accessible to   

anyone who can connect to the rsync port of this machine.  See rsyncd.conf(5)  

for details on restricting access to these files on the imageserver.  See the  

systemimager-ssh package for a more secure (but less effecient) method of   

making images available to clients.  

See "si_getimage --help" for command line options.  

Continue? ([y]/n):y  #輸入"y"繼續

黃金用戶端開始複制檔案到鏡像伺服器,如下所示:

usr/share/zoneinfo/right/Navajo => usr/share/zoneinfo/right/US/Mountain  

usr/share/zoneinfo/right/America/Denver => usr/share/zoneinfo/right/US/Mountain  

usr/share/zoneinfo/right/America/Shiprock => usr/share/zoneinfo/right/US/Mountain  

usr/share/zoneinfo/right/America/Los_Angeles => usr/share/zoneinfo/right/US/Pacific  

usr/share/zoneinfo/right/Pacific/Pago_Pago => usr/share/zoneinfo/right/US/Samoa  

usr/share/zoneinfo/right/Pacific/Samoa => usr/share/zoneinfo/right/US/Samoa  

sent 3524467 bytes  received 3232535951 bytes  1941830.43 bytes/sec  

total size is 3411616325  speedup is 1.05  

------------- vfast_backup IMAGE RETRIEVAL FINISHED -------------  

Press <Enter> to continue... 

複制完成後,提示按“Enter”鍵繼續,鍵入“Enter”後,需要讓我們選擇為克隆用戶端選擇擷取IP位址的方式。有以下三種方式供大家選擇:

l DHCP:伺服器安裝完成後會使用DHCP獲得IP,非靜态

l STATIC:安裝過程中使用的IP會成為安裝用戶端的靜态IP

l REPLICANT:安裝後不會配置網絡,作為備份或者快速恢複單機的機制

 根據實際情況選擇,這裡我選擇使用DHCP,直接回車即可。

There are three ways to assign IP addresses to the client systems on an  

ongoing basis:  

1) DHCP  

   ----------------------------------------------------------------  

   A DHCP server will assign IP addresses to clients installed with 

   this image.  They may be assigned a different address each time.  

   If you want to use DHCP, but must ensure that your clients  

   receive the same IP address each time, see "man si_mkdhcpstatic".  

2) STATIC 

   The IP address the client uses during autoinstall will be  

   permanently assigned to that client.  

3) REPLICANT  

   Don't mess with the network settings in this image.  I'm using  

   it as a backup and quick restore mechanism for a single machine.  

Which method do you prefer? [1]:    #直接回車

You have chosen method 1 for assigning IP addresses. 

接下來,讓我們确認配置以及馬上配置si_clusterconfig指令,直接回車即可。到此,整個黃金用戶端鏡像制作完成。可以到存儲鏡像的目錄檢視建立好的鏡像。

Are you satisfied? ([y]/n):   

Would you like to run the "si_clusterconfig" utility now? (y/[n]): 

     本文轉自yjlsy 51CTO部落格,原文連結:http://blog.51cto.com/baidu/294329,如需轉載請自行聯系原作者