PEX高效批量网络装机

一、前言
 
PXE(Preboot Execution Environment)即预启动执行环境,是一种基于Client/Server模式的网络引导技术。它允许计算机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统,而无需依赖本地存储设备,如光盘、U盘等。PXE在大规模装机场景中优势明显,比如同时装配多台服务器时,可实现规模化、自动化安装,大大节省人力和时间成本。
 
要实现PXE网络装机,需要满足几个条件:客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导;网络中有一台DHCP服务器为客户机自动分配地址、指定引导文件位置;服务器通过TFTP(简单文件传输协议)提供引导镜像文件的下载。
 
二、部署PXE远程安装服务
 
2.1 搭建PXE远程安装服务器
 
1. 准备安装源:假设我们以CentOS 7系统为例进行PXE装机,首先需要准备好CentOS 7的安装源。可以将系统光盘挂载到服务器上,例如执行命令  mount /dev/cdrom /mnt ,将光盘挂载到  /mnt  目录。

挂载镜像

复制所需的安装包,更改配置文件,启动服务


2. 安装并启用TFTP服务:TFTP服务用于提供引导镜像文件的下载 ,通过简单文件传输协议在客户机和服务器之间传输小文件。安装命令为  yum -y install tftp-server 。安装完成后,编辑配置文件  /etc/xinetd.d/tftp ,将  disable = yes  修改为  disable = no ,然后启动TFTP服务  systemctl start tftp  并设置开机自启  systemctl enable tftp 。


3. 准备Linux内核、PXE引导程序等:从挂载的安装源中找到用于PXE网络安装的Linux内核文件  vmlinuz  和初始化镜像文件  initrd.img ,它们位于  images/pxeboot  目录下 ,将这两个文件复制到TFTP服务的根目录  /var/lib/tftpboot/ ,即执行  cp /mnt/images/pxeboot/initrd.img /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/ 。另外,PXE引导程序  pxelinux.0  由  syslinux  软件包提供,安装  syslinux  后,将  pxelinux.0  也复制到TFTP服务的根目录: yum -y install syslinux  , cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 。


4. 安装并启用DHCP服务:由于PXE客户机通常是未安装系统的裸机,需要DHCP服务为其分配IP地址并告知引导文件位置。安装DHCP服务: yum -y install dhcp  。编辑DHCP配置文件  /etc/dhcp/dhcpd.conf ,配置示例如下:
 
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.200; # 定义IP地址池
  option routers 192.168.1.1; # 默认网关
  option domain - name - servers 8.8.8.8, 114.114.114.114; # DNS服务器
  option subnet - mask 255.255.255.0;
  next - server 192.168.1.2; # 指定TFTP服务器IP
  filename "pxelinux.0"; # 引导文件名
}
启动服务 
 
配置完成后,启动DHCP服务  systemctl start dhcpd  并设置开机自启  systemctl enable dhcpd 。
5. 配置启动菜单:在TFTP服务根目录下创建  pxelinux.cfg  目录,用于存放启动菜单配置文件, mkdir /var/lib/tftpboot/pxelinux.cfg  。编辑启动菜单文件  default  :
 
default auto
prompt 0
label auto
  kernel vmlinuz
  append initrd=initrd.img method=ftp://192.168.1.2/centos7 # 假设FTP服务器地址为192.168.1.2,安装源目录为centos7
label linux text
  kernel vmlinuz
  append text initrd=initrd.img method=ftp://192.168.1.2/centos7
label linux rescue
  kernel vmlinuz
  append rescue initrd=initrd.img method=ftp://192.168.1.2/centos7
 
 

 
2.2 验证PXE网络安装
 
完成上述配置后,在客户机上设置BIOS从网络启动(通常在BIOS的启动选项中选择Network或LAN)。客户机启动时会通过PXE协议向DHCP服务器请求IP地址,获取到地址后,从TFTP服务器下载引导程序和内核等文件,然后进入系统安装界面。如果一切正常,就能看到系统安装的选项,如图形安装、文本安装、救援模式等,这表明PXE远程安装服务搭建成功。
 
三、实现Kickstart无人值守安装
 

Kickstart是一种无人职守安装方式,它通过记录安装过程中所需人工干预填写的各种参数,生成一个名为  ks.cfg  的应答文件。在后续安装过程中,安装程序会自动查找该文件并采用其中的参数,无需人工频繁干预。
 
3.1 准备安装应答文件

 
1. 安装  system-config-kickstart  工具,它提供了图形化界面来生成  ks.cfg  文件 ,执行  yum install -y system-config-kickstart 。
2. 执行  system-config-kickstart  命令打开图形化配置界面。
3. 基本配置:设置默认语言为“中文(简体)”,时区为“Asia/Shanghai”,并设置root密码,在高级配置中勾选“安装后重启” 。
4. 安装方法:选择FTP,填写FTP服务器地址和目录,例如  ftp://192.168.1.2/centos7 。
5. 引导装载程序选项:“安装类型”选择安装新引导装载程序,“安装选项”选择在主引导记录(MBR)中安装引导装载程序。
6. 分区信息:通常需要清除主引导记录、删除所有现存分区、初始化磁盘标签,并添加分区,如  /boot  分区(文件系统类型  xfs ,固定大小500M )、 swap  分区(固定大小4096M )、 /home  分区(文件系统类型  xfs ,固定大小4096M )和根分区“/”(文件系统类型  xfs ,使用磁盘上全部未使用空间 )。
7. 网络配置:添加网络设备,设置网络类型为DHCP。
8. 防火墙配置:禁用SELinux和防火墙。
9. 安装后脚本:可根据需求编写,例如设置本地YUM源:勾选“使用解释程序”为  /bin/bash  ,内容如下:
 
rm -rf /etc/yum.repos.d/*
echo '(local)
name=local
baseurl=ftp://192.168.1.2/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
 
 
 
3.2 保存和配置应答文件
 
1. 配置完成后,保存生成的  ks.cfg  文件,默认保存在  /root/  目录下。
2. 如果需要最小化安装,可以将  /root/anaconda-ks.cfg  中的软件包安装脚本复制到  ks.cfg  文件中,只复制  %packages  到  %end  部分 ,例如:
 
vim ks.cfg
%packages
@^minimal
%end
 
 
1. 将  ks.cfg  文件复制到FTP服务器可供下载的目录,如  cp /root/ks.cfg /var/ftp/ks.cfg 。
 
3.3 编辑引导菜单添加ks引导参数
 
编辑PXE启动菜单文件  /var/lib/tftpboot/pxelinux.cfg/default  ,添加  ks  引导参数以指定  ks.cfg  应答文件的URL路径:
 
default auto
prompt 0
label auto
  kernel vmlinuz
  append initrd=initrd.img method=ftp://192.168.1.2/centos7 ks=ftp://192.168.1.2/ks.cfg
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值