PXE高效批量网络装机

目录

一、PXE原理和概念

1、PXE概述

2、PXE批量部署的优点

PXE服务的构建过程

二、搭建 PXE 远程安装服务器

环境准备:

1)安装 tftp-server  xinetd  dhcp  vsftpd  syslinux 软件包

2)复制 vmlinuz  initrd.img  pxelinux.0 到  /var/lib/tftpboot/ 目录

3)在 /var/lib/tftpboot/ 目录里准备 PXE 启动菜单配置文件  pxelinux.cfg/default

4)修改服务配置文件,启动 tftp-server  xinetd  dhcpd  vsftpd 服务

在服务器中设置

​编辑 新建一个虚拟机 (网卡选仅主机模式) 开机即可全自动化安装


一、PXE原理和概念

1、PXE概述

PXE 严格来说并不是一种安装方式,而是一种引导的方式。
协议分为 client 和 server 端
运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。

2、PXE批量部署的优点

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

PXE服务的构建过程

PXE服务器和客户机的工作过程:

  1. PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。
  2. DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目录/var/lib/tftpboot/下
  3. PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
  4. TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
  5. PXE客户机通过网络来启动到系统安装主界面。
  6. PXE客户机向文件共享服务器(ftp、http、nfs等)发起获取centos或windows系统安装文件的请求。
  7. 文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。
  8. PXE客户机进入到安装提示向导界面,用户需要手动来完成系统安装的操作。

二、搭建 PXE 远程安装服务器

环境准备:


一台作为pxe服务器,一台作为客户机,网卡取消勾选dhcp配置,关闭防火墙,关闭selinux,仅主机模式下操作

1)安装 tftp-server  xinetd  dhcp  vsftpd  syslinux 软件包

tftp-server  xinetd    用于传输系统内核和系统初始化镜像文件 vmlinuz  initrd.img
dhcp                          用于自动分配地址、指定PXE引导文件位置  next-server    filename
vsftpd                        用于提供系统软件包安装源
syslinux                    用于提供PXE引导程序文件 pxelinux.0

yum install -y tftp-server  xinetd  dhcp  vsftpd  syslinux

2)复制 vmlinuz  initrd.img  pxelinux.0 到  /var/lib/tftpboot/ 目录
[root@localhost yum.repos.d]# cd /mnt
[root@localhost mnt]# ls
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@localhost mnt]# cd images/
[root@localhost images]# ls
efiboot.img  pxeboot  TRANS.TBL
[root@localhost images]# cd pxeboot/
[root@localhost pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz    #找到vmlinuz initrd.img两个文件复制到/var/lib/tftpboot/中
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@localhost pxeboot]# cd /usr/share/syslinux/
[root@localhost syslinux]# ls
altmbr.bin     dosutil       ifcpu64.c32         kbdmap.c32   pcitest.c32     syslinux.com
altmbr_c.bin   elf.c32       ifcpu.c32           linux.c32    pmload.c32      syslinux.exe
altmbr_f.bin   ethersel.c32  ifplop.c32          ls.c32       poweroff.com    ver.com
cat.c32        gfxboot.c32   int18.com           lua.c32      pwd.c32         vesainfo.c32
chain.c32      gptmbr.bin    isohdpfx.bin        mboot.c32    pxechain.com    vesamenu.c32
cmd.c32        gptmbr_c.bin  isohdpfx_c.bin      mbr.bin      pxelinux.0      vpdtest.c32
config.c32     gptmbr_f.bin  isohdpfx_f.bin      mbr_c.bin    reboot.c32      whichsys.c32
cpuid.c32      gpxecmd.c32   isohdppx.bin        mbr_f.bin    rosh.c32        zzjson.c32
cpuidtest.c32  gpxelinux.0   isohdppx_c.bin      memdisk      sanboot.c32
diag           gpxelinuxk.0  isohdppx_f.bin      memdump.com  sdi.c32
disk.c32       hdt.c32       isolinux.bin        meminfo.c32  sysdump.c32
dmitest.c32    host.c32      isolinux-debug.bin  menu.c32     syslinux64.exe
[root@localhost syslinux]# cp pxelinux.0 /var/lib/tftpboot/  找到pxelinux.0复制到/var/lib/tftpboot/中
[root@localhost syslinux]# ls /var/lib/tftpboot/
initrd.img  pxelinux.0  vmlinuz            #三个文件复制齐了

3)在 /var/lib/tftpboot/ 目录里准备 PXE 启动菜单配置文件  pxelinux.cfg/default

vim default


append rescue initrd=initrd.img method=ftp://192.168.80.10/centos7
default auto
prompt 0

label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.10/centos7 ks=ftp://192.168.100.10/ks.cfg

label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.10/centos7 ks=ftp://192.168.100.10/ks.cfg

label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.10/centos7 ks=ftp://192.168.100.10/ks.cfg
4)修改服务配置文件,启动 tftp-server  xinetd  dhcpd  vsftpd 服务
  • [root@localhost pxelinux.cfg]# cd /etc/xinetd.d/
    [root@localhost xinetd.d]# ls                  #切目录找tftp
    chargen-dgram   daytime-dgram   discard-dgram   echo-dgram   tcpmux-server  time-dgram
    chargen-stream  daytime-stream  discard-stream  echo-stream  tftp           time-stream
    [root@localhost xinetd.d]# vim tftp            #配置tftp
    [root@localhost xinetd.d]# systemctl enable --now tftp xinetd   #自启且开启tftp xinetd
    Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
    [root@localhost xinetd.d]# systemctl status tftp xinetd        #检查运行状态
    

  • [root@localhost xinetd.d]# cd /usr/share/doc/dhcp-4.2.5/
    [root@localhost dhcp-4.2.5]# ls
    dhcpd6.conf.example  dhcpd.conf.example  ldap
    [root@localhost dhcp-4.2.5]# \cp -f dhcpd.conf.example /etc/dhcp/dhcpd.conf
    [root@localhost dhcp-4.2.5]# cd /etc/dhcp/
    [root@localhost dhcp]# ls
    dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts
    [root@localhost dhcp]# vim dhcpd.conf            #配置dhcpd
    [root@localhost dhcp]# systemctl enable --now dhcpd     #开启dhcpd服务

  • [root@localhost dhcp]# systemctl enable --now vsftpd    vsftpd启动!
    

  • [root@localhost dhcp]# yum install -y system-config-kickstart.noarch   #下载自动化服务文件
在服务器中设置

配置静态ip也可以 是一种选择 但这里我选择了更快捷的dhcp


脚本如下

mkdir /etc/yum.repos.d/repo.bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak
echo '[local]
name=local
baseurl=ftp://192.168.80.30/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo

返回 根目录下查看 ls


配置ks.cfg

[root@localhost ~]# vim ks.cfg 

将原有的软件包配置复制下来 粘贴添加到 ks.cfg

[root@localhost ~]# vim anaconda-ks.cfg

            

%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
kexec-tools

%end

打开文本 粘贴配置到行尾

[root@localhost ~]# vim ks.cfg 

复制配置文件 挂载使用

[root@localhost ~]# cp ks.cfg /var/ftp/
[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
ks.cfg  pub
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]# ls centos7/
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

 新建一个虚拟机 (网卡选仅主机模式) 开机即可全自动化安装

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值