PXEIntel公司开发的技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并加载安装文件或者整个操作系统。若要搭建PXE网络体系,需要满足以下几个条件

  • 客户机的网卡支持PXE协议,且主板支持网络引导。
  • 网络中有一台DHCP服务器以便客户机自动分配地址、指定引导文件文件位置。
  • 服务器通过TFTP提供引导镜像文件的下载

实验准备

  • 一台Linux服务器(仅主机模式IP:192.168.175.106/24),提供dhcp服务,ftp服务和tftp-server服务。
  • 准备一台空白虚拟机
  • 挂载镜像文件,创建yum仓库

关于如何创建一台空白的Linux虚拟机可以参考我以前的博客Linux虚拟机的创建。有一点小的区别就是在在自定义硬件的时候,不需要再指定镜像文件的路径。

实验开始

搭建tftp-server服务

安装tftp-server软件包

yum install tftp-server

安装完成后修改配置文件,指定其站点目录并开启服务,配置文件路径/etc/xinetd.d/tftp
PXE高效网络自动装机_第1张图片

搭建DHCP服务

安装dhcp软件包

yum install dhcp

dhcp的配置文件实际不在/etc目录下,我们这里可以执行cp命令,将其复制到/etc目录下

cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

在配置文件中开启DNS自动更新,指定TFTP服务器地址及引导加载程序的位置,同时设置自动分配的IP地址段落。
PXE高效网络自动装机_第2张图片

搭建FTP服务

yum install vsftpd

因为ftp服务器默认支持匿名用户访问,所以我们此处不需要做更改,只需将光盘挂载到ftp服务器的站点即可

mount /dev/sr0 /var/ftp/pub

归档自动装机所需文件

首先安装引导加载程序

yum install syslinux

将Linux引导加载模块、压缩内核、图形化安装菜单复制到tftp服务器的根目录下

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/      //引导加载程序
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/      //linux引导加载模块
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/         //压缩内核
cp  /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/         //图形化安装菜单

创建一个配置文件的目录在tftp文件服务器的根目录下

mkdir /var/lib/tftpboot/pxelinux.cfg

将安装菜单文件复制到该目录下,重命名为default。

cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default  //安装菜单

配置应答文件

安装system-config-kickstart软件包,通过图形化安装向导来设置无人值守安装的应答文件。

yum install system-config-kickstart

PXE高效网络自动装机_第3张图片
PXE高效网络自动装机_第4张图片
PXE高效网络自动装机_第5张图片
PXE高效网络自动装机_第6张图片
PXE高效网络自动装机_第7张图片
PXE高效网络自动装机_第8张图片

PXE高效网络自动装机_第9张图片
PXE高效网络自动装机_第10张图片

通过图形化向导工具配置完应答文件后。为了方便我们的管理,我们可以将该应答文件复制到FTP的站点内。

mkdir /var/ftp/rhel6                  //创建rhel6的文件夹
cp /root/ks.cfg /var/ftp/rhel6/

配置安装菜单文件

vim /var/lib/tftpboot/pxelinux.cfg/default

启动所有的服务

service dhcpd restart  //dhcp服务
service vsftpd restart   //ftp服务
service xinetd start    //tftp服务

关闭Linux防火墙及selinux防火墙,如若不关闭防火墙,则无法下载TFTP中的引导程序

service iptables stop
setenforce 0

系统安装

此时开启空白机子即自动化安装系统。