读书频道 > 网站 > 网页设计 > 构建高可用Linux服务器(第2版)
1.1.2 使用PXE+DHCP+Apache+KickStart无人值守安装
12-08-10    叶孤城
收藏    我要投稿   
本书是资深Linux/Unix系统管理专家兼架构师多年一线工作经验的结晶,51CTO和ChinaUnix等知名社区联袂推荐。第1版上市后广获好评,分别被《程序员》杂志和51CTO网站评选为2011年度10大最具技术影响力的图书和2011...立即去当当网订购
因为工作中有批量安装系统的需要,所以我尝试使用RHEL5+PXE+DHCP+Apache+KickStart安装了RHCE实验室环境,并取得了成功,但过程比较漫长。我特地记录下了KickStart的无人值守安装过程。现阶段,此方法主要用于在公司内批量安装大量的新服务器系统,然后上架到公网IDC机房,这极大地简化了用光盘重复安装CentOS 5.5的过程,提高了工作效率。以下安装方法在32位的RHEL 5.1/5?2/5?3下也可以通过,当然同样适用于32位和64位的CentOS 5.5系列了。
首先,我们来介绍一下与之相关的原理和概念。
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支持网卡的主机
安装的具体步骤如下。
1)安装httpd,代码如下所示:
 
yum -y install httpd*
2)挂载RHEL 5.1的DVD光盘,并复制光盘下的所有内容(文件和文件夹)到/var/www/html下。无论是RHEL还是CentOS的光盘,如果是最小化安装,基本上第一张DVD光盘就足够了,挂载及复制的代码如下所示:
 
mount /dev/cdrom /mnt
cp -rf /mnt/* /var/www/html
3)安装tftp?server,并启用tftp服务,同时启动xinetd进程,代码如下所示:
 
1.rpm -ivh tftp-server-0.39-1.i386.rpm
2.vi /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer\
#protocol. The tftp protocol is often used to boot diskless\
#workstations, download configuration files to network-aware printers,\
#and to start the installation process for some operating systems.
service tftp
{
 socket_type = dgram
 protocol = udp
 wait = yes
 user = root
 server = /usr/sbin/in.tftpd
 server_args = -s /tftpboot
 disable = no #disable的值由yes变为no
 per_source = 11
 cps = 100 2
 flags = IPv4
}
3.service xinetd restart
4)配置支持PXE的启动程序(注意:前面已经把第一张光盘的内容复制到/var/www/html目录中了,所以需要文件时只要从/var/www/html目录中复制就行了。但是在这里描述的时候,我还是标明了文件的真实位置,比如在DVD光盘的哪个文件中,便于大家理解)。
建立tftpboot文件夹,如下所示(若该文件夹已经存在则不用建立):
 
mkdir -p tftpboot
复制pxelinux?0文件至tftpboot文件夹中,如下所示:
 
cp /usr/lib/syslinux/pxelinux.0 /tftpboot
把Linux第一张安装光盘上的/image/pxeboot/initrd?img和vmlinux复制到/tftpboot/中,如下所示:
 
cp /var/ftp/image/pxeboot/initrd.img /tftpboot
cp /var/ftp/image/pxeboot/vmlinux /tftpboot
复制第一张安装光盘上的isolinux/*?msg到/tftpboot目录下,如下所示:
 
cp /var/ftp/isolinux/*.msg /tftpboot
在tftpboot中新建一个pxelinux?cfg目录如下:
 
mkdir pxelinux.cfg
把第一张安装光盘上isolinux目录中的isolinux?cfg复制到pxelinux?cfg目录中,同时更改文件名称为default,代码如下:
 
cd pxelinux.cfg
cp /var/ftp/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
在上一个步骤中,暂时不要修改default文件,进行到这一步时,虽然已经可以通过网络来引导并手动安装KickStart了,但是由于这里讨论的是无人值守安装,所以先不修改这个default文件。
5)安装DHCP服务,同时修改如下配置:
 
rpm -ivh dhcp-3.0.1-12_EL.i386.rpm
然后复制配置模板文件到指定的目录中,并重新命名:
 
cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf
接着修改配置文件,添加一行:filename "/pxelinux?0"(注意写入的位置,不然会导致安装失败,切记!)。其他的修改大家可以根据如下代码完成:
 
[root@localhost isolinux]# vim /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
next-server 192.168.1.14;#PXE服务器IP地址
filename "/pxelinux.0";
 
subnet 192.168.1.0 netmask 255.255.255.0 {
# --- default gateway
 option routers192.168.1.254;
 option subnet-mask255.255.255.0;
 option nis-domain "example.com";
 option domain-name"example.com";
 option domain-name-servers192.168.1.254;
 
 option time-offset-18000; # Eastern Standard Time
#option ntp-servers192.168.1.1;
#option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#option netbios-node-type 2;
 range dynamic-bootp 192.168.1.128 192.168.1.254;
 default-lease-time 21600;
 max-lease-time 43200;
 # we want the nameserver to appear at a fixed address
 #host ns {
#next-server marvin.redhat.com;
# hardware ethernet 12:34:56:78:AB:CD;
# fixed-address 192.168.1.110;
 #}
}
最后启动DHCP服务如下:
 
service dhcpd start
6)安装KickStart,同时配置KickStart。
首先需要安装KickStart工具包,在RHEL最小化安装系统时,此软件包并没有默认安装。命令如下所示:
 
rpm -ivh system-config-kickstart-2.5.16-2.noarch.rpm
在gnome环境下配置KickStart。命令如下所示:
 
system-config-kickstart
运行上面的命令后可以对系统的一些基本配置进行设置,例如选择时区、设置Root的密码等。
接下来便要进行安装了,建议选择httpd安装,在安装过程中,根据引导选择安装选项,不需要做更改。
KickStart会让我们选择需要批量安装的RHEL分区信息,按照上一节所介绍的CentOS 5.5 x86_64的安装方法,我们创建4个分区,即/、/boot、/data和swap分区。
在进行网络配置时,我使用的是静态分配地址(动态同样如此),这里跟前面进行光盘安装是一样的。
设置显示配置时可以按照我们的习惯选择。
关于软件包的选择,大家可以根据实际的工作需求来选择自己需要的软件包,尽量不要同时安装Kernel Development和Development Tools,不然的话在安装的时候很容易出错。
其他都选择默认设置,不需要修改。
最后将生成的文件ks?cfg保存到/var/www/html下。
7)修改/tftpboot/pxelinux?cfg/default文件,指定读取ks?cfg的方法(ks=http://192?168?1?40/ks?cfg)。
8)vim /var/www/html/ks?cfg,代码如下所示:
 
auth --useshadow --enablemd5
key --skip #一定要有这一行,用来跳过注册码输入,不然安装会失败
bootloader --location=mbr
clearpart --all --initlabel
text
firewall --disabled
firstboot --disable
keyboard us
lang en_US
logging --level=info
url --url=http://192.168.1.14/
network --bootproto=dhcp --device=eth0 --onboot=on
reboot
rootpw --iscrypted$1$HEJKfwF9$r1l0JoPz74ToF9NbE3Qs1
selinux --disabled
timezone --isUtc Asia/Shanghai
intall
xconfig --defaultdesktop=GNOME -depth=8 --resolution=640x480
part swap --bytes-per-inode=4096 --fstype="swap" --size=512
part /boot --bytes-per-inode=4096 --fstype-"ext3" --size=200
part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
%packages
@cluster-storage
@mysql
@development-libs
@editors
@text-internet
@x-software-development
@virtualization
@legacy-network-server
@dns-server
@gnome-desktop
@dialup
@core
@base
@ftp-server
@network-server
@clustering
@java-development
@base-x
@chinese-support
@web-server
@smb-server
@printing
@admin-tools
@development-tools
@graphical-internet
kmod-gnbd-XEN
kmod-gfs-XEN
perl-Convert-ASN1
perl-Crypt-SSLeay
mesa-libGLU-devel
tftp-server
kexec-tools
bridge-utils
device-mapper-multipath
ypserv
openldap-servers
vnc-server
dhcp
xorg-x11-server-Xnest
xort-x11-server-Xvfb
imake
gcc-objc
expect
9)重新引导安装,问题解决了,最终安装成功
以上是我的配置步骤,如果完全照此操作,是一定可以成功安装的!本节内容我在自己的博客里也有发表过,很多朋友按照此方法配置成功了。他们也提出许多宝贵的意见,本节内容也是在此基础上修改而成的
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站