文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Red Hat 无人值守安装

Red Hat 无人值守安装

时间:2009-03-02  来源:zhandonghe

基于网络的 Red Hat 无人值守安装

 

本文介绍了 PC 平台上的一种快速 Red Hat Linux 安装方案。它具有很高的自动化程度--用户只需手工启动机器并选择从网络启动,就可以完成整个安装过程。在需要批量安装大量 Red Hat Linux 系统和需要技术人员 Red Hat Linux 安装支持的情况下,这种方案可以节省大量的时间。而且由于不需要额外的软件和光驱和软驱等硬件设备,在成本上也有很大优势。所有安装 Red Hat Linux 的开发/测试人员,和 IT 支持人员都能够从本文中获益。读者在阅读本文前需要有 Red Hat Linux 的安装经验。

1. 引言

一般情况下,安装Linux需要从光驱用安装光盘启动机器,然后进入交互式安装界面输入安装所需的各种配置完成安装。在下面这些情况下,这种安装方式就会暴露出缺点:

1) 机器无光驱、光驱坏了(这种情况在现实中频繁发生) 或光盘坏了,无法从光驱安装Linux。

2) 软件测试人员在搭建测试环境时,需要安装大量的Red Hat Linux测试机器时。这时采用手工安装方式逐台机器安装效率会很低。

3) 对IT支持人员来说,指导一个Red Hat Linux生手安装Red Hat Linux系统会耗费很多时间。日复一日重复这种工作会浪费宝贵的人力资源。

从降低商业成本和提高安装系统效率的角度出发,本文向大家介绍一种方案--基于网络的Red Hat无人值守安装。该方案将很多安装准备工作在服务器上一次性完成,这样在客户机上安装时就不需要为每个客户机重复这些工作,节省了时间和成本,提高了效率。

在一次性的环境配置工作完毕后,该套方案能达到非常高的自动化程度:用户只需要执行很少的手工步骤即可完成安装。安装过程中的手工步骤和自动步骤如下:

1) 手工步骤:开机,选择从网络启动。如果你的方案配置得比较负责复杂灵活,也许还需要你选择安装何种系统。总之,手工步骤非常少。

2) 自动化步骤:剩余步骤,包括系统配置,硬盘分区,和程序包安装,将全部自动完成。

 

2. 方案介绍

这种方案需要首先设置一个启动服务器和一个安装服务器(可以配置在同一台物理机上),然后通过网络启动存放在启动服务器上的安装程序。安装程序会自动访问存放在安装服务器上的安装配置文件和安装介质来完成安装。

涉及到的技术

该方案主要应用了三种技术:

1) 在PC上从网络启动Red Hat Linux安装程序的PXE协议

2) Red Hat Linux安装程序提供的网络安装功能(即指通过网络访问安装介质)

3) Red Hat Linux 安装程序提供的无人值守安装功能(Red Hat称为kickstart)

技术1)和2)在参考资料1和2里已有部分介绍。本文将重点描述参考资料中未涉及部分和无人值守安装功能。

软硬件需求

要按本文介绍的方法完成自动化安装,你需要如下软硬件资源:

ü  一台PC机器作为启动和安装服务器(其它架构机器也可以)

ü  一台待安装的PC机器,它的网卡必须带有PXE支持

ü  一个建好的局域网,上述两台机器已经连接入同一子网

ü  待安装的Red Hat Linux安装介质

方案原理示意图

图1是网络安装环境的一个原理示意图。整个安装环境由一个局域网,和连接到该局域网的三台机器组成:启动服务器(Boot Server),安装服务器(Installation Server),和待安装机器(Client)。其中启动服务器和安装服务器可以部署在同一台物理机上。表1列出了对这些机器的软硬件要求,和其上负载的服务与数据。

图1 网络安装原理示意图


表1 网络安装环境里各机器上的软硬件配置

该方案的实现步骤

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。

 

3. 步骤1:配置启动服务器

启动服务器的目的是帮助在待安装机器上启动Red Hat Linux 安装程序。启动服务器上需要搭建一个DHCP 服务器和一个TFTP 服务器。前者是为了给待安装机器分配IP地址,后者则是提供了一个让待安装机器下载启动镜像的途径。

配置DHCP 服务器

1) 安装DHCP服务器包(RPM包名:dhcpd)。

2) 编辑DHCP服务器配置文件 /etc/dhcp.conf。这里是一个示例:

option domain-name "mydomain";

ddns-update-style none;

 

max-lease-time 7200;

server-name "bootserver";

default-lease-time 600;

 

allow booting;

allow bootp;

 

subnet 192.168.138.0 netmask 255.255.255.0 {

    range 192.168.138.1 192.168.138.254;

    deny unknown-clients;

}

group pxe {
    next-server 192.168.138.1;

filename "pxelinux.0";

    host testserver { hardware ethernet 00:0C:29:70:24:5B; fixed-address

         192.168.138.30; }

}

在这个例子中,定义的子网是 192.168.138.0/255.255.255.0。主机定义项testserver指出 IP 地址 192.168.138.30 将分配给以太网卡00:0C:29:70:24:5B(待安装机器),文件 pxelinux.0(在 TFTP 服务器的根目录中)将作为启动映像被网卡ROM里的PXE客户端载入内存并运行。每增加一台需安装的机器,我们需在dhcpd.conf中增加一条host条目。

3) 给启动服务器配置一个IP,这个IP必须在DHCP服务器定义的子网内。这里我们使用192.168.138.1。关于如何为Red Hat Linux系统配置IP地址,请查阅参考资料3。

4) 启动DHCP服务。

[root@bsvr] #service dhcpd restart

配置TFTP服务器

1) 安装TFTP服务器包(RPM包名:tftpd)。

2) 编辑TFTP 服务器的配置文件 /etc/xinetd.d/tftp。配置文件如下:

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /tftpboot

        disable                 = no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

 

这里选定了/tftpboot为TFTP 服务器的根目录位置。

3) 将Linux安装程序的内核/根文件系统文件复制到 TFTP 服务器的根目录。对于每一个要被安装的Red Hat Linux版本,都需要执行一次该操作。Red Hat Linux第一张安装光盘/isolinux目录下会包含Linux安装程序的内核/根文件系统文件。下面一段命令将这些文件复制到TFTP服务器的根目录下,并按照版本重新命名。

[root@bsvr]#mkdir /mnt/iso

[root@bsvr]#mount -o loop,ro RHEL5-U2-i386-AS-disc1.iso  /mnt/iso

[root@bsvr]#cp /mnt/iso/isolinux/initrd.img /tftpboot

[root@bsvr]#cp /mnt/iso/isolinux/vmlinuz /tftpboot

[root@bsvr]#mv /tftpboot/initrd.img /tftpboot/initrd-rhel5u2-i386.img

[root@bsvr]#mv /tftpboot/vmlinuz /tftpboot/vmlinuz-rhel5u2-i386

4) 将启动镜像文件pxelinux.0复制到TFTP服务器根目录。

启动镜像pxelinux.0可以在syslinux安装包里获得。安装好syslinux安装包后,将pxelinux.0复制到TFTP服务器根目录。

[root@bsvr]#cp /usr/lib/syslinux/pxelinux.0 /tftpboot/

5) 编辑pxelinux.0的配置文件,以使pxelinux可以正确载入Red Hat Linux安装程序。对于每一个要被安装的Red Hat Linux版本,都需要执行一次该操作。

启动镜像pxelinux.0文件在执行过程中,会读取配置文件以确定它应该载入什么Linux内核文件来运行。所有的配置文件都放在启动服务器的/tftpboot/pxelinux.cfg/目录下。pxelinux.0根据一定的规则来搜索合适的配置文件名。举例来说,对于前面为待安装机器分配的IP地址192.168.138.30(十六进制表示为C0A88A1E),pxelinux.0会按如下次序搜索配置文件:

C0A88A1E > C0A88A1 > … > C0 > C > default

就是说,如果C0A88A1E文件存在,它就是pxelinux.0将载入的配置文件。否则,继续往下找。如果C0A88A1文件存在,它就是pxelinux.0将载入的配置文件。如果前面的以C开头的文件都不存在,那么pxelinux.0将试图从文件default中读取配置。对于一台需要支持很多安装机器的安装服务器来说,将配置写在与IP地址对应的文件里很不灵活。把所有配置都集中在default文件中是个不错的主意,可以减轻配置文件维护负担。

可以将能想到的Red Hat Linux版本的配置都写在default文件里,以便同时支持多种Red Hat Linux版本,如下所示(对于具体某个 Red Hat Linux版本,对应的行该如何写,可以参考它安装盘里的配置文件 /isolinux/isolinux.cfg):

 

default rhel5u2-i386

display pxelinux.cfg/list

timeout 600

prompt 1

 

label rhel3u6-i386

        kernel vmlinuz-rhel3u6-i386

        append initrd=initrd-rhel3u6-i386.img

 

label rhel3u6-x86_64

        kernel vmlinuz-rhel3u6-x86_64

        append initrd=initrd-rhel3u6-x86_64.img devfs=nomount ramdisk_size=9216

 

label rhel5u2-i386

        kernel vmlinuz-rhel5u2-i386

        append ks=nfs:192.168.138.1:/instsvr/ks/ks.cfg initrd=initrd-rhel5u2-i38

6.img ramdisk_size=8192

 

这样用户可以通过输入某种版本的LABEL(例如,rhel5u2-i386)来选择具体的安装版本。为了能在安装时知道有哪些备选,可以让pxelinux.0提示要户选择之前显示一个列表。这通过在default里指定DISPLAY选项来实现。在上面的样例中,我们将所有备选Red Hat Linux版本列在文件pxelinux.cfg/list中,它的内容会被pxelinux.0显示出来。

在我们的例子中,/tftpboot/pxelinux.cfg/list文件内容如下:

 

Choose one of the following Linux distributions for your installation:

Name           Distribution   Arch.   Installation media

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

rhel3u6-i386   RHEL 3 AS U6   i386 192.168.138.1:/instsvr/i386/rhel3u6

rhel3u6-x86_64 RHEL 3 AS U6 x86_64  192.168.138.1:/instsvr/x86_64/rhel3u6

rhel5u2-i386   RHEL 5 AS U2   i386    192.168.138.1:/instsvr/i386/rhel5u2

 

6) 启动TFTP服务。

[root@bsvr]#service xinetd  restart

 

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

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

配置NFS服务器

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

[root@bsvr]#mkdir /instsvr

[root@bsvr]#mv RHEL5-U2-i386-AS-disc.iso /instsvr/i386/rhel5u2

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-kickstart(RHEL3)或system-config-kickstart(RHEL4)

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

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

# Kickstart file automatically generated by anaconda.

 

install

nfs --server=192.168.138.1 --dir=/instsvr/i386/rhel5u2

 

lang en_US.UTF-8

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

 

keyboard us

 

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

lution 800x600 --depth 16

skipx

 

#network --device eth0 --bootproto DHCP

network --bootproto dhcp --nodns --hostname pxeClient

#rootpw -iscrypted

rootpw pASSword

firewall --disabled

selinux --enforcing

 

authconfig --enableshadow --enablemd5

 

timezone Asia/Shanghai

bootloader --location=mbr

 

## Partitioning Information

## Which partitions to format/clear  (--linux/--all).  Default is only Linux!

## (Use wipe.cfg to get --all )

 

#clearpart  --linux

 

## Which partitions to set up on new system, as well as sizes

## (This partitioning should fit in a 10GB hardrive with a little extra)

 

# The following is the partition information you requested

# Note that any partitions you deleted are not expressed

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

# not guaranteed to work

clearpart --all

part /boot --size   128  --fstype=ext3 --asprimary

part /     --size   8000  --fstype=ext3 --asprimary

part swap  --size   512 

 

%packages

@ admin-tools

@ editors

@ emacs

@ text-internet

@ legacy-network-server

@ dialup

@ ftp-server

@ compat-arch-support

@ legacy-software-development

@ smb-server

@ base-x

@ kde-desktop

@ server-cfg

@ development-tools

kernel-smp

system-config-samba

rsh-server

grub

kernel-devel

kernel-smp-devel

e2fsprogs

 

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

文件中的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配置文件

首先我们需要把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安装。

 

此次测试是在RHEL5.2下配置过程。

 

摘自:http://www.ibm.com/developerworks/cn/linux/l-autoinstl/

感谢原创的分享

 

相关阅读 更多 +
排行榜 更多 +
爱是小事最新版

爱是小事最新版

休闲益智 下载
悬案2刹那惊颤游戏

悬案2刹那惊颤游戏

冒险解谜 下载
几何飞行内购修改版

几何飞行内购修改版

飞行射击 下载