PXE高效批量网络装机

发布时间 2023-08-09 00:12:32作者: Candy独角兽

PXE高效批量网络装机

1.1 PXE概述

  • pxe(preboot execute environment):可以批量安装系统

  • pe:小型的操作系统,在有操作系统的情况下才能再装

pxe是通过网卡引导启动,网卡自带IP地址和tftp

实现的硬件条件

  1. BIOS支持
  2. 网卡支持PXE
  3. 需要在bios中开启开关,服务器一般没打开(bmc界面里打开)
  4. 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置,网卡自带DHCP功能,dhcp指明分配的IP地址
  5. 服务器通过tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载

1.2 PXE批量部署的优点

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

启动操作系统三种方式

  1. 硬盘
  2. 光驱(u盘)
  3. 网络启动 (pxe)

四大文件

  • pxelinux.cfg

  • isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件

  • vmlinuz:是内核映像

  • initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等)

1.3 实现PXE启动过程

  1. 网卡需要查找相关的dhcp服务器(获取地址时间)
  2. 找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
  3. 网卡使用tftp客户端吧引导程序加载到内存中来
  4. bios执行引导程序
  5. 引导程序会去TFTP去查找配置文件
  6. 根据配置文件去引导安装系统
  7. 系统安装过程

1.4 搭建过程中服务详解

  • TFTP服务

TFTP(简单文件传输协议):内核和引导文件

基于UDP实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合,使用UDP69端口

  • vsftp服务

可以使用http、ftp等方式共享文件安装

  • syslinux

syslinux是一个功能强大的引导加载程序,兼容各种介质

  • DHCP

1.5 kickstart 无人值守安装

  • kickstart无人值守技术
    • 创建应答文件,预先定义好

kickstart文件主要包括三个部分:

  • 命令段:指明各种安装前配置,如键盘类型等
  • 程序包段:指明要安装的程序包组或程序包,不安装的程序包等
  • 脚本段:
    • %pre: 安装前脚本
    • %post: 安装后脚本
[root@localhost pxelinux.cfg]#yum install system-config-kickstart -y
#安装图形化工具

1.6 实际操作

[root@localhost ~]#yum install dhcp -y
#下载dhcp安装包


[root@localhost ~]#systemctl stop firewalld.service  #关闭防火墙
[root@localhost ~]#setenforce 0   #关闭selinux

[root@localhost ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf  #复制主配置文件模板
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y  #选择yes
[root@localhost ~]#cd /etc/dhcp/  #切换dhcp目录
[root@localhost dhcp]#ls  #查看文件

[root@localhost dhcp]#vim dhcpd.conf  #进入配置文件


[root@localhost dhcp]#systemctl start dhcpd  #重启

[root@localhost dhcp]#yum install tftp-server.x86_64 -y  #下载tftp安装包


[root@localhost dhcp]#rpm -ql tftp-server   #查询软件包文件列表

[root@localhost dhcp]#vim /etc/xinetd.d/tftp  #进入tftp配置文件


[root@localhost dhcp]#systemctl start tftp     #启动tftp
[root@localhost dhcp]#cd /var/lib/tftpboot     #切换tftp根目录
[root@localhost tftpboot]#ls                   #查看文件
[root@localhost tftpboot]#pwd                  #查看路径

[root@localhost tftpboot]#mount /dev/sr0 /mnt   #将光驱挂载到mnt目录

[root@localhost tftpboot]#ls /mnt      #查看mnt目录
[root@localhost tftpboot]#cd /mnt      #切换到mnt目录
[root@localhost mnt]#cd isolinux/      #切换到isolinux目录
[root@localhost isolinux]#ls           #查看文件

[root@localhost isolinux]#cd /var/lib/tftpboot   #切换tftp根目录

[root@localhost tftpboot]#cp /mnt/isolinux/vmlinuz /var/lib/tftpboot
#复制vmlinuz到tftpboot

[root@localhost tftpboot]#cp /mnt/isolinux/initrd.img /var/lib/tftpboot
#复制initrd.img到tftpboot

[root@localhost tftpboot]#ls  #查看

[root@localhost tftpboot]#yum install syslinux -y   #下载syslinux安装包


[root@localhost tftpboot]#rpm -ql syslinux | grep pxelinux
#查询软件包文件列表过滤pxelinux

[root@localhost tftpboot]#cp /usr/share/syslinux/pxelinux.0 .  
#将pxelinux.0复制到当前文件夹
[root@localhost tftpboot]#ls  #查看文件

[root@localhost tftpboot]#yum install vsftpd -y   #下载vsftpd安装包


[root@localhost tftpboot]#cd /var/ftp   #切换ftp目录
[root@localhost ftp]#ls  #查看

[root@localhost ftp]#mkdir centos7   #新建centos7文件
[root@localhost ftp]#ls  #查看

[root@localhost ftp]#mount /dev/sr0 centos7/   #将光驱挂载到centos7文件
[root@localhost ftp]#ls  #查看
[root@localhost ftp]#ls centos7/  #查看centos7里的文件

[root@localhost ftp]#cd -  #切换到上一级目录
[root@localhost tftpboot]#mkdir pxelinux.cfg   #新建文件
[root@localhost tftpboot]#ls  #查看

[root@localhost tftpboot]#cd pxelinux.cfg   #切换目录
[root@localhost pxelinux.cfg]#ls   #查看文件

[root@localhost pxelinux.cfg]#vim default  #新建default文件


[root@localhost pxelinux.cfg]#systemctl start vsftpd   #重新启动vsftpd服务

[root@localhost pxelinux.cfg]#yum install system-config-kickstart -y
#下载kickstart图形化界面的包


基本配置


安装方法

引导文件

分区








防火墙配置

取消图形化安装

配置网卡






最小化安装成功
用户名:root
密码:123123
[root@localhost ~]#id lj
#显示用户