4. 步骤2:配置安装服务器

安装服务器在安装期间提供对 Linux 安装介质和无人值守安装配置文件的访问。安装介质存储在服务器上的一个目录中,可以使用各种网络协议访问它,比如 HTTPFTP,和NFS。使用NFS协议,Red Hat Linux安装程序可以支持多种安装介质目录结构,尤其是支持ISO光盘镜像文件。这里我们选择使用NFS协议来访问安装介质。

配置NFS服务器

1) 准备ISO安装介质。将Red Hat Linux安装介质的ISO文件都放置到/instsvr目录下。注意不要改变文件名。

 

[root@bsvr]#mkdir /instsvr

[root@bsvr]#mv RHEL4-U2-i386-AS-disc1.iso /instsvr/i386/rhel4u2

[root@bsvr]#mv RHEL4-U2-i386-AS-disc2.iso /instsvr/i386/rhel4u2

[root@bsvr]#mv RHEL4-U2-i386-AS-disc3.iso /instsrv/i386/rhel4u2

[root@bsvr]#mv RHEL4-U2-i386-AS-disc4.iso /instsrv/i386/rhel4u2

2) 编辑NFS服务器配置文件 /etc/exports,以允许其它机器通过NFS访问目录/instsrv/etc/exports 文件内容如下:

 

/instsvr   *(ro,no_root_squash,sync)

其中:

* 表示任何IP地址都可以访问该目录。为了安全的考虑,也可以指定具体的IP地址。

ro 表示远程机器对该目录只有读权限。

其它选项请参考NFS手册。

3) 重新启动NFS服务以使新配置生效

[root@bsvr]# service nfs restart

4) 检测目录/instsrv是否已被正确共享

[root@bsvr]#showmount -e localhost

Export list for localhost:

/instsrv *

这样,我们就设置好了一个安装服务器。很简单吧!

配置kickstart安装

自从 5.2 版开始, Red Hat Linux 开始支持一个称为 kickstart 的功能,其主要目的是为了减少安装过程中的人机交互,提高安装效率。使用这种方法,只需事先定义好一个配置文件(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了繁琐的人机交互,实现无人值守的自动化安装。

要使用 kickstart ,你必须:

1) 创建 kickstart 配置文件。

2) 部署kickstart配置文件,即将kickstart配置文件放置到安装服务器上,并在安装程序的kernel参数中指定kickstart配置文件的位置。

创建kickstart配置文件

kickstart 配置文件是一个简单的文本文件,包含一个安装项目列表。每个项目对应于一个安装选择,都用关键字标明。

有如下几种方法生成kickstart配置文件:

Red Hat提供了一个样例文件。在Red Hat Linux 文档光盘中 RH-DOCS 目录里的 sample.ks 文件。你可以基于该样例来创建你自己的配置kickstart文件。

每当你安装好一台Red Hat Linux机器,Red Hat Linux 安装程序都会创建一个 kickstart 配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件。

Red Hat Linux提供了一个图形化的kickstart配置工具。在任何一个安装好的Red Hat Linux系统上运行该工具,就可以很容易地创建你自己的kickstart配置文件。kickstart配置工具命令为redhat-config-kickstartRHEL3)或system-config-kickstartRHEL4

阅读kickstart配置文件的手册。用任何一个文本编辑器都可以创建你自己的kickstart配置文件。

这里有一个kickstart配置文件样例:

01 # Kickstart file automatically generated by anaconda.

02

03 install

04 nfs --server=192.168.138.1 --dir=/instsvr/i386/rhel4u2

05 lang en_US.UTF-8

06 langsupport --default=en_US.UTF-8 en_US.UTF-8

07 keyboard us

08 xconfig --card "VMWare" --videoram 16384 --hsync 31.5-37.9 --vsync 50-70

--resolution 800x600 --depth 16

09 network --device eth0 --bootproto DHCP

10 rootpw -iscrypted

11 firewall --disabled

12 selinux --enforcing

13 authconfig --enableshadow --enablemd5

14 timezone Asia/Shanghai

15 bootloader --location=mbr

16 # The following is the partition information you requested

17 # Note that any partitions you deleted are not expressed

18 # here so unless you clear all partitions first, this is

19 # not guaranteed to work

20 clearpart --all

21 part / --fstype ext2 --size=8000

22 part swap --size=1000

23

24 %packages

25 @ admin-tools

26 @ editors

27 @ emacs

28 @ text-internet

29 @ legacy-network-server

30 @ dialup

31 @ ftp-server

32 @ compat-arch-support

33 @ legacy-software-development

34 @ smb-server

35 @ base-x

36 @ kde-desktop

37 @ server-cfg

38 @ development-tools

39 kernel-smp

40 system-config-samba

41 rsh-server

42 grub

43 kernel-devel

44 kernel-smp-devel

45 e2fsprogs

所有以"#"号开头的都是注释。

文件中的nfs --server=192.168.138.1 --dir=/instsvr/i386/rhel4u2选项告诉安装程序:到服务器192.168.138.1NFS共享目录/instsvr/i386/rhel4u2下寻找安装介质。Red Hat Linux安装程序足够聪明,可以识别该目录下应该被读取的ISO光盘镜像文件名,所有这里你不需要指定ISO文件名。

关于kickstart配置文件支持的所有选项及其相信说明,请查阅参考资料3

部署kickstart配置文件

首先我们需要把kickstart配置文件放在安装服务器上。我们把它放到/instsvr/ks目录下。即该文件的NFS访问路径为:

nfs:192.168.138.1:/instsvr/ks/ks.cfg

其次,我们需要让安装程序知道我们希望它用kickstart方式安装,并告知它可以从哪里获得kickstart配置文件。这可以通过给内核添加一个参数"ks=kickstart配置文件路径"来实现。我们只需对启动服务器上的default文件做一些小修改就可以做到这点:

LABEL    rhel4u2-i386

KERNEL vmlinuz-rhel4u2-i386

APPEND ks=nfs:192.168.138.1:/instsvr/ks/ks.cfg initrd=initrd-rhel4u2-i386.img  

ramdisk_size=8192

这样在启动安装程序的时候,参数ks=nfs:192.168.138.1:/instsvr/ks/ks.cfg会被传递给它,告诉它使用这个文件作为kickstart配置文件来进行kickstart安装。

 

5. 步骤3:从网络启动机器以完成安装

前面的配置工作完成后,下面我们就在待安装机器上通过网络以无人值守的方式来安装Red Hat Enterprise Linux AS 4 Update 2

1). 启动待安装机器,选择从网卡启动。具体方法因BIOS版本不同而异。图2是从VMWare虚拟机上得到的选择网络启动的屏幕截图。

2 BIOS选择网络启动

 

2). 网卡中的PXE代码会联系DHCP服务器来获取IP地址以及启动镜像,然后启动镜像被载入并运行,你可以看到你自己定义的一个Linux列表如图3,选择你需要安装的系统版本。

3 网络启动后pxelinux.0的提示界面

 

3). 安装程序内核被启动(图4)。

4 安装程序anaconda开始运行

 

4). 安装程序会读取kickstart配置文件开始无人值守安装。安装过程中它会根据kickstart配置文件中指定的安装介质地址,安装指定的软件包(图5)。

5 安装程序在安装软件包

 

5). 直到安装结束(图6),你都不需要做任何工作。

6 安装成功完成

 

6). 安装完成后,安装程序会提示你重新启动机器。重新启动机器时切记要在BIOS里改成从硬盘启动。如果仍然从光盘启动机器,又会重复前面的自动安装步骤。 

 

6. 总结

本文介绍了一种基于网络(网络启动+网络安装)的无人值守Red Hat Linux安装方法。在需要安装大量机器的情况下,以及在需要提供自助安装服务的情况下,该方法可以节约大量人力。

本文中的示例只涉及了PC平台上的一种Red Hat Linux版本--RHEL AS 4。事实上,本文中的方法可以非常容易地推广到其它Red Hat Linux版本和其它硬件平台,如:

1. 其它Red Hat Linux版本

Red Hat Enterprise Linux 3, 4 的所有edition (AS, ES, WS, Desktop)

Red Hat Linux 9

Fedora Core 5

2. 其它硬件平台

64Intel架构及兼容架构服务器(使用AMD64EMT64处理器)

对其它Linux厂家的产品,只要利用上它们的无人值守安装功能,也可以制造出类似的全自动安装方案。例如,Novell SuSE Linux就提供了AutoYast功能来实现无人值守安装。关于使用AutoYast的具体操作,请参阅参考资料4 

参考资料

PXE (Pre-boot Execution Environment) 是由Intel设计的从网络启动Intel架构计算机的协议。IBM开发者园地(中文)中有一篇文章相信介绍了PXE的原理。 http://www-128.ibm.com/developerworks/cn/linux/l-tip-prompt/l-pex/

IBM开发者园地(中文)中有一篇文章详细介绍了在IBM pSeries服务器上通过网络安装Linux的过程。从中读者可以看到很多设置安装服务器的细节,如安装介质目录该如何组织,各种网络访问协议都支持哪些目录组织。 http://www-128.ibm.com/developerworks/cn/linux/es-linux-pservers/

本文中的不少操作用到了RHEL 3的一些系统管理命令。读者可以参考 RHEL 3 reference guide 来熟悉这些操作的使用。 http://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/ref-guide/

SuSE Linux提供了AutoYast功能来实现无人值守安装。具体操作可以参考OpenSUSEYast Autoinstallation文档 http://en.opensuse.org/YaST_Autoinstallation