基于网络的RedHat系统无人值守安装Word格式.docx
《基于网络的RedHat系统无人值守安装Word格式.docx》由会员分享,可在线阅读,更多相关《基于网络的RedHat系统无人值守安装Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
1)机器无光驱、光驱坏了(这种情况在现实中频繁发生)或光盘坏了,无法从光驱安装Linux。
2)软件测试人员在搭建测试环境时,需要安装大量的RedHatLinux测试机器时。
这时采用手工安装方式逐台机器安装效率会很低。
3)对IT支持人员来说,指导一个RedHatLinux生手安装RedHatLinux系统会耗费很多时间。
日复一日重复这种工作会浪费宝贵的人力资源。
从降低商业成本和提高安装系统效率的角度出发,本文向大家介绍一种方案--基于网络的RedHat无人值守安装。
该方案将很多安装准备工作在服务器上一次性完成,这样在客户机上安装时就不需要为每个客户机重复这些工作,节省了时间和成本,提高了效率。
在一次性的环境配置工作完毕后,该套方案能达到非常高的自动化程度:
用户只需要执行很少的手工步骤即可完成安装。
安装过程中的手工步骤和自动步骤如下:
1)手工步骤:
开机,选择从网络启动。
如果你的方案配置得比较负责复杂灵活,也许还需要你选择安装何种系统。
总之,手工步骤非常少。
2)自动化步骤:
剩余步骤,包括系统配置,硬盘分区,和程序包安装,将全部自动完成。
2.方案介绍
这种方案需要首先设置一个启动服务器和一个安装服务器(可以配置在同一台物理机上),然后通过网络启动存放在启动服务器上的安装程序。
安装程序会自动访问存放在安装服务器上的安装配置文件和安装介质来完成安装。
涉及到的技术
该方案主要应用了三种技术:
1)在PC上从网络启动RedHatLinux安装程序的PXE协议
2)RedHatLinux安装程序提供的网络安装功能(即指通过网络访问安装介质)
3)RedHatLinux安装程序提供的无人值守安装功能(RedHat称为kickstart)
技术1)和2)在参考资料1和2里已有部分介绍。
本文将重点描述参考资料中未涉及部分和无人值守安装功能。
软硬件需求
要按本文介绍的方法完成自动化安装,你需要如下软硬件资源:
一台PC机器作为启动和安装服务器(其它架构机器也可以)
一台待安装的PC机器,它的网卡必须带有PXE支持
一个建好的局域网,上述两台机器已经连接入同一子网
待安装的RedHatLinux安装介质
方案原理示意图
图1是网络安装环境的一个原理示意图。
整个安装环境由一个局域网,和连接到该局域网的三台机器组成:
启动服务器(BootServer),安装服务器(InstallationServer),和待安装机器(Client)。
其中启动服务器和安装服务器可以部署在同一台物理机上。
表1列出了对这些机器的软硬件要求,和其上负载的服务与数据。
图1网络安装原理示意图
表1网络安装环境里各机器上的软硬件配置
该方案的实现步骤
1)配置启动服务器
2)配置安装服务器
3)从网络启动机器以完成安装
步骤1)和2)只需做一次即可。
对每一台需安装RedHatLinux的机器,都需要在启动服务器和安装服务器中部署相应的数据,并执行一次步骤3)。
下面将带领您逐一执行这些步骤。
为了简单,我将用示例来说明如何在一台安装了RedHatEnterpriseLinuxAS3Update5的PC机上设置启动服务器和安装服务器,并在一台PC上安装RedHatEnterpriseLinuxAS4Update2。
3.步骤1:
配置启动服务器
启动服务器的目的是帮助在待安装机器上启动RedHatLinux安装程序。
启动服务器上需要搭建一个DHCP服务器和一个TFTP服务器。
前者是为了给待安装机器分配IP地址,后者则是提供了一个让待安装机器下载启动镜像的途径。
配置DHCP服务器
1)安装DHCP服务器包(RPM包名:
dhcpd)。
2)编辑DHCP服务器配置文件/etc/dhcp.conf。
这里是一个示例:
optiondomain-name"
mydomain"
;
ddns-update-stylenone;
max-lease-time7200;
server-name"
bootserver"
default-lease-time600;
allowbooting;
allowbootp;
subnet192.168.138.0netmask255.255.255.0{
range192.168.138.1192.168.138.254;
denyunknown-clients;
}
grouppxe{
filename"
pxelinux.0"
hosttestserver{hardwareethernet00:
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:
5B(待安装机器),文件pxelinux.0(在TFTP服务器的根目录中)将作为启动映像被网卡ROM里的PXE客户端载入内存并运行。
每增加一台需安装的机器,我们需在dhcpd.conf中增加一条host条目。
3)给启动服务器配置一个IP,这个IP必须在DHCP服务器定义的子网内。
这里我们使用192.168.138.1。
关于如何为RedHatLinux系统配置IP地址,请查阅参考资料3。
4)启动DHCP服务。
[root@bsvr]#servicedhcpdrestart
配置TFTP服务器
1)安装TFTP服务器包(RPM包名:
tftpd)。
2)编辑TFTP服务器的配置文件/etc/xinetd.d/tftp。
配置文件如下:
servicetftp
{
socket_type=dgram
protocol=udp
wait=yes
user=root
server=/usr/sbin/in.tftpd
server_args=-s/tftpboot
disable=no
这里选定了/tftpboot为TFTP服务器的根目录位置。
3)将Linux安装程序的内核/根文件系统文件复制到TFTP服务器的根目录。
对于每一个要被安装的RedHatLinux版本,都需要执行一次该操作。
RedHatLinux第一张安装光盘/isolinux目录下会包含Linux安装程序的内核/根文件系统文件。
下面一段命令将这些文件复制到TFTP服务器的根目录下,并按照版本重新命名。
[root@bsvr]#mkdir/mnt/iso
[root@bsvr]#mount-oloop,roRHEL4-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-rhel4u2-i386.img
[root@bsvr]#mv/tftpboot/vmlinuz/tftpboot/vmlinuz-rhel4u2-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可以正确载入RedHatLinux安装程序。
启动镜像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文件中是个不错的主意,可以减轻配置文件维护负担。
可以将能想到的RedHatLinux版本的配置都写在default文件里,以便同时支持多种RedHatLinux版本,如下所示(对于具体某个RedHatLinux版本,对应的行该如何写,可以参考它安装盘里的配置文件/isolinux/isolinux.cfg):
DEFAULTrhel4u2-i386
DISPLAYpxelinux.cfg/list
PROMPT1
LABELrhel3u6-i386
KERNELvmlinuz-rhel3u6-i386
APPENDinitrd=initrd-rhel3u6-i386.img
LABELrhel3u6-x86_64
KERNELvmlinuz-rhel3u6-x86_64
APPENDinit