实验环境的搭建:

1.硬件环境介绍

通过VMware Workstation搭建一个虚拟局域网环境.该局域网,

一台为名为CentOS1,计划做为kickstart 服务器,具体如下

   主机名:CentOS1
   操作系统:CentOS release 6.4
   主机IP:192.168.80.3

   为实验方便,已关闭iptables和SELinux

   已配置完成yum,可通过yum来安装软件

另一台为刚配置好的裸机,未安装任何操系统

两台主机通过虚拟交换机VMnet8实现互联互通

简单网络拓扑如下:

134921763.png


2.软件环境介绍
我们在本篇先介绍如何搭建PXE环境,下一篇将在本篇的基础上使用KickStart来实现自动化安装.
PXE(Pre-boot eXecution Environment): 字面意思为预启动执行环境.通过PXE可以让主机通过网络启动
要实现PXE需要三个必要条件
  • 1.主机的网卡支持PXE客户端功能(该网卡含有 PEX_client + TFTP_client),并在BIOS中设定开机方式为网络
  • 2.网络内提供DHCP Service,以提供主机网卡所必须的网络参数,如IP等.并告知主机,TFTP服务器的相关信息
  • 3.网络内提供TFTP Service,为主机提供开机所必须的boot loader 和kernel file等文件

注: 这边的主机是指那台需要安装操作系统的裸机,下同


   但满足以上条件,仅能实现主机的启动,主机启动后,还要提供系统安装程序以及安装程序所需的各种资源才能完成系统的安装,所以我们还需要一个放置这些资源的地方.放置这些资源,可以是HTTP,NFS,FTP中的任意一种.在这里,我选择FTP来作为安装资源的容器

那么,就让我们在CentOS上先来搭建这个DHCP+TFTP+FTP的PXE环境吧.


3.服务端软件安装

一般在linux上面安装一个服务,是按安装,配置,启动,检查4步来做的,下面我们安装,也是按这个流程来进行

1.安装DHCP服务

a.安装

#yum -y install dhcp

b.配置

   查看配置文件位置

# rpm -ql dhcp |grep "dhcpd.conf"
/etc/dhcp/dhcpd.conf    #配置文件
/usr/share/doc/dhcp-4.1.1/dhcpd-conf-to-ldap
/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample    #模板
/usr/share/man/man5/dhcpd.conf.5.gz

:在CentOS6之后,DHCP的配置文件调整到/etc/dhcp/目录下了

       编写配置文件

# vim /etc/dhcp/dhcpd.conf
#不进行DDNS的更新
ddns-update-style none;
#不允许客户机更新DNS记录
ignore client-updates;
#与下面的range配合声明可分配IP的范围
subnet 192.168.80.0 netmask 255.255.255.0
{
#可分配的起始IP 结束IP
range 192.168.80.10 192.168.80.20;
#设定netmask
option subnet-mask 255.255.255.0;
#设置默认的IP租用期限
default-lease-time 21600;
#设置最大 的IP租用期限
max-lease-time 43200;
#用来告知主机TFTP服务器的ip
next-server 192.168.80.3;
#告知主机从TFTP根目录下载pxelinux.0文件
#pxelinux.0是PXE专用的一个boot loader 文件
filename "/pxelinux.0";
}

c.启动DHCP

# service dhcpd start
Starting dhcpd: [ OK ]

d.检查DHCP是否正常监听

# netstat -nlptu |grep dhcp
udp 0 0 0.0.0.0:67 0.0.0.0:* 1875/dhcpd


2.安装TFTP服务

a.安装

# yum -y install tftp-server

b.配置

# cd /etc/xinetd.d/
# ls
chargen-dgram cvs daytime-stream discard-stream echo-stream tcpmux-server time-dgram
chargen-stream daytime-dgram discard-dgram echo-dgram rsync tftp time-stream
# vim 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    #由原来的yes,改为no
        per_source = 11
        cps = 100 2
        flags = IPv4
}

在这我们暂时先不启动TFTP服务,继续配置主机引导所需要的文件


1.复制boot loader和选单展示文件到TFTP的根目录
   a.复制pxelinux.0文件
       pxelinux.0文件由syslinux提供,如果没有找到这个文件,可以安装一下
# yum -y install syslinux
# rpm -ql syslinux |grep pxelinux
/usr/share/doc/syslinux-4.02/pxelinux.txt
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0

复制

# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

b.复制选单展示文件


# cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/

2.通光CentOS的安装光盘,获取 vmlinuz 和 initrd.img到TFTP的根目录

先挂载光盘,再复制

# mount /dev/cdrom /media/
mount: block device /dev/sr0 is write-protected, mounting read-only
# cd /media/isolinux/
# cp vmlinuz /var/lib/tftpboot/
# cp initrd.img /var/lib/tftpboot/

当然如果你图省事,直接把/media/isolinux目录下的所有文件都复制到/var/lib/tftptboot/目录下,然后再进行下面的步骤,也没有问题,建议还是全复制了,这样开机选单画面还好看一点

       这边用完先别把光盘umount掉,我们下面还有用

3.创建存放开机菜单配置文件的目录

# mkdir -p /var/lib/tftpboot/pxelinux.cfg

   将光盘isolinux目录下的isolinux.cfg 复制到刚才我们新建的那个目录下,并改名为default

# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default


这么多文件,第一次搞有点晕,先理理,在我理解中,这几个文件之间的关系是这样的:
主机先从TFTP服务器上面获取 pxelinux.0 文件上,pxelinux.0是个bootloder文件 通过这个文件再去读取default文件
default文件设置了开机选单
开机选单通过vesamenu.c32绘制出来
vmlinuz  initrd.img这两个文件应该不用讲了吧

好了,我们把刚才TFTP没有做完的两步接下去做完

c.启动TFTP

# /etc/init.d/xinetd restart
Stopping xinetd: [FAILED]
Starting xinetd: [ OK ]

d.检查TFTP服务的监听是否正常

# netstat -nlptu |grep 69
udp 0 0 0.0.0.0:69 0.0.0.0:* 1675/xinetd


把上面这几步做完,主机就可以顺利开机了,但我们要安装系统,所以还得继续下去

a.安装vsFTP服务,提供系统安装程序以及安装程序所需的各种资源

# yum -y install vsftpd

b.安装完后,将系统安装盘中的所有文件复制到/var/ftp/pub目录下

# cp -a /media/* /var/ftp/pub/

c.启动FTP

# /etc/init.d/vsftpd start
Starting vsftpd for vsftpd: [ OK ]

d.检查vsFTP服务监听是否正常

# netstat -nlptu |grep vsftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2118/vsftpd

到此一个PXE环境的服务端已经搭建好了,我们来看一下效果


4.主机通过网络安装操作系统

a.设置客户端从网络引导

设置虚拟机启动后,强制进入BIOS选单

145135320.png

b.设置从光盘引导

145250219.png

c.选择第一个选项

145401612.png

d.选择英语

145457471.png

e.选择美式键盘

145535963.png

f.选择URL方式安装

145635646.png

g.禁用IPv6

145724367.png

h.输入FTP的地址

151354791.png


好了大功告成,已经正常跳转到图形化安装界面了,下面就和本地用光盘装一样了,具体步骤大家自行百度吧

151636503.png