PXE高效批量网络装机
一、PEX概述
1、PEX批量部署的优点
规模化:同时按照多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
2、PXE
PXE是有Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统
预启动执行环境,在操作系统之前运行
3、服务端
运行DHCP服务,用来分配地址、定位引导程序
运行TFTP服务,提供引导程序下载
4、客户端
网卡支持PXE协议
主板支持网络引导
二、配置PXE装机服务器
1、搭建PXE网络体系的前提
客户机的网卡要支持PXE协议,且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从Network或LAN启动即可
网络中有一台DHCP服务器以便了户籍自动分配地址、指定引导文件位置
服务器要通过TFTP服务来提供引导镜像文件的下载
2、基本部署过程
准备CentOS 7安装源(yum仓库)
安装并启用TFTP服务
提供Linux内核、PXE引导程序
安装并启用DHCP服务
配置启动菜单
3、配置步骤
①yum -y install tftp-server xinetd
vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp ------------TFTP使用UDP协议
wait = yes ---------no表示客户机可以多台一起连接,yes表示客户机只能一台一台的连接
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot-----------指定TFTP的根目录
disable = no---------------表示开启TFTP服务
per_source = 11
cps = 100 2
flags = IPv4
}
systemctl start tftp
systemctl start xinetd
systemctl enable xinetd
systemctl enable tftp
②安装并启用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 10.0.0.7;----------指定TFTP服务器的地址
filename “pxelinux.0”;指定PXE引导程序的文件名
subnet 10.0.0.0 netmask 255.255.255.0 {--------声明要分配的网段地址
range 10.0.0.100 10.0.0.200;-----------设置地址池
option routers 10.0.0.7;------------默认网关地址指向TFTP服务器的IP地址
}
systemctl restart dhcpd
systemctl enable dhcpd
③准备Linux内核、初始化镜像文件
cd /mnt/images/pxeboot/----------事先把光盘挂载到/mnt目录中
cp vmlinuz /var/lib/tftpboot/-------------复制Linuux系统的内核文件到TFTP根目录下
cp initrd.img /var/lib/tftpboot/-----------------复制初始化镜像文件到TFTP根目录下
④准备PXE引导程序
yum install -y syslinux-----------PXE引导程序由软件包syslinux提供
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
⑤安装FTP服务,准备Centos7安装源
yum install -y vsftpd
mkdir /var/ftp/centos7
cp -rf ./* /var/ftp/centos7/
systemctl start vsftpd
systemctl enable vsftpd
⑥配置启动菜单文件
默认的启动惨淡文件在TFTP根目录的pxelinux.cfg子目录下,文件名为default
mkdir /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot//pxelinux.cfg/default
default auto ----------指定默认入口名称
prompt 0 -------------------设置是否等待用户选择,“1”表示等待用户控制
label auto -----------------图形安装引导入口,label用来定义启动项目
kernel vmlinuz -----------------kernel和append用来定义引导参数
append initrd=initrd.img method=ftp://10.0.0.7/centos7 ks=ftp://10.0.0.7/ks.cfg
label linux text ------------------文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://10.0.0.7/centos7
label linux rescue -------------------救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://10.0.0.7/centos7
⑦关闭防火墙
systemctl stop firewalld
setenforce 0
使用VMware创建虚拟机进行测试,虚拟机内存至少需要2GB,否则在启动安装时可能报错
开启虚拟机,在提示字符串boot后按Enter键,将会自动通过网络下载安装文件,并进入默认的图形安装入口
若执行linux txt命令,则进入文本安装入口:若执行“linux recue”命令,则进入救援模式
三、实现Kickstart 无人值守安装
1、准备安装应答文件
安装system-config-kickstart工具
yum -y install system-config-kickstar
2、打开“Kickstart配置程序”窗口
通过桌面菜单应用程序——系统工具——Kickstart打开或执行system-config-kickstart命令打开
基本配置
语言设成中文
时区上海
设置ROOT密码
然后把自动安装勾上
安装方法
执行全新安装
选择FTP
FTP服务器:ftp://10.0.0.7
FTP目录:centos7
引导装载程序选项
安装新引导装载程序
在主引导记录中安装引导装载程序
分区信息
清楚引导记录
删除所有现存分区
初始化磁盘标签
网络配置
添加网络设备
防火墙配置
禁用防火墙
安装后脚本
/bin/bash
rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=ftp://192.168.241.3/centos7
enabled=1
gpgcheck=0’ > /etc/yum.repos.d/local.repo
3、配置需要安装的软件包
可以根据需要将/root/anaconda-ks.cfg的软件包安装脚本复制到ks.cfg文件中,只需要复制%packages到%end部分即可
如需要最小化安装,可复制下面的内容
vim ks.cfg
%packages
@^minimal——————最小化安装
%end
4、编辑引导菜单文件default,添加ks引导参数
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0——————设置是否等待用户选择,0表示不等待用户控制
label auto
kernel vmlinuz————————kernel和append用来定义引导参数
append initrd=initrd.img method=ftp://192.168.241.3/centos7 ks=ftp://192.168.241.3/ks.cfg————添加ks引导参数以指定ks.cfg应答文件URL路径
最后就可以进行自动安装了