linux基于网络的批量安装教程,DHCP服务器+TFTP服务器+FTP服务器 +Kickstart文件,


准备:

DHCP服务器

TFTP服务器

FTP服务器

Kickstart文件

拥有PXE ROM芯片,支持网络启动的客户端,即要安装系统的裸机

Linux镜像文件

这里用一台主机同时提供DHCP,TFTP,FTP三种服务,kickstart也放在这台服务器上。

原理

远程客户端计算机启动,由于BIOS设置了网卡启动,所以网卡PXE ROM中的程序被调入内存执行。首先,客户端在网络中寻找DHCP服务器,然后请求一个IP地址;同时DHCP服务器联系到TFTP服务器为此客户端发送一个bootstrap(引导程序)。客户端收到bootstrap(文件pxelinux.0)后执行,bootstrap会请求TFTP传送bootstrap的配置文件(pxelinux.cfg)。收到后读配置文件。根据配置文件内容和客户情况,客户端请求TFTP传送内核映象文件(vmlinuz)和根文件系统文件(initrd.img)。最后启动内核。这就是一个完整的pxe构建过程。然而要使网卡启动后再继续网络安装系统,则最后还需要FTP服务将系统所需安装文件放置FTP相应目录中进行传输安装。

安装

[plain] view plain copy

#yum–disablerepo=\*--enablerepo=c5-mediainstalldchp*tftp*ftp*system-config-kickstart*

配置服务

安装完DHCP后,其配置文件为空。我们可以根据其文档中的样本修改

[plain] view plain copy

[root@pxe~]#cat/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample>>/etc/dhcpd.conf

然后修改其内容

[plain] view plain copy

[root@pxe~]#vi/etc/dhcpd.confddns-update-styleinterim;

ignoreclient-updates;allowbooting;#新添加

allowbootp;#新添加subnet192.168.128.0netmask255.255.255.0{

#---defaultgateway

optionrouters192.168.128.1;optionsubnet-mask255.255.255.0;

optionnis-domain"domain.org";

optiondomain-name"domain.org";#optiondomain-name-servers192.168.128.1;#注释此行,以加快启动

optiontime-offset-18000;#EasternStandardTime

#optionntp-servers192.168.1.1;#optionnetbios-name-servers192.168.1.1;

#---Selectspoint-to-pointnode(defaultishybrid).Don'tchangethisunless#--youunderstandNetbiosverywell

#optionnetbios-node-type2;

rangedynamic-bootp192.168.128.150192.168.128.200;filename"/pxelinux.0";#指定启动文件

next-server192.168.128.111;#指定服务器IPdefault-lease-time21600;

max-lease-time43200;

#wewantthenameservertoappearatafixedaddresshostns{

next-servermarvin.redhat.com;hardwareethernet12:34:56:78:AB:CD;

fixed-address207.175.42.254;}

}

修改TFTP的配置

[plain] view plain copy

[root@pxe~]#cat/etc/xinetd.d/tftp#default:off

#description:Thetftpserverservesfilesusingthetrivialfiletransfer\#protocol.Thetftpprotocolisoftenusedtobootdiskless\

#workstations,downloadconfigurationfilestonetwork-awareprinters,\#andtostarttheinstallationprocessforsomeoperatingsystems.

servicetftp{

socket_type=dgramprotocol=udp

wait=yesuser=root

server=/usr/sbin/in.tftpdserver_args=-s/tftpboot

disable=no#将yes改为noper_source=11

cps=1002flags=IPv4

}

FTP使用匿名登录,使用默认目录/var/ftp,配置不做修改,只需将linux镜像文件放在/var/ftp下。

[plain] view plain copy

[root@pxe~]#ls/var/ftp/cdrom/CentOSimagesRELEASE-NOTES-csRELEASE-NOTES-de.htmlRELEASE-NOTES-en_USRELEASE-NOTES-es.htmlRELEASE-NOTES-jaRELEASE-NOTES-nl.htmlRELEASE-NOTES-roRPM-GPG-KEY-beta

EULAisolinuxRELEASE-NOTES-cs.htmlRELEASE-NOTES-enRELEASE-NOTES-en_US.htmlRELEASE-NOTES-frRELEASE-NOTES-ja.htmlRELEASE-NOTES-pt_BRRELEASE-NOTES-ro.htmlRPM-GPG-KEY-CentOS-5GPLNOTESRELEASE-NOTES-deRELEASE-NOTES-en.htmlRELEASE-NOTES-esRELEASE-NOTES-fr.htmlRELEASE-NOTES-nlRELEASE-NOTES-pt_BR.htmlrepodataTRANS.TBL

 

在TFTP服务安装完后,会创建一个/tftpboot目录,这个目录便是我们用来放置bootstrap引导程序(pxelinux.0),bootstrap配置文件(default),内核映像(vmlinuz)和文件系统文件(initrd.img)的。这里我们需要先创建一个pxelinux.cfg目录,并将default文件放在其下。

[plain] view plain copy

[root@pxe~]#ll/tftpboot/总计9828

-rw-r--r--1rootroot805661404-1800:57initrd.img-rw-r--r--1rootroot1314804-1920:22pxelinux.0

drwxr-xr-x2rootroot409604-2018:40pxelinux.cfg-rw-r--r--1rootroot195366004-1920:21vmlinuz

[root@pxe~]#ll/tftpboot/pxelinux.cfg/总计8

-rwxr-xr-x1rootroot39604-1922:03default

上述四个文件的来源:

[plain] view plain copy

[root@pxe~]#cp/usr/lib/syslinux/pxelinux.0/tftpboot/[root@pxe~]#cd/var/ftp/cdrom/isolinux/

[root@pxeisolinux]#pwd/var/ftp/cdrom/isolinux

[root@pxeisolinux]#cpinitrd.imgisolinux.cfgvmlinuz/tftpboot/

这里的isolinux.cfg就是我们的default文件,我们需要更名并放在pxelinux.cfg目录下

[plain] view plain copy

[root@pxetftpboot]#mkdirpxelinux.cfg/[root@pxetftpboot]#mvisolinux.cfgpxelinux.cfg/

[root@pxetftpboot]#cdpxelinux.cfg/[root@pxepxelinux.cfg]#mvisolinux.cfgdefault

 

default文件我们还需要一些设置

[plain] view plain copy

[root@pxepxelinux.cfg]#videfaultdefaultlinux

prompt1timeout600

displayboot.msgF1boot.msg

F2options.msgF3general.msg

F4param.msgF5rescue.msg

labellinuxkernelvmlinuz

#ks=ftp://192.168.128.111/ks.cfg指向的是ftp服务器/var/ftp下的文件,这个文件就是linux安装的应答文件,即我们前面说的Kickstart文件appendks=ftp://192.168.128.111/ks.cfginitrd=initrd.img

labeltextkernelvmlinuz

appendinitrd=initrd.imgtextlabelks

kernelvmlinuzappendksinitrd=initrd.img

labellocallocalboot1

labelmemtest86kernelmemtest

append-

kickstart文件的制作可以参考Kickstart的配置和使用

最后要将ks.cfg文件放在/var/ftp下

[plain] view plain copy

[root@pxeftp]#ll总计24

drwxr-xr-x7rootroot409604-1923:04cdrom-rw-r--r--1rootroot139904-2020:41ks.cfg

drwxr-xr-x2rootroot409604-2020:43pub

 

启动服务

启动DHCP服务

[plain] view plain copy

[root@pxeftp]#servicedhcpdstart

启动TFTP服务

[plain] view plain copy

[root@pxeftp]#servicexinetdstart启动FTP服务[plain] view plain copy

[root@pxeftp]#servicevsftpdstart

至此,服务器配置完成。

将裸机选择从网络启动即可。

\

出处:http://blog.csdn.net/limb99/article/details/7481878

补充:基于图形界面的kickstart配置使用

操作系统:CentOS_5.5_Final(64bit)

首先安装system-config-kickstart

#yum –disablerepo=\* --enablerepo=c5-media install system-config-kickstart*

更改文件名 CentOS-Base.repo为CentOS-Base.repo.bk

#mv /etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.bk

如果没有做着一步,当你启动Kickstart的时候它会到官网去更新mirrorlist,把它改名后,kickstart就会根据本地的光盘镜像获取mirrorlist。

添加base标签

#vi /etc/yum.repos.d/CentOS-Media.repo 添加如下内容

[base]

name=base

baseurl=file:///media/CentOS_5.5_Final/ #这个是你的光盘挂载点

enable=1

gpgcheck=0

\

这一步没有去做的话就会出现下面的题

\

OK,现在可以使用system-config-kickstart命令启动kickstart程序了。

\

我使用的是ftp安装,使用匿名登录,其默认目录是/var/ftp

 

\

这里使用默认选项就好

 

\
\

这里要注意。分区根据情况自定义。

 

\

 

网络我使用的是DHCP

 

\

验证采用默认选择即可

 

\
\

根据情况自己定义

 

\
\

根据情况自己定义

 

\
\
\

选择文件保存即可。

补充阅读

相关内容