PXE
PXE( Preboot eXecution Environment,预启动执行环境 )是由Inter公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统。
PXE是通过网卡引导启动。
PXE服务优点
- 规模化:同时装配多台服务器,无需每一台单独安装操作系统;
- 自动化:实现服务器的自动安装及自动配置各种服务;
- 远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。
搭建PXE网络体系所需条件
客户机
- 客户机的网卡要支持PXE协议(集成BOOTROM芯片)。
- 网卡自带DHCP服务和TFTP服务。
- 主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可。
服务端
- 配置 DHCP 服务器 :为客户机自动分配地址、指定引导文件位置(指明TFTP服务器地址)。
- 服务器要开启 TFTP 服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载。
- 安装软件包syslinux :提供PXE引导程序。
- 服务器提供FTP服务(或http) :提供安装源(例如镜像文件系统等)。
四大文件
- pxelinux.0:引导程序。(来自syslinux程序)
- default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
- vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
- initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)
PXE实现过程
- 客户机的网卡查找相关的dhcp服务器(获取地址和时间)。
- DHCP服务器给客户机分配IP地址和引导程序(boot loader)的地址 ,同时通过offer报文把TFTP服务器的地址发给客户机。
- TFTP服务器把引导文件(pxelinux.0)传给客户机。
- 客户机将引导程序加载到内存中来。
- 引导程序去TFTP服务器中查找配置文件,服务器将配置文件传给客户机。(配置文件中指定客户机使用ftp方式连接服务器获取系统镜像文件)
- 服务端安装并启动vsftpd服务,客户机使用ftp服务获取系统镜像文件。
搭建服务详解
PXE远程安装服务器集成了CentOS 7安装源、TFTP 服务、DHCP 服务,能够向空白客户机(裸机)发送PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
网卡自带DHCP服务和TFTP服务。
DHCP服务
DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
TFTP服务
- TFTP(简单文件传输协议),是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。
- TFTP服务一般只在装机这种场景下使用,用于传输内核和引导文件。因为安全性不高。
- 自带的站点:/var/lib/tftpboot
syslinux
- syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间, 并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后, sysLinux启动盘就可以引导各种基于DOS的工具, 以及MS-DOS/Windows或者 任何其它操作系统。
- 安装syslinux程序后,可获得 pxelinux.0 文件。
vsftp
可以使用http、ftp等方式,ftp文件传输的一种,vsftpd是提供ftp服务的软件之一。
PXE网络装机
服务器
安装软件包:dhcp、tftp-server、vsftpd、syslinux
配置DHCP服务器,分配IP地址,指明tftp服务器的地址
修改TFTP服务配置文件/etc/xinetd.d/tftp,将服务开启
将光盘挂载到/var/ftp的子目录centos7下,并将三大文件先拷入/var/lib/tftpboot/ 目录中
在/var/lib/tftpboot/ 目录下,创建子目录pxelinux.cfg,在pxelinux.cfg目录下编写引导程序的配置文件default
关闭防火墙,启动 dhcpd、tftp、vsftpd服务
客户端
创建新的空白虚拟机
虚拟机自动获取IP地址、自动安装镜像文件系统,boot处手动回车
最后安装完成出现图形界面
Kickstart全自动化安装
下载kickstart软件包
进入虚拟机在应用程序中的系统工具菜单栏打开kickstart
设置语言
设置服务器ip和镜像目录
选择安装引导程序
自定义分区
设置网卡
选择关闭防火墙,因为没啥用
取消安装图像环境
设置bash以及系统安装完成后自动完成创建用户的脚本
保存文件到/var/ftp目录下
再次修改/var/lib/tftpboot/pxelinux.cfg目录下的default文件,添加ks参数
重新创建空白虚拟机,安装完成后发现已经创建lisi用户