一、PXE概述
PXE:c/s架构,允许客户端通过网络从远程服务器(服务端)下载引导镜像,加载安装文件,实现自动化安装操作系统。
c/s 架构:服务端和客户端都可以是多台。
无人值守:安装选项不需要人为干预,可以自动化实现。
PXE的优点:
- 规模化,同时装配多台服务器,20台左右为佳,再多容易卡;
- 自动化
- 远程实现,不需要光盘、U盘等介质。
PXE的安装条件
硬件:网卡要支持PXE协议,主板要支持网络引导。
软件:服务端要有DHCP:可以在客户机启动时,自动分配IP地址。TFTP:简单文件传输协议,传小文件,引导镜像文件很小,使用TFTP。VSFTP:文件传输协议,传大文件,安装文件。
二、PXE安装流程
test1 :root@20.0.0.10
作为服务端
2.1 安装TFTP
,xinetd
服务
注意(TFTP
软件名 tftp-server
)
xinetd
服务:网络守护进程服务程序,用来管理轻量级的网络服务。管理TFTP
的文件传输,TFTP
是一个后台进程,使用的是UDP协议,端口69
。
systemctl stop firewalld
setenforce 0
yum -y install tftp-server xinetd
systemctl start tftp
systemctl enable tftp
systemctl start xinetd.service
systemctl enable xinetd.service
vim /etc/xinetd.d/tftp
管理tftp服务配置
#编辑文本内容
wait = no
#修改成 no :可以并行安装多台客户机
disable = no
#修改成 no: 后台启动tftp
重启两个服务
systemctl restart tftp
systemctl restart xinetd
2.2 配置DHCP
先安装dhcp
服务
yum -y install dhcp
对dhcp
服务进行配置:复制dhcp
样板配置文件,覆盖dhcp
实际的配置文件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#对dhcpd.conf进行以下设置
#解注释下一行内容
ddns-update-style none;
#禁用DNS动态更新
#新增下两行内容
next-server 20.0.0.10;
#指定tftp的服务器,用于引导网络设备
filename "pxelinux.0";
#指定了网络引导时客户端应该请求的文件名pxelinux.0
#配置地址池
subnet 20.0.0.0 netmask 255.255.255.0 {
range 20.0.0.60 20.0.0.80;
option routers 20.0.0.10;
}
#注意,网关选择本机IP地址20.0.0.10!!!
#配置完成,重启dhcp服务
systemctl restart dhcpd
#注意,网关选择本机IP地址20.0.0.10!!!
2.3 准备PXE的引导程序
通过光盘镜像把光盘目录下/images/pxeboot/
目录中的文件vmlinuz
,initrd.mrg
复制到目录/var/lib/tftpboot/
下。
vmlinuz
:Linux系统的内核文件
initrd.mrg
:初始化镜像文件,引导加载的模块文件
/mount /dev/cdrom /mnt/
cd /mnt/images/pxeboot/
cp vmlinuz /var/lib/tftpboot/
cp initrd.mrg /var/lib/tftpboot/
#安装PXE的引导程序syslinux
yum -y install syslinux
cd /usr/share/syslinux
cp pxelinux.0 /var/lib/tftpboot/
pxelinux.0
:在dhcp配置中设置的,网络引导时客户端应该请求的文件pxelinux.0
。
2.4 VSFTPD配置
安装vsftpd服务
yum -y install vsftpd
cd /var/ftp
mkdir centos7
cp -rf /mnt/* /var/ftp/centos7
#把光盘镜像的内容全部复制到目标目录/var/ftp/centos7
#重启vsftpd服务
systemctl restart vsftpd
2.5 配置启动菜单文件
mkdir /var/lib/tftpboot/pxelinux.cfg
cd /var/lib/tftpboot/pxelinux.cfg
vim default
#写入下列启动菜单内容
default auto
#指定安装程序的入口,使用这个文件作为安装程序的入口,自动选择。
prompt 0
#是否等待用户选择,0不等待用户输入,自动完成。1需要手动输入。
label auto
#图形化界面的默认安装入口
kernel vmlinuz
#加载内核文件,vmlinuz
append initrd=initrd.img method=ftp://20.0.0.10/centos7 ks=ftp://20.0.0.10/ks.cfg
#指定初始化文件initrd.img。
#指定method=安装源的位置。
#指定kickstart文件位置,用于无人值守自动化安装。(见下文)
label linux text
#字符界面,最小化安装
kernel vmlinuz
append initrd=initrd.img method=ftp://20.0.0.10/centos7
label linux rescue
#救援模式的引导入口
kernel vmlinuz
append initrd=initrd.img method=ftp://20.0.0.10/centos7
#配置完成
2.6 无人值守配置流程
安装服务 system-config-kickstart
yum -y install system-config-kickstart
#运行这个程序
system-config-kickstart
注:system-config-kickstart
不能用xshell
打开,需要xmanager
软件;也可以可以用mobaxteam
软件打开;或者直接在虚拟机上打开。
配置流程图略,配置完成后成对应的kickstrat
配置文件ks.cfg
,保存到/root
,文件内容如下:
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext 123
# Use network installation
url --url="ftp://20.0.0.10/centos7"
# System language
lang zh_CN
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=512
part /home --fstype="xfs" --size=4096
part swap --fstype="swap" --size=4096
part / --fstype="xfs" --grow --size=1
文件指定了自动化安装的各项配置。
可在文件最后添加安装后自动执行的脚本,进行各项配置。
复制ks.cfg
到/var/ftp
,无人值守配置完成。
2.7 客户端安装
test2
:作为客户机(内存至少4G,否则不能启动PXE)
打开客户机,等待自动化安装完成。