PXE自动批量无人值守装机

本文详细介绍了如何使用PXE进行自动批量无人值守装机,涵盖了DHCP服务器配置、网络装机服务器设置、菜单文件及内核驱动部署、安装源搭建、应答文件生成等步骤,最终实现通过ks.cfg应答文件完成定制化的自动安装。
摘要由CSDN通过智能技术生成

DHCP服务器

  • Dynamic Host Configuration Protocol
    – 动态主机配置协议,由 IETF(Internet 网络工程师任务小组)组织制定,用来简化主机地址分配管理
    – 主要分配以下入网参数
    – IP地址/子网掩码/广播地址
    – 默认网关地址、DNS服务器地址

  • DHCP地址分配的四次会话(以广播进行,先到先得)
    – DISCOVERY --> OFFER --> REQUEST -->ACK
    – 一个网络中,只能有一台DHCP服务器
    – 服务端基本概念
    – 租期:允许客户机租用IP地址的时间期限,单位为秒
    – 作用域:分配给客户机的IP地址所在的网段
    – 地址池:用来动态分配的IP地址的范围

yum  -y  install  dhcp
vim  /etc/dhcp/dhcpd.conf
# 按照提示读入模板配置文件,修改以下
subnet 192.168.4.0  netmask  255.255.255.0  {  #分配网段
  range 192.168.4.110  192.168.4.200;   #分配的IP地址范围
  option domain-name-servers 192.168.4.100;  #分配的DNS
  option routers 192.168.4.254;   #分配的网关地址
  default-lease-time 600;   
  max-lease-time 7200;
}

systemctl  start  dhcpd

网络装机服务器

– 规模化:同时装配多台主机
– 自动化:装系统、配置各种服务
– 远程实现:不需要光盘、U盘等物理安装介质

  • PXE,Pre-boot eXecution Environment
    – 预启动执行环境,在操作系统之前运行
    – 可用于远程安装
  • 工作模式
    – PXE client 集成在网卡的启动芯片中
    – 当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行
  • 网络装机服务器需要服务
    – DHCP服务,分配IP地址、定位引导程序
    – TFTP服务,提供引导程序下载
    – HTTP服务(或FTP/NFS),提供yum安装源
  • 客户机应具备的条件
    – 网卡芯片必须支持PXE协议
    – 主板支持从网卡启动
    pxe网络装机
subnet 192.168.4.0  netmask  255.255.255.0  {
  range 192.168.4.100  192.168.4.200;
  option domain-name-servers 192.168.4.100;
  option routers 192.168.4.254;
  
  next-server  192.168.4.100;  #指定网络装机的服务器IP地址
  filename   "pxelinux.0";  #指定网卡引导文件名称 --> 网络安装说明书,二进制文件

  default-lease-time 600;   
  max-lease-time 7200;
}
systemctl restart dhcpd
  • TFTP服务器,提供众多的引导文件
    – TFTP:简单的文件传输协议 默认端口:69
    – 默认共享数据路径:/var/lib/tftpboot
yum  -y  install  tftp-server

systemctl restart tftp    #开启服务
# 部署pxelinux.0文件
yum  provides  */pxelinux.0  #查询仓库中那个软件包产生
yum  -y   install  syslinux
rpm -ql syslinux  |  grep pxelinux.0  #查询安装清单
cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
ls  /var/lib/tftpboot/
pxelinux.0
  • 基本思路
    – DHCP服务—>IP地址、next-server、filename
    – TFTP服务—>pxelinux.0
    – pxelinux.0—>读取菜单文件/var/lib/tftpboot/pxelinux.cfg/default
    – 本机与所用镜像文件均为CentOS7v1804,镜像文件挂载在 /mnt 下

部署菜单文件

mount  /dev/cdrom    /mnt
ls /mnt/isolinux
boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL     vmlinuz
boot.msg  initrd.img  isolinux.cfg  splash.png  vesamenu.c32

mkdir /var/lib/tftpboot/pxelinux.cfg  #创建菜单文件
cp  /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
ls /var/lib/tftpboot/
pxelinux.0
ls /var/lib/tftpboot/pxelinux.cfg/
isolinux.cfg

部署内核(vmlinuz)与驱动程序(initrd.img)

ls  /mnt/isolinux/
boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL     vmlinuz
boot.msg  initrd.img  isolinux.cfg  splash.png  vesamenu.c32

cp  /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img       /var/lib/tftpboot/

ls  /var/lib/tftpboot/
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz

部署图形模块(vesamenu.c32)与背景图片(splash.png)

cp  /mnt/isolinux/vesamenu.c32 /mnt/isolinux/splash.png   /var/lib/tftpboot/

修改菜单文件的内容

vim  /var/lib/tftpboot/pxelinux.cfg/default

  1     default vesamenu.c32    #默认加载运行图形模块
  2     timeout 600              #读秒的时间,1/10秒
    ...
  10    menu background splash.png   #背景图片
  11    menu title PXE Server  #标题内容
    ...
  61    label linux
  62    menu label ^Install  CentOS 7   #菜单显示内容
  63    menu default         #读秒结束的默认选项
  64    kernel vmlinuz        #加载运行内核
  65    append initrd=initrd.img  #加载运行驱动程序
  # 后面的label没有需要可以都删掉
  • 基本思路
    – DHCP服务—>IP地址、next-server、filename
    – TFTP服务—>pxelinux.0
    – pxelinux.0—>读取菜单文件/var/lib/tftpboot/pxelinux.cfg/default
    – default—>图形模块、驱动程序、背景图片……

初步测试

  • 将虚拟机对应网卡的本地DHCP服务取消,避免和自己的DHCP服务器冲突,新建一台对应网段虚拟机(无需挂在镜像文件)打开就会看到安装菜单
  • 测试机最少2G内存
    pxe menu

部署安装源

  • 构建FTP服务,共享光盘所有内容(也可以采用HTTP服务安装)
    – FTP:文件传输协议 默认端口:21
    – 默认共享数据的路径:/var/ftp
#安装软件包
yum  -y  install  vsftpd
systemctl  restart  vsftpd
#创建挂载点
mkdir  /var/ftp/centos
mount   /dev/cdrom  /var/ftp/centos
mount: /dev/sr0 写保护,将以只读方式挂载

curl  ftp://192.168.4.7/centos/
-rw-rw-r--    1 0        0              14 May 02  2018 CentOS_BuildTag
drwxr-xr-x    3 0        0            2048 May 03  2018 EFI
-rw-rw-r--    1 0        0             227 Aug 30  2017 EULA
-rw-rw-r--    1 0        0           18009 Dec 09  2015 GPL
drwxr-xr-x    2 0        0            2048 May 03  2018 LiveOS
drwxrwxr-x    2 0        0         1640448 May 03  2018 Packages
-rw-rw-r--    1 0        0            1690 Dec 09  2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--    1 0        0            1690 Dec 09  2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--    1 0        0            2883 May 07  2018 TRANS.TBL
drwxr-xr-x    3 0        0            2048 May 03  2018 images
drwxr-xr-x    2 0        0            2048 May 03  2018 isolinux
drwxrwxr-x    2 0        0            4096 May 07  2018 repodata

生成应答文件,实现无人值守安装

  • 安装图形的工具,生成应答文件
yum -y install system-config-kickstart

# system-config-kickstart程序需要Yum仓库的支持才能显示软件包的选择,必须要求Yum仓库的标识为[development]
vim /etc/yum.repos.d/mylocal.repo 
[development]
name=development
baseurl=file:///mnt
enabled=1
gpgcheck=0

system-config-kickstart    # 生成 ks.cfg 应答文件,注意将安装源地址写好,其他自定义即可
  • 利用FTP服务共享ks.cfg应答文件
cp  /root/ks.cfg  /var/ftp/
curl  ftp://192.168.4.7/ks.cfg   #测试访问
  • 利用菜单文件指定ks.cfg应答文件位置
vim /var/lib/tftpboot/pxelinux.cfg/default
...
61    label linux
62    menu label ^Install CentOS 7
63    menu default
64    kernel vmlinuz
65    append initrd=initrd.img ks=ftp://192.168.4.100/ks.cfg #指定获取应答文件
  • 再次开启测试机,即可完成自定义的自动装机

总结思路:

1.dhcp服务—》IP地址、next-server、filename “pxelinux.0”
2.tftp服务—》 “pxelinux.0”
3.pxelinux.0—》读取菜单文件/var/lib/tftpboot/pxelinux.cfg/default
4.default—》vesamenu.c32、读秒时间、vmlinuz、initrd.img、ftp://192.168.4.100/ks.cfg
5.ks.cfg应答文件—》语言、键盘类型、分区、安装方式url --url=“ftp://192.168.4.100/centos”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值