[Linux] PXE批量装机
一、PXE批量装机简介
1.1 常见的三种系统安装方式
u启动安装:在U盘中下载相关的安装系统及镜像文件,u盘插机安装
光驱安装:将带有所需系统的光盘放进电脑服务器中,按照官方引导装机
网络下载安装:在网上下载相关镜像系统,进行安装
1.2 PXE的简介
PXE(预启动执行环境)是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
若想进行PXE批量桩基,首先要搭建 PXE 远程安装服务器。而PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
1.3 进行PXE装机的前提
客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。
网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
服务器要通过 TFTP服务(简单文件传输协议)来提供引导镜像文件的下载。
1.4 PXE 装机的优势
1.规模化:同时装配多台服务器;
2.自动化:安装系统、配置各种服务;
3.远程实现:不需要光盘、U 盘等安装介质。
1.5 PXE装机过程
- 客户机的网卡查找相关的dhcp服务器(获取地址和时间)。
- DHCP服务器给客户机分配IP地址和引导程序(boot loader)的地址 ,同时通过offer报文把TFTP服务器的地址发给客户机。
- TFTP服务器把引导文件(pxelinux.0)传给客户机。
- 客户机将引导程序加载到内存中来。
- 引导程序去TFTP服务器中查找配置文件,服务器将配置文件传给客户机。(配置文件中指定客户机使用ftp方式连接服务器获取系统镜像文件)
- 服务端安装并启动vsftpd服务,客户机使用ftp服务获取系统镜像文件。
二、PXE安装前准备
2.1 PXE装机所需的四大文件
1. pxelinux.0:引导程序。(来自syslinux程序)
2. default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
3. vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
4. initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)
2.2 搭建PXE过程中所需服务
2.2.1 DHCP服务
DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,同时也能配合DNS解析使用,让指定范围内的客户机能够自动获取解析域名的后缀。
DHCP作为用应用层协议,它依靠并且使用着传输层中udp协议。对于DHCP中分为客户端,和服务端。客户端用的端口为68 ,服务端的端口为67。
2.2.2 vsftpd服务
vsftpd服务是Linux中使用最多的运用ftp的服务,它是用于Internet上的控制文件的双向传输的一种有效手段,其中有两个端口号均是TCP传输方式,分别为
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
2.2.3 TFTP服务
TFTP(简单文件传输协议),是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。
TFTP服务默认由xinetd服务进行管理,使用UDP69端口。TFTP服务一般只在装机这种场景下使用,用于传输内核和引导文件。因为安全性不高。它的位置存在:/var/lib/tftpboot
2.2.4 syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间, 并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后, sysLinux启动盘就可以引导各种基于DOS的工具, 以及MS-DOS/Windows或者 任何其它操作系统。
三、PXE批量安装过程
yum install -y dhcp vsftpd tftpd syslinux //同时安装四个软件服务
//也可以一个一个的进行安装
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf //生成dhcp 配置文件
vim /etc/dhcp/dhcpd.conf //修改配置文件
subnet 192.168.136.0 netmask 255.255.255.0 {
range 192.168.136.20 192.168.136.50;
option routers 192.168.136.66;
next-server 192.168.136.66;
filename "pxelinux.0";
}
systemctl restart dhcpd
vim /etc/xinetd.d/tftp //修改 tftp 配置文件 将yes 改为no
准备四大文件
pxelinu.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
准备内核 驱动文件
mount /dev/sr0 /mnt
cd /mnt/isolinux/
cp vmlinuz initrd.img /var/lib/tftpboot/
手写配置文件
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
vim pxelinux.cfg/default
准备yum仓库
mkdir /var/ftp/centos7
mount /dev/sr0 /var/ftp/centos7/
准备应答文件 自动安装操作系统
yum install system-config-kickstart -y // 安装图形化界面 制作应答文件的工具
进入虚拟机设置自动安装
启动服务
systemctl start dhcpd
systemctl start tftp.socket
systemctl start vsftpd
测试
正在安装
总结 :
pxe批量装机:
1.安装4个软件包:dhcp、tftp-server、vsftpd、syslinux(取得prelinux.0文件)。
2.配置DHCP服务器,分配IP地址,指明tftp服务器的地址。(虚拟机需要开启仅主机模式,模拟内网环境)
3.编辑TFTP服务配置文件,开启服务(默认是关闭状态)。
4.挂载软件安装源(通常情况下都使用光盘中的安装源,即挂载光驱),并将三大文件先拷入/var/lib/tftpboot/ 目录中:pxelinux.0,vmlinuz,initrd.img。
5.在/var/lib/tftpboot/ 目录下,创建子目录pxelinux.cfg,在子目录下编写引导程序的配置文件default。
6.关闭防火墙和selinux。启动dhcpd、tftp、vsftpd。
7.使用空白客户机(裸机)测试能否自动装机。
自动装机-kickstart:
1.安装kickstart服务
2.进行kickstart设置
3.如果写简易脚本,就保存在家目录
4.将原本的预设值加装软件添加到kickstart生成的文件
5.把该文件移动到ftp下
6.修改ftfp配置