因为之前的工作需要搭建红帽实验室环境,由于机器数量比较多,所有需要批量自动化无人值守安装系统,所以我尝试使用RHEL5+PXE+DHCP+Apache+Kickstart安装了RHCE5.1 i386实验室环境,并取得了成功,不过过程比较漫长,所以我特地记录下PXE+DHCP+Apache+Kickstart无人值守安装的过程。另外,我在博客发表了相应的文章,很多热心的读者根据文章内容已成功批量安装了红帽RHEL系统或CentOS5.x,并提出了许多宝贵的意见,在这里表示感谢。现阶段,由于需要大规模应用CentOS5.8 x86_64系统用于集群环境,所以将此方法主要用于在公司内网批量安装新服务器系统,这极大地简化了用光盘重复安装CentOS5.8 x86_64的过程,再加上分布式自动化运维工具puppet进行批量部署,达到了自动化运维的目的,避免了重复性劳动,极大的提高了工作效率。
首先,我们来介绍一下与之相关的原理和概念。
1. 什么是PXE
严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。
2. 什么是Kickstart
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为 ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找 Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。
3. PXE + Kickstart的安装条件和详细步骤
执行PXE+Kickstart安装需要的设备为:
DHCP 服务器。
TFTP 服务器。
Kickstart所生成的ks.cfg配置文件。
一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器。
一个带有 PXE 支持网卡的主机。
系统环境介绍如下:
服务器系统为CentOS5.6 x86_64,IP为192.168.11.29(此服务器并非一定要限定为CentOS5.8 x86_64系统),由于是最小化安装的,我们在后面要用到system-config-kickstart工具,它必须依赖于X windows,所以我们要提前安装好X windows及gnome并重启系统,步骤如下所示:
先装X windows和GNOME桌面环境,命令如下所示:
yum -y groupinstall 'X Window System'
yum -y groupinstall 'GNOME Desktop Environment'
然后修改/etc/inittab文件并重启服务器,使其运行在图形模式下,主要修改文件内容如下所示:
id:5:initdefault:
重启服务器命令如下:
reboot
完成上述的准备工作后,PXE+DHCP+Apache+Kickstart无人值守安装CentOS5.8安装的步骤如下:
(1)我们先下载CentOS5.8 x86_64光盘至/usr/local/src下,并挂载至/mnt/cdrom目录下,并确认系统已安装好httpd服务,如下:
cd /usr/local/src
wget
mkdir –p /mnt/cdrom
接下来我们挂载光盘ISO文件至/mnt/cdrom目录下,如下命令:
mount -o loop CentOS-5.8-x86_64-bin-DVD-1of2.iso /mnt/cdrom
CetnOS5.x x86_64系列已默认安装Apache,我们可以用命令看下其版本号,如下所示:
rpm -q httpd
命令显示结果如下所示:
httpd-2.2.3-65.el5.CentOS
(2)接下来我们复制光盘下的所有内容(文件和文件夹)到/var/html/www(此目录为Apache默认DocumentRoot目录)下,无论是红帽系统还是CentOS 5.x系统,如果是最小化安装,基本上第一张DVD光盘文件就够了,复制命令如下所示:
cp -rf /mnt/cdrom /var/html/www