博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SystemImager自动化安装Linux系统(上)
阅读量:5883 次
发布时间:2019-06-19

本文共 9572 字,大约阅读时间需要 31 分钟。

SystemImager”
 
通常人们在安装Linux
操作系统中,常使用是“光盘安装”的传统方式。目前,U
盘安装的方法也逐渐盛行。但是,上述的两种方法只适用于单机部署,对于大规模化的安装操作系统,推荐使用网络引导无人值守的自动化安装操作系统的方式。

我曾经在
一文中介绍了Red Hat
公司基于脚本方式安装的KickStart
如何自动化部署Red Hat Linux
操作系统。使用该方法的优点就是操作系统的软件包只需要一份拷贝;根据不同的组配置,不同的配置文件,当待安装节点通过PXE
网络引导后,就可以安装配置文件指定的软件包,从而完成安装工作。

在实际的部署过程中,我们经常会遇到不仅仅需要成功的安装系统,关键是系统上的应用。(例如:高性能集群、计算机实验室、公司桌面环境。)如何快速、简单、高效地完成整个部署值得大家思考。本文将介绍基于镜像方式安装的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/  
|
-- perl-AppConfig-1.52-4.noarch.rpm  
|
-- systemconfigurator-2.2.11-1.noarch.rpm  
|
-- systemimager-client-4.1.6-1.noarch.rpm  
|
-- systemimager-common-4.1.6-1.noarch.rpm  
`
-- systemimager-i386initrd_template-4.1.6-1.noarch.rpm  
    执行rpm –ivh *.rpm
完成黄金客户端的安装:
 
[root@qiuri client]# rpm -ivh *.rpm  
Preparing...                ########################################### [100%]  
   1:perl-AppConfig         ########################################### [ 20%]  
   2:systemconfigurator     ########################################### [ 40%]  
   3:systemimager-common    ########################################### [ 60%]  
   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.  
*********************************** WARNING ***********************************   
   
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.  
   
*********************************** WARNING ***********************************   
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.  
*********************************** WARNING ***********************************   
   
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
,如需转载请自行联系原作者
你可能感兴趣的文章
[Inside] Behavioral Interview
查看>>
6、NIO--分散读取与聚集写入
查看>>
C++变长参数
查看>>
IO完成端口
查看>>
Python中函数的知识点
查看>>
利用chardet检测网页编码
查看>>
【转】HashMap遍历方法
查看>>
ZCMU Problem G: 素数对(数论,素数筛法)
查看>>
iOS 摇一摇
查看>>
IOS5 ARC(自动引用计数器) 一些属性介绍
查看>>
C#之LINQ与XML
查看>>
Android模拟器端口被占用问题的解决办法
查看>>
双十一背后云计算的支撑
查看>>
《计算机图形学基础(OpenGL版)》使用院校(更新)
查看>>
Python 自用代码(拆分txt文件)
查看>>
Filte和Interceptor的区别
查看>>
C++中的复制、赋值、析构
查看>>
Jquery浅识
查看>>
eclipse 中配置DBCP数据源的步骤
查看>>
一种分页的实现
查看>>