一、PXE简介:

   PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/win7/win8,linux等。

二、利用虚拟机实现pxe实现centos的自动安装

实验环境:centos 6.4,VMware 10

实验内容:

  1. 打开一台虚拟机,做相应的配置,用作服务器

  2. 再创建若干台虚拟机,用作客户机,实现从服务器端的自动安装

实验拓扑如图所示:

利用pxe实现centos的自动安装_服务器

三、实验步骤

① cd /etc/yum.repos.d/:进入文件,把目录下跟英特网有关的repo文件都给删掉,只留CentOS-Media.repo文件

mount /dev/cdrom /media/cdrom/:挂载光盘

cd /etc/yum.repos.d/:进入目录

rm *:交互删除当前所有

vim CentOS-Media.repo:修改文件,如图所示:

利用pxe实现centos的自动安装_自动安装_02

② 安装ftp服务器,dhcp服务器,tftp-server和system-congig-kickstart工具

yum install vsftpd:

yum install dhcp:

yum install tftp-server system-config-kickstart:可以一块安装,中间要加空格

③ 编辑/etc/dhcp/dhcpd.conf文件

vim /etc/dhcp/dhcpd.conf:打开文件,提示参考文件,直接追加过来修改即可

:r /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample:底行模式下追加指定文件到当前文件,编辑如图所示:

利用pxe实现centos的自动安装_linux_03

④ 配置tftp-server9(udp 69)

rpm -ql tftp-server:查看包内容

cd /etc/xinetd.d/:进入目录

vim tftp:编辑文件,如图所示:

利用pxe实现centos的自动安装_linux_04

service iptables stop:关闭防火墙

chkconfig iptables off:把以后每次开机的防火墙都关闭

getenforce:查看selinux,显示关闭:

Permissive

setenforce 0:把selinux关闭

vim /etc/sysconfig/selinux:修改selinux文件(改为disabled,这样每次启动都会关闭)

service xinetd restart:重启服务

netstat -tupln |grep 69:查看下端口,已经启动

利用pxe实现centos的自动安装_服务器_05

chkconfig xinetd on:设置每次开机都会启动

cd /var/lib/tftpboot/:进入目录

cd /var/lib/tftpboot/:进入该目录(客户机访问到服务器,要在这个文件夹拷贝文件,这些文件包括内核,驱动,镜像等,在/media/cdrom/isolinux/目录下,要去拷贝)

cp /media/cdrom/isolinux/vmlinuz  ./:拷贝到当前目录

cp /media/cdrom/isolinux/initrd.img  ./:拷到当前目录

cp /usr/share/syslinux/pxelinux.0  ./:把驱动也拷到当前目录

利用pxe实现centos的自动安装_pxe_06

mkdir pxelinux.cfg:

cd pxelinux.cfg/:

cp /media/cdrom/isolinux/isolinux.cfg default:

⑤ 配置ftp服务器

service  vsftpd start:

chkconfig vsftpd on:

cd /var/ftp:这是客户机访问服务器的家目录

cp -r /media/cdrom/. ./ &:把安装树拷到当前目录,后台运行

⑥ 编译脚本,把访问的客户机分配不同的

显示信息的最后一列的例子:

利用pxe实现centos的自动安装_linux_07

vim 1.sh:

利用pxe实现centos的自动安装_服务器_08

利用pxe实现centos的自动安装_pxe_09

⑦ 生成ks.cfg

system-config-kickstart:再次开启工具,正常了,设置的显示界面如下:

利用pxe实现centos的自动安装_pxe_10


利用pxe实现centos的自动安装_linux_11

利用pxe实现centos的自动安装_自动安装_12

利用pxe实现centos的自动安装_linux_13

利用pxe实现centos的自动安装_centos_14

利用pxe实现centos的自动安装_服务器_15

利用pxe实现centos的自动安装_自动安装_16

利用pxe实现centos的自动安装_自动安装_17

利用pxe实现centos的自动安装_centos_18

利用pxe实现centos的自动安装_linux_19

利用pxe实现centos的自动安装_centos_20

保存后会生成一个文件查看一下:vim ks.cfg 里面保存刚才的设置,内容如下:

利用pxe实现centos的自动安装_自动安装_21

cp ks.cfg  /var/ftp :把生成的文件拷贝到匿名用户能访问到的ftp服务器的目录下

⑧ 编译pxelinux.0文件(告诉客户机ks.cfg在哪)

cd /var/lib/tftpboot/:进入目录,查看目录下内容:

利用pxe实现centos的自动安装_自动安装_22

cd pxelinux.cfg/:

vim default :编辑文件,如图所示:

利用pxe实现centos的自动安装_服务器_23

⑨ 新建虚拟机,用作客户机去访问服务器,实现自动安装

这样就实现了不同客户机通过访问ftp服务器去安装系统。等待安装:

利用pxe实现centos的自动安装_centos_24

这样就实现了客户机的自动安装