在大规模的linux应用环境中,如web集群、分布式计算等,服务器往往并不具备光驱设备,这种情况下为数十乃至上百台服务器裸机快速安装系统,传统的U盘、移动光驱等安装方法显然力所难及,下面我们将部署基于PXE技术网络装机并结合Kickstart配置实现无人值守自动安装系统。
PXE是由Inter公司开发的基于Client/Server模式的网络引导技术,其核心功能是让客户端通过网络从远端服务器下载引导镜像,从而实现网络启动。整个过程中,客户端要求服务器分配IP地址,再用TFTP协议下载位于服务器上的引导启动镜像到本机内存中并执行实现系统安装,但这样的技术指只能实现从网络启动,当读取进入安装界面后,剩余的步骤如语言设置、系统管理员密码、网络参数等还需要手工配置。自此,我们仅可以实现无光盘网络启动,如要实现无人值守自动安装,还需要Kickstart技术。
Kicksatrt是目前主要的一种无人值守自动部署安装操作系统的方式,这种技术核心是自动应答文件,将本来在安装过程中需要手洞设置的语言、密码、网络参数等通过读取自动应答文件实现自动设置。
自动应答文件(Kickstart文件)可以通过如下三中方式生成:
1、手动书写
2、通过system-config-kickstart图形工具(本文采用这种)
3、通过红帽的安装程序Anaconda自动生成

一、安装部署DHCP服务器
yum install -y dhcp
# vim /etc/dhcp/dhcpd.conf
log-facility local7;
subnet 192.168.3.0 netmask 255.255.255.0{
range 192.168.3.200 192.168.3.250;
option domain-name-servers 8.8.8.8;
option routers 192.168.3.1;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.3.253;
filename "pxelinux.0";
}
service dhcpd start
chkconfig dhcpd on
配置说明:
指定为192.168.3.0/24网络分配动态IP地址;动态地址池从192.168.3.200至192.168.3.250;
客户端获取的DNS为8.8.8.8;客户端获取的网关为192.168.3.1;
TFTP地址为192.168.3.253;启动文件为pxelinux0;
二、安装部署TFTP服务器
yum install -y tftp-server
# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot #共享路径
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
三、将客户端所需要的配置文件复制到TFTP服务器
yum install -y syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
将centos6.4光盘放入光驱,从光盘中复制启动镜像文件和启动配置文件至TFTP共享目录
umount /dev/cdrom
mount /dev/cdrom /media
cp /media/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
chmod 644 /var/lib/tftpboot/pxelinux.cfg/default
修改启动配置如下
# vim /var/lib/tftpboot/pxelinux.cfg/default
default linux
timeout 600
display boot.msg
menu title Welcome to CentOS 6.4!
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=nfs:192.168.3.254:/ks/ks.cfg
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
配置说明
Default指定默认引导方式;
以label开始的名称为linux的正常引导,另一种是名称为rescue救援模式的引导;
Default决定了默认使用哪种引导方式引导安装程序;
Kernel指定的是系统内核文件
通过访问192.168.3.254的NFS共享方式读取Kickstart文件;
重启TFTP服务并设置为开机启动,关闭防火墙
service xinetd restar
chkconfig xinetd on
service iptables stop
四、创建Kickstart自动应答文件
在192.168.3.254主机上安装图形软件system-cofnig-kickstart yum install -y system-config-kickstart mkdir /ks/ system-config-kickstart
①配置语言为英文,键盘为美式键盘,时区为上海,root管理员密码自己定义

②配置安装方式为全新安装,安装文件通过NFS读取,NFS服务器为192.168.3.254,共享目录/media

③全新安装GRUB引导,不设置引导密码,将系统引导程序安装于MBR区域

正确规划分区方案
例如划分一个200MB的/boot分区
2GB的交换分区
剩余空间划分给根分区
注:通过图形生成的Kickstart文件无法使用LVM逻辑卷分区,要使用只能修改生成后的Kickstart文件

④单击Add Network Device按钮添加网络设备eth0,并设置为通过DHCP获得网络参数

⑤认证设置,所有的用户密码都使用SHA512算法加密

⑥设置selinux和防火墙

⑦显示配置,这里我们不勾选安装图形界面

⑧选择安装包


⑨此处可以写入在系统安装前需要运行的脚本呢,若没有特殊需要,该脚本可以为空

⑩可以写入安装系统后需要运行的部署脚本,常用脚本为创建YUM源、初始化用户账号密码、部署软件服务等,如果没有特殊需求,该脚本可为空

所有的配置选项设置完成后,通过file菜单中的Save,将生成的Kickstart文件保存至/ks目录下,取名ks.cfg
# ll /ks/ks.cfg -rw-r--r--. 1 root root 1067 Jul 12 06:41 /ks/ks.cfg
五、部署NFS服务器
service iptables stop # rpm -qa|grep rpcbind # rpm -qa|grep nfs-utils yum install -y rpcbind nfs-utils /etc/init.d/rpcbind start # vi /etc/exports /ks 192.168.3.0/255.255.255.0(ro) /media 192.168.3.0/255.255.255.0(ro) /etc/init.d/nfs start
六、将系统光盘或ISO文件通过NFS共享
方式一:光盘 umount /dev/cdrom mount /dev/cdrom /media 方式二:ISO镜像文件 mount -o loop -t iso9660 镜像文件 /media
七、启动客户端,安装部署系统
在所有客户端主机的BIOS中,将第一启动方式设置为PXE网络启动,设置完成后,所有的客户端计算机即可完成大规模集中安装操作系统
原文:http://www.cnblogs.com/sellsa/p/5062164.html