分类: LINUX
2008-04-28 20:13:50
1. 方案介绍
这种方案需要首先设置一个启动服务器和一个安装服务器(可以配置在同一台物理机上),然后通过网络启动存放在启动服务器上的安装程序。安装程序会自动访问存放在安装服务器上的安装配置文件和安装介质来完成安装。
该方案主要应用了三种技术:
1) 在PC上从网络启动Red Hat Linux安装程序的PXE协议
2) Red Hat Linux安装程序提供的网络安装功能(即指通过网络访问安装介质)
3) Red Hat Linux 安装程序提供的无人值守安装功能(Red Hat称为kickstart)
技术1)和2)在参考资料1和2里已有部分介绍。本文将重点描述参考资料中未涉及部分和无人值守安装功能。
要按本文介绍的方法完成自动化安装,你需要如下软硬件资源:
1) 配置启动服务器
2) 配置安装服务器
3) 从网络启动机器以完成安装
步骤1)和2)只需做一次即可。对每一台需安装Red Hat Linux的机器,都需要在启动服务器和安装服务器中部署相应的数据,并执行一次步骤3)。
下面将带领您逐一执行这些步骤。为了简单,我将用示例来说明如何在一台安装了 Red Hat Enterprise Linux AS 3 Update 5 的 PC 机上设置启动服务器和安装服务器,并在一台PC上安装 Red Hat Enterprise Linux AS 4 Update 2。
2步骤1:配置启动服务器
启动服务器的目的是帮助在待安装机器上启动Red Hat Linux 安装程序。启动服务器上需要搭建一个DHCP 服务器和一个TFTP 服务器。前者是为了给待安装机器分配IP地址,后者则是提供了一个让待安装机器下载启动镜像的途径。
1) 安装DHCP服务器包(RPM包名:dhcpd)。
2) 编辑DHCP服务器配置文件 /etc/dhcp.conf。这里是一个示例:
在这个例子中,定义的子网是 192.168.138.0/255.255.255.0。主机定义项testserver指出 IP 地址 192.168.138.30 将分配给以太网卡00:
每增加一台需安装的机器,我们需在dhcpd.conf中增加一条host条目。
3) 给启动服务器配置一个IP,这个IP必须在DHCP服务器定义的子网内。
这里我们使用192.168.138.1。关于如何为Red Hat Linux系统配置IP地址,请查阅参考资料3。
4) 启动DHCP服务。
1) 安装TFTP服务器包(RPM包名:tftpd)。
2) 编辑TFTP 服务器的配置文件 /etc/xinetd.d/tftp。配置文件如下:
这里选定了/tftpboot为TFTP 服务器的根目录位置。
3) 将Linux安装程序的内核/根文件系统文件复制到 TFTP 服务器的根目录。对于每一个要被安装的Red Hat Linux版本,都需要执行一次该操作。
Red Hat Linux第一张安装光盘/isolinux目录下会包含Linux安装程序的内核/根文件系统文件。下面一段命令将这些文件复制到TFTP服务器的根目录下,并按照版本重新命名。
4) 将启动镜像文件pxelinux.0复制到TFTP服务器根目录。
启动镜像pxelinux.0可以在syslinux安装包里获得。安装好syslinux安装包后,将pxelinux.0复制到TFTP服务器根目录。
5) 编辑pxelinux.0的配置文件,以使pxelinux可以正确载入Red Hat Linux安装程序。对于每一个要被安装的Red Hat Linux版本,都需要执行一次该操作。
启动镜像pxelinux.0文件在执行过程中,会读取配置文件以确定它应该载入什么Linux内核文件来运行。所有的配置文件都放在启动服务器的/tftpboot/pxelinux.cfg/目录下。pxelinux.0根据一定的规则来搜索合适的配置文件名。举例来说,对于前面为待安装机器分配的IP地址192.168.138.30(十六进制表示为C
就是说,如果C
可以将能想到的Red Hat Linux版本的配置都写在default文件里,以便同时支持多种Red Hat Linux版本,如下所示(对于具体某个 Red Hat Linux版本,对应的行该如何写,可以参考它安装盘里的配置文件 /isolinux/isolinux.cfg):
这样用户可以通过输入某种版本的LABEL(例如,rhel4u2-i386)来选择具体的安装版本。为了能在安装时知道有哪些备选,可以让pxelinux.0提示要户选择之前显示一个列表。这通过在default里指定DISPLAY选项来实现。在上面的样例中,我们将所有备选Red Hat Linux版本列在文件pxelinux.cfg/list中,它的内容会被pxelinux.0显示出来。
在我们的例子中,/tftpboot/pxelinux.cfg/list文件内容如下:
6) 启动TFTP服务。
3步骤2:配置安装服务器
安装服务器在安装期间提供对 Linux 安装介质和无人值守安装配置文件的访问。安装介质存储在服务器上的一个目录中,可以使用各种网络协议访问它,比如 HTTP,FTP,和NFS。使用NFS协议,Red Hat Linux安装程序可以支持多种安装介质目录结构,尤其是支持ISO光盘镜像文件。这里我们选择使用NFS协议来访问安装介质。
1) 准备ISO安装介质。将Red Hat Linux安装介质的ISO文件都放置到/instsvr目录下。注意不要改变文件名。
2) 编辑NFS服务器配置文件 /etc/exports,以允许其它机器通过NFS访问目录/instsrv。/etc/exports 文件内容如下:
其中:
3) 重新启动NFS服务以使新配置生效
4) 检测目录/instsrv是否已被正确共享
这样,我们就设置好了一个安装服务器。很简单吧!
自从 5.2 版开始, Red Hat Linux 开始支持一个称为 kickstart 的功能,其主要目的是为了减少安装过程中的人机交互,提高安装效率。使用这种方法,只需事先定义好一个配置文件(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了繁琐的人机交互,实现无人值守的自动化安装。
要使用 kickstart ,你必须:
1) 创建 kickstart 配置文件。
2) 部署kickstart配置文件,即将kickstart配置文件放置到安装服务器上,并在安装程序的kernel参数中指定kickstart配置文件的位置。
kickstart 配置文件是一个简单的文本文件,包含一个安装项目列表。每个项目对应于一个安装选择,都用关键字标明。
有如下几种方法生成kickstart配置文件:
这里有一个kickstart配置文件样例:
所有以"#"号开头的都是注释。
文件中的nfs --server=192.168.138.1 --dir=/instsvr/i386/rhel4u2选项告诉安装程序:到服务器192.168.138.1的NFS共享目录/instsvr/i386/rhel4u2下寻找安装介质。Red Hat Linux安装程序足够聪明,可以识别该目录下应该被读取的ISO光盘镜像文件名,所有这里你不需要指定ISO文件名。
关于kickstart配置文件支持的所有选项及其相信说明,请查阅参考资料3。
首先我们需要把kickstart配置文件放在安装服务器上。我们把它放到/instsvr/ks目录下。即该文件的NFS访问路径为:
其次,我们需要让安装程序知道我们希望它用kickstart方式安装,并告知它可以从哪里获得kickstart配置文件。这可以通过给内核添加一个参数"ks=kickstart配置文件路径"来实现。我们只需对启动服务器上的default文件做一些小修改就可以做到这点:
这样在启动安装程序的时候,参数ks=nfs:192.168.138.1:/instsvr/ks/ks.cfg会被传递给它,告诉它使用这个文件作为kickstart配置文件来进行kickstart安装。
步骤3:从网络启动机器以完成安装
前面的配置工作完成后,下面我们就在待安装机器上通过网络以无人值守的方式来安装Red Hat Enterprise Linux AS 4 Update 2。
1. 启动待安装机器,选择从网卡启动。具体方法因BIOS版本不同而异。
|