PXE高效批量网络装机
一、PXE概述
1、PXE简介
PXE(预启动执行环境,在操作系统之前运行)是由Intel公司开发的网络引导技术,工作在olient/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件间或者整个操作系统。
2、PXE优点
- 规模化:同时装配多台服务器
- 自动化:安装系统,配置各种服务
- 远程实现:不需要光盘、U盘等安装介质
3、搭建PXE必备条件
- 客户端:
- 客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需要BIOS设置允许从Network或LAN启动即可
- 服务端:
- 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置
- 服务器要通过TFTP服务(简单文件传输协议)来提供系统内核和引导镜像文件的下载
二、搭建PXE远程安装服务器
- PXE远程安装服务器集成了centos7、安装源、TFTP服务、DHCP服务、能够向客户机裸机发送PEX引导程序、Linux内核、启动菜单等数据、以及提供安装文件
- TFTP(简单文件传输协议)是一个基于UDP协议实现的用于在客户机的服务器之间进行简单文件传输的协议,适用于小文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP,端口号59
- xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级internet服务
- 守护进程也称精灵进程,是运行在后台的一种特殊进程,守护进程独立控制终端,它们常常跟随系统启动时启动,在系统关闭时才结束。守护进程周期性的执行某些任务或者等待处理某些事件,Linux上的大多数服务器都是用守护进程实现的
- 在系统启动中默认的守护进程的父进程id全都是init(固定为1)守护进程特征就是在程序运行名后加一个d,但部署所有的尾字母d的进程都是守护进程。
三、搭建PXE步骤
1、第一步
关闭防火墙和selinux
systemctl stop firewalld
setenforce
2、第二步
安装并启动TFTP服务
yum -y install tftp-server xinetd
#修改TFTP服务的配置文件
vim /etc/xinetd.d/tftp
protocol = udp #TFTP默认使用UDP协议
wait = no #no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接
server_args = -s /var/lib/tftpboot #指定TFTP根目录(引导文件的存储路径)
disable = no #no表示开启TFTP服务
systemctl enable --now tftp #此服务开机自启且现在就开启服务
systemctl enable --now xxinetd #同上
3、第三步
安装并启用DHCP服务
yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#修改DHCP服务的配置文件
vim /etc/dhcp/dhcpd.conf;
ddns-update-style none; #禁用DNS动态更新
next-server 192.168.154.99; #指定TFTP服务器的地址
filename “pxelinux.0”; #指定要下载的PXE引导程序的文件
subnet 192.168.154.0 network 255.255.255.0 { #声明要分配的网段地址
range 192.168.154.100 192.168.154.200; #设置地址池
option routers 192.168.1554.99; #默认网关地址指向TFTP服务器的IP地址
}
systemctl enable --now dhcpd
4、第四步
准备Linux内核、初始化镜像文件
mount /dev/sr0 /mnt
cd /mnt/images/pxeboot
cp vmlinuz initrd.img /var/lib/tftpboot/
#复制Linux系统的内核文件和初始化镜像文件(Linux下引导加载模块)到TFTP根目录下
5、第五步
准备PXE引导程序
yum install -y syslinux #PXE引导程序由软件包syslinux提供
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot #复制PXE引导程序到TFTP根目录下
6、第六步
安装FTP服务,准备CentOS 7安装源
yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7 或者 mount /dev/sr0 /var/ftp/centos7
systemctl enable --now vsftpd
7、第七步
配置启动菜单
默认的启动菜单文件在TFTP根目录的pxelinux.cfg子目录下,文件名为default
mkdir /var/lib/tftpboot/pxelinuxx.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto #指定默认入口名称
prompt 1 #设置是否等待用户选择,,“1”表示等待用户控制
label auto #图形安装(默认)引导入口,label用来定义启动项
kernel vnlinux #kernel和append用来定义引导参数
append initrd=initrd.img method=ftp://192.168.154.99/centos7
label linux text #文本安装引导入口
kernel vnlinux
append text initrd=initrd.img method=ftp://192.168.154.99/centos7
label linux rescue #救援模式引导入口
kernel vnlinux
append rescue initrd=initrd.img method=ftp://192.168.154.99/centos7
四、实验
1、第一步
2、第二步
3、第三步
4、第四步
5、第五步
6、第六步
7、第七步
8、装机试验
新建一个虚拟机
过程省略(看前面博客)
然后开启新创的虚拟机
最后等待安装。
五、kickstart无人值守安装
在上面的实验中,设置完数据后安装虚拟机,后面还是要我们一步步点,如果要装很多的虚拟机还是不方便,这是我们可用kickstart无人值守安装。
1)首先安装system-config-kickstart.noarch
2)开始配置kickstart
进入此文件(当前系统的应答文件)
上面软件包没选,现在进入此文件(当前系统的应答文件)
让后将此文件复制到软件包目录,因为要传给客户端
再修改PXE的启动文件