您的位置:首页 > 运维架构 > Linux

无人值守安装Linux之Dhcp+tftp+ks+ftp

2010-01-04 16:31 429 查看
一.适用环境:
1.需要大规模批量部署linux操作系统
2.客户端无光驱或光驱损坏,需要网络安装linux系统
3.需要隔三差五重复安装linux系统,为了减少麻烦,节约时间,提高效率。
二、原理:
在服务器端搭建DHCP、tftp、ftp服务并用kickstart配置自动安装脚本,DHCP服务用于向客户端分配IP,tftp服务用于传输bootloader文件pxelinux.0,ftp服务负责传输安装镜像文件,用kickstart配置的ks.cfg实现无人值守全自动安装。
前提:客户端网卡内置PXE芯片,现在一般网卡都支持pxe协议。
三.具体操作过程(基于RHEL)
1.配ServerIP为:192.168.0.20,安装镜像挂载到/mnt下。

2.安装tftp服务、dhcp服务和ftp服务.

安装前先查看这些服务是否已安装
#rpm-qa|greptftp
#rpm-qa|grepdhcp
#rpm-qa|grepvsftpd
未安装的进行安装
#cd/mnt/RedHat/RPMS/在RHEL5中是cd/mnt/Server
#rpm–ivhdhcp-*
#rpm–ivhtftp-*
#rpm–ivhvsftpd*
3.配置启动DHCP服务
#cpcp/usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample/etc/dhcpd.conf
#vi/etc/dhcpd.conf
添加filename"pxelinux.0";//指定bootloader文件
next-server192.168.0.20;//指定索取pxelinux.0的tftp服务器IP
添加的这两行可在大括号外面,也可在里面,next-server选项可不写,但建议最好写上
配置举例:
ddns-update-styleinterim;
ignoreclient-updates;
subnet192.168.0.0netmask255.255.255.0{
optionrouters192.168.0.1;
optionsubnet-mask255.255.255.0;
optiontime-offset-18000;#EasternStandardTime
rangedynamic-bootp192.168.0.128192.168.0.254;
default-lease-time21600;
max-lease-time43200;
filename"pxelinux.0";
next-server192.168.0.20;
}

#servicedhcpdstart//启动服务
4.复制内核相关文件到/tftpboot下
#cd/tftpboot
#cp/mnt/isolinux/*./(实际需要的是vmlinuz,initrd.img,*.msg这几个文件,但为了操作方便,我直接把isolinux目录下的文件全cp过来)
#mkdirpxelinux.cfg
#mvisolinux.cfgpxelinux.cfg/default(default配置文件的作用是告诉主机从哪里去加载操作系统内核)
#cp/usr/lib/syslinux/pxelinux.0./(将启动加载文件拷到/tftpboot下)
5.修改tftp参数并启动tftp服务

#vi/etc/xinetd.d/tftp
[align=center]……………………………………………………………………………………[/align]
servicetftp
{
socket_type=dgram
protocol=udp
wait=yes
user=root
server=/usr/sbin/in.tftpd
server_args=-s/tftpboot
disable=no
per_source=11
cps=1002
flags=IPv4
}
[align=center]…………………………………………………………………………………………[/align]
/tftpboot这个参数主要是指定tftpclient客户端从服务器的哪个目录去加载bootloader的pxelinux.0文件。
#servicexinetdrestart//启动服务
或者不改tftp参数直接启动
#chkconfigtftpon
#servicexinetdrestart
6.修改/tftpboot/pxelinux.cfg/default文件
#vi/tftpboot/pxelinux.cfg/default
修改第3行,第12行.
1defaultlinux
2prompt1
3timeout10//时间调小点
4displayboot.msg
5F1boot.msg
6F2options.msg
7F3general.msg
8F4param.msg
9F5rescue.msg
10labellinux
11kernelvmlinuz
12appendks=ftp://192.168.0.20/pub/ks.cfginitrd=initrd.img
13labeltext
……
7.安装kickstart配置ks.cfg
#cd/mnt/RedHat/RPMS/
#rpm–ivh*kickstart*

#system-config-kickstart(在图形界面终端打此命令)

根据需要配置ks.cfg.

ks.cfg保存到/var/ftp/pub目录下。
#chmod707/var/ftp/pub/ks.cfg//修改ks.cfg权限
ks.cfg文件,最终配置示例如下:
#GeneratedbyKickstartConfigurator
#platform=x86,AMD64,orIntelEM64T
#Systemlanguage
langen_SG
#Languagemodulestoinstall
langsupportzh_CNen_US--default=en_SG
#Systemkeyboard
keyboardus
#Systemmouse
mouse
#Sytemtimezone
timezoneAsia/Shanghai
#Rootpassword
rootpw--iscrypted$1$2qm1.E7d$/p/NGomGdh00jvBeeIyLR.
#Rebootafterinstallation
reboot
#InstallOSinsteadofupgrade
install
#UseNFSinstallationMedia
url--urlftp://192.168.0.20/iso#Systembootloaderconfiguration
bootloader--location=mbr
#CleartheMasterBootRecord
zerombryes
#Partitionclearinginformation
clearpart--all--initlabel
#Diskpartitioninginformation
clearpart--all--initlabel
#Diskpartitioninginformation
partswap--size512
part/boot--fstypeext3--size100
part/--fstypeext3--size1--grow
#Systemauthorizationinfomation
auth--useshadow--enablemd5
#Networkinformation
network--bootproto=dhcp--device=eth0
#Firewallconfiguration
firewall--disabled
#XWindowsconfigurationinformation
xconfig--depth=8--resolution=640x480--defaultdesktop=GNOME
#Packageinstallinformation
%packages--resolvedeps
@base-x//最小化安装(如果用kickstart不能选择安装包时需要手动添加)
如果是RHEL5需要手动添加一行
key--skip//跳过安装序列号
8.配置启动vsftpd服务
#mkdir/var/ftp/iso
#cp/mnt/*/var/ftp/iso(将安装镜像文件cp到/var/ftp/iso)
#servicevsftpdstart
9.为保证实验一次成功,将所有服务都重新启动一下
#servicedhcpdrestart
#servicexinetdrestart
#servicevsftpdrestart
10.在一客户端上进行测试(与server在同一局域网内).
提示:客户端在确定domainname和hostname时会等几分钟时间请耐心等待
※成功标志:能顺利跳过各项设置到开始自动安装软件包代表服务器配置没问题(客户端只能有个开机动作)

本文出自“老林的技术笔记”博客,请务必保留此出处http://lilinqing.blog.51cto.com/1122687/256248
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: