PXE批量安装虚拟机

443 阅读3分钟

系统装机三个引导

  1. 硬盘
  2. 光驱
  3. 网络

PXE介绍

PXE(预启动执行环境)是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。

PXE是通过网卡引导启动的

PXE有什么用

前面已经提到,PXE是用来通过网络引导系统的,但是为什么要这么做呢?可以参考下面的场景:

  • 你现在有1台电脑需要装系统,那么很简单,你拿上一个U盘安装盘插在这台电脑上,然后从U盘启动,之后就可以手动安装系统了;但如果你现在有100台电脑,如果你在拿着一个U盘安装盘一台台安装,那效率肯定是太低了,这个时候PXE就派上用场了。
  • 某公司对信息安全要求比较高,需要使用无盘系统(系统不在本地电脑上,而在公司特定的服务器上),这个时候也需要使用PXE。
  • 你想要一台远程的电脑运行你手上特定的系统,这个时候你就可以在本地布置一个你手上的系统,然后通过PXE启动你本地的系统(这个可能需要额外的支持,比如BMC,因为要远程)

2.2 PXE服务优点

  1. 规模化:同时装配多台服务器,无需每一台单独安装操作系统;
  2. 自动化:实现服务器的自动安装及自动配置各种服务;
  3. 远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。

搭建 PXE 网络体系的必要条件

  1. 客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。
  2. 网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
  3. 服务器要通过 TFTP服务(简单文件传输协议)来提供引导镜像文件的下载。

2.4 PXE装机需要的四大文件

pxelinux.0:引导程序。
default:引导程序的配置文件。
vmlinuz:内核文件。
initrd.img: 系统启动镜像文件。

实验

PXE装机过程

安装PXE所要的软件

yum install -y tftp-server xinetd

image.png

启动TFTP服务

vim /etc/xinetd.d/tftp

image.png

systemctl start xinetd tftp

image.png

yum install dhcp -y
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
vim /etc/dhcp/dhcpd.conf

next-server 172.16.100.100;
filename "pxelinux.0";

subnet 172.16.100.0 netmask 255.255.255.0 {
  range 172.16.100.10 172.16.100.20;
  option routers 192.16.100.100;
}
systemctl restart dhcpd  #启动服务

image.png image.png

cd /mnt/images/pxeboot/
cp vmlinuz initrd.img /var/lib/tftpboot/

image.png

yum install -y syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

image.png

image.png

yum install vsftpd.x86_64 -y
cd /var/ftp/
mkdir centos7
mount /dev/sr0 centos7/
cp -rf /mnt/* /var/ftp/centos7/
systemctl start vsftp

image.png

image.png

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

image.png

default auto
prompt 1

label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.200.100/centos7

label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.200.100/centos7

label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.200.100/centos7

image.png 然后开启另一个虚拟机
进入这个页面 回车等就行了 image.png