部署PXE远程安装服务

发布时间:2024年01月18日

部署PXE远程安装服务

一、PXE

1、系统装机的三种引导方式

启动操作系统

1.硬盘

2.光驱(u盘)

3.网络启动pxe

2、系统安装过程

  • 加载boot loader

Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境

  • 加载启动安装菜单
  • 加载内核和initrd系统(文件才能使用文件)
  • 加载根系统
  • 运行anaconda的安装向导

Linux安装光盘的安装相关文件

  • 在系统光盘的isolinux目录下安装相关的文件
相关文件说明
boot.cat相当于grub的第一阶段
isolinux.bin光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
isolinux.cfg启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
vesamenu.c32是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单
memtest内存检测程序
splash.png光盘启动菜单界面的背景图
vmlinuz是内核映像
initrd.imgramfs文件(精简版的linux系统,文件系统驱动等)

3、PXE简介

PXE:预启动执行环境,在操作系统之前运行)是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。预启动执行环境,在操作系统之前运行。

相关软件包说明
dhcp实现地址自动分配
ftp将安装文件传输给客户机(共享目录)
xinetd新一代网络守护进程服务程序,管理轻量级的Internet服务
tftp简单文件传输协议udp协议,服务端和客户端之间进行简单文件传输(小文件),依赖于xinetd管理,端口号69

4、PXE原理

  • 网卡需要查找相关的dhcp服务器(获取地址时间)

  • 找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)

  • 网卡使用tftp客户端把引导程序加载到内存中来

  • bios执行引导程序

  • 引导程序会去TFTP去查找配置文件

  • 根据配置文件去引导安装系统

  • 系统安装过程

pxe批量部署的优点

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

二、PXE安装系统的过程

  • 服务端
    • 运行DHCP服务,用来分配地址,定位引导程序。
    • 运行TFTP服务,提供引导程序下载。
  • 客户端
    • 网卡支持PXE协议
    • 主板支持网络引导

1、需要的四个文件

image-20240117230037929

  • pxelinux.0:引导程序。(来自syslinux程序)
  • pxelinux.cfg :存放default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
  • vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
  • initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)

2、PXE安装系统的命令格式过程

##服务端:
yum install dhcp vsftpd tftp-server.x86_64 syslinux -y    #安装需要的软件

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf    #复制配置文件模板

vim /etc/dhcp/dhcpd.conf    #编辑配置文件
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.20 192.168.10.30;
  option routers 192.168.10.2;
  next-server 192.168.10.11;
  filename "pxelinux.0";
}
#第一行表示分配的子网和子网掩码
#第二行表示分配的ip地址的范围
#第三行表示网关
#第四行表示客户端从ip地址192.168.10.11的服务器找引导文件
#第五行表示指定启动文件

rpm -ql tftp-server   #查看tftp-server安装包的所有文件

vim /etc/xinetd.d/tftp    #编辑配置文件
disable                 = no
#将14行的yes改为no

cd /var/lib/tftpboot    #切换目录

mount /dev/sr0 /mnt    #挂载

ls /mnt/isolinux/    #查看/mnt/isolinux/目录下的文件

cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img  .    #将需要的vmlinuz、initrd.img文件复制到当前目录

rpm -ql syslinux |grep pxelinux.0    #查找pxelinux.0的文件位置

cp /usr/share/syslinux/pxelinux.0 .    #将pxelinux.0文件复制到当前目录

mkdir pxelinux.cfg    #建立文件夹

cd pxelinux.cfg/    #切换目录

vim default    #编辑配置文件
default linux    #指定默认的启动标题
timeout 600    #等待时间

label linux    #引导标签
        kernel vmlinuz    #指定内核映像文件
        append initrd=initrd.img method=ftp://192.168.10.11/centos7    #启动参数

tree    #查看当前目录下的文件

mkdir /var/ftp/centos7 -p    #建立文件夹(在/var/lib/tftpboot目录下新建)

mount /dev/sr0 /var/ftp/centos7    #挂载

systemctl start tftp    #开启服务

systemctl start vsftpd    #开启服务

systemctl start dhcpd    #开启服务

##客户端:安装系统的客户机内存最少2G,否则配置的文件运行不起来

3、PXE安装系统的过程(图文详解)

  • 服务端

image-20240117215824504

image-20240117143032585

image-20240117143729624

image-20240117150327129

image-20240117220242196

image-20240117215717573

  • 客户端

image-20240117154942087

获取到安装文件(半自动化),剩下步骤还需要手动安装

image-20240117155019215

4、 kickstart 无人值守安装(一键安装)

  • kickstart文件主要包括三个部分:命令段,程序包段,脚本段
4.1 命令段
  • 指明各种安装前配置,如键盘类型等

命令段中的常见命令

常见命令说明
keyboard设定键盘类型
lang语言类型
zerombr清除mbr
clearpart清除分区
part创建分区
rootpw指明root的密码
timezone时区
text文本安装界面
network指定网络设置
firewall设置防火墙设置
selinux设置selinux设置
reboot安装完自动重启
user安装完成后为系统创建新用户
url指明安装源
4.2 程序包段
  • 指明要安装的程序包组或程序包,不安装的程序包等

  • %packages

  • @^environment group: 指定环境包组,如:@^minimal-environment

  • @group_name

  • package

  • -package

  • %end

4.3 脚本段
  • %pre:安装前脚本

  • %post:安装后脚本

4.4 命令格式
##服务端:
yum install system-config-kickstart.noarch -y    #安装kickstart软件包

服务端后续过程是图形界面,详细情况见下面图文详解,完成后将引导程序写入配置文件

vim pxelinux.cfg/default    #修改配置文件
default linux
timeout 600

label linux
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.10.11/centos7
   ks=ftp://192.168.10.11/ks.cfg
#将引导程序写入配置文件

##客户端:启动客户机,不需要进行后续操作
4.5 kickstart 无人值守安装(图文详解)
  • 服务端

image-20240117215453048

image-20240117160354162

image-20240117160838342

image-20240117171823643

image-20240117161153598

image-20240117162056640

image-20240117162001326

image-20240117162321523

image-20240117162359694

image-20240117162844530

image-20240117163446554

image-20240117201323144

  • 客户端(重新启动客户机,不需要进行后续操作)

image-20240117215108128

文章来源:https://blog.csdn.net/2301_81272194/article/details/135662589
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。