PXE实现自动批量安装部署操作系统

目录

一、PXE介绍

二、PXE涉及的相关知识点

三、搭建PXE网络体系的前提

四、服务端要安装一系列的依赖环境

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

5.1、安装并启动TFTP服务

5.2、安装并启用 DHCP 服务

5.3、准备 Linux 内核、初始化镜像文件、准备 PXE 引导程序

5.4、安装FTP服务,准备CentOS 7 安装源

5.5、配置启动菜单文件

验证

六、实现 Kickstart 无人值守安装


一、PXE介绍

PXE(Preboot eXecution Environment)是一种在计算机启动时使用网络接口从远程服务器获取操作系统安装和启动信息的技术。通过PXE,计算机可以从局域网中的PXE服务器上下载操作系统安装文件,并进行自动化的操作系统部署或故障排除。由Intel公司开发的PXE网络引导技术工作在Client/Server模式,可以同时装配多台机器,安装系统、配置各种服务,同时不需要光盘、U 盘等安装介质实现远程连接。

二、PXE涉及的相关知识点

PXE协议:PXE是一种预启动执行环境,提供了一种从网络上启动计算机并在网络环境中安装操作系统的方法。PXE协议包括了BOOTP(Bootstrap Protocol)和TFTP(Trivial File Transfer Protocol),同时也支持DHCP、HTTP等其他协议。

PXE引导文件:PXE引导文件包括了各种操作系统的引导文件,如Linux内核、Windows PE等,它们通常存储在PXE服务器上的TFTP目录中。当客户端通过PXE启动时,它会从PXE服务器上下载相应的引导文件。

DHCP服务:DHCP服务是为客户端分配IP地址、子网掩码、网关等网络参数的协议。在PXE自动装机过程中,DHCP服务器会向客户端提供PXE服务器的IP地址和PXE引导文件的位置信息。

TFTP服务:TFTP服务是一个简单的文件传输协议,用于将引导文件和操作系统映像从PXE服务器传输到客户端计算机上。

操作系统映像:操作系统映像是安装操作系统所需的文件,通常包括了操作系统核心文件、驱动程序、软件包等。在PXE自动装机中,这些映像文件存储在PXE服务器上,并通过TFTP服务传输到客户端计算机上进行安装。

三、搭建PXE网络体系的前提

1、合适的设备:需要拥有一台作为PXE服务器的计算机,该计算机需要具备足够的处理能力和存储空间来运行PXE服务和存储操作系统映像。此外,还需要一台或多台客户端计算机,这些计算机将通过PXE引导从服务器上下载并安装操作系统。

2、网络基础设施:你需要拥有一个稳定可靠的局域网环境,以便PXE服务器和客户端计算机之间进行通信。确保网络连接正常、IP地址分配正确,并且网络设备(如交换机、路由器)能够正常工作。客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。

3、PXE服务器软件:你需要选择并安装适当的PXE服务器软件。常用的PXE服务器软件包括ISC DHCP、TFTPD32、tftp-server、Serva等,它们提供了DHCP、TFTP等服务,方便配置和管理PXE引导文件、操作系统映像等。

四、服务端要安装一系列的依赖环境

TFTP:简单文件传输协议。基于UDP实现,用于客户端和服务端之间进行小文件的传输

xinetd:网络守护进程服务器,管理TFTP

DHCP:分配IP地址,提供引导文件的文件

TFP:传输镜像等等大文件

kickstart:无人值守程序

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

服务器中包含 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。

服务器IP地址:172.16.80.12

5.1、安装并启动TFTP服务

//关闭防火墙,临时禁用SELinux安全机制
[root@12 ~]# systemctl stop firewalld
[root@12 ~]# setenforce 0


//安装 TFTP 服务
[root@12 ~]# yum -y install tftp-server xinetd

//修改TFTP服务的配置文件
//将第十行 wait 的值改为 yes (表示可以连接多台主机)
//将第十四行的 disable 的值改为 no (表示开启TFTP服务)
[root@12 ~]# vim /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

//重启tftp和xinetd服务,并设置开机自启
[root@12 ~]# systemctl restart tftp
[root@12 ~]# systemctl enable tftp
[root@12 ~]# systemctl restart xinetd
[root@12 ~]# systemctl enable xinetd

5.2、安装并启用 DHCP 服务

//安装dhcp软件包
[root@12 ~]# yum -y install dhcp

//将dhcp配置模板复制到dhcp配置文件中
[root@12 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? yes

//修改DHCP服务的配置文件
[root@12 ~]# vim /etc/dhcp/dhcpd.conf
//在11行的max-lease-time 7200; 下添加
//ddns-update-style none;
//next-server 172.16.80.12;
//filename "pxelinux.0";
//如下所示
 default-lease-time 600;
 max-lease-time 7200;
 ddns-update-style none;
 next-server 172.16.80.12;
 filename "pxelinux.0";

//修改第35到38行的subnet模块
//如下所示
subnet 172.16.80.0 netmask 255.255.255.0 {
  range 172.16.80.50 172.16.80.60;
  option routers 172.16.80.12;
}

//:wq 保存退出

//重启dhcpd服务,并设置为开机自启
[root@12 ~]# systemctl restart dhcpd
[root@12 ~]# systemctl enable dhcpd

对配置文件里修改/添加的内容解释

ddns-update-style none;        ->        禁用 DNS 动态更新

next-server 172.16.80.12;        ->        指定 TFTP 服务器的地址

filename "pxelinux.0";        ->        指定要下载的 PXE 引导程序的文件
 

subnet 172.16.80.0 netmask 255.255.255.0 {        #声明要分配的网段地址
  range 172.16.80.50 172.16.80.60;        #设置地址池
  option routers 172.16.80.12;        #默认网关地址指向TFTP服务器的IP地址
}

5.3、准备 Linux 内核、初始化镜像文件、准备 PXE 引导程序

[root@12 ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@12 ~]# cd /mnt/images/pxeboot

//复制 Linux系统的内核文件 到TFTP根目录下
[root@12 pxeboot]# cp vmlinuz /var/lib/tftpboot/

//复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下
[root@12 pxeboot]# cp initrd.img /var/lib/tftpboot/

[root@12 pxeboot]# yum -y install syslinux
//复制 PXE引导程序 到TFTP根目录下
[root@12 pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

如果报如下错误:

[root@12 ~]# mount /dev/sr0 /mnt
mount: no medium found on /dev/sr0


5.4、安装FTP服务,准备CentOS 7 安装源

//安装vsftpd服务
[root@12 pxeboot]# yum -y install vsftpd

//在ftp根目录下创建目录centos7
[root@12 pxeboot]# mkdir /var/ftp/centos7

//将镜像文件强制复制到centos7目录中,可加&让它自己后台运行
[root@12 pxeboot]# cp -rf /mnt/* /var/ftp/centos7/

//重启vsftpd服务,设置开机自启
[root@12 pxeboot]# systemctl restart vsftpd
[root@12 pxeboot]# systemctl enable vsftpd

5.5、配置启动菜单文件

默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default。

[root@12 pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
//创建default文件
[root@12 pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
//添加内容如下
default auto
#指定启动菜单的默认入口
prompt 0
#不等待用户控制,自行向下选择

label auto
#图像化界面的引导入口,label 用来定义启动项
kernel vmlinuz
#加载内核文件,kernel 和 append用来定义引导参数
append initrd=initrd.img method=ftp://172.16.80.12/centos7

label linux text
#文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://172.16.80.12/centos7

label linux rescue
#救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://172.16.80.12/centos7


//:wq保存退出

验证

自定义新建一个虚拟机,简单测试验证一下 :

 

 开启刚才新建的虚拟机

会有如下提示,点否即可

 

 

服务器配置成功

六、实现 Kickstart 无人值守安装

在上述实验中,已经可以做到开机就能自动获取镜像,安装镜像,配置基础网路配置。但是后半部分依旧需要手动安装。所以要实现全自动化,就要引入Kickstart程序服务,实现真正完全全自动化安装。

//安装软件包
[root@12 pxeboot]# yum install -y system-config-kickstart

MobaXterm远程连接软件可以用命令调出 Kickstart 配置程序界面,命令为:system-config-kickstart

//打开 Kickstart 配置程序界面
[root@12 pxeboot]# system-config-kickstart

基本配置 

 安装方法

引导装载程序选项

 

 分区信息

.

点击ADD添加布局

添加 /boot

 添加 交换分区

添加 / 

网络配置

 

防火墙配置

 

安装后脚本

 

保存文件

 

//保存后配置文件在~目录
[root@12 pxeboot]# cd ~
[root@12 ~]# ls
anaconda-ks.cfg  Documents  ks.cfg  original-ks.cfg  Public     Videos
Desktop          Downloads  Music   Pictures         Templates
//编辑 ks.cfg ,加入要下载的包 
[root@12 ~]# vim ks.cfg

#在原有的基础上添加以下内容

%packages

@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@print-client
@x11
binutils
chrony
ftp
gcc
kernel-devel
kexec-tools
make
open-vm-tools
patch
python

%end


[root@12 ~]# cp ks.cfg /var/ftp/ks.cfg
[root@12 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
#改为以下内容

default auto
prompt 0

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

label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://172.16.80.12/centos7

label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://172.16.80.12/centos7

 重置刚刚建的虚拟机,虚拟机会自动安装

自动装机,实验成功

  • 24
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: PXE批量部署服务器是一种通过网络引导技术实现批量部署操作系统的方法。它使用PXE(Preboot Execution Environment)技术,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统。在部署过程中,需要搭建PXE服务器,并配置好DHCP服务、HTTP服务和TFTP服务。DHCP服务用于为PXE客户端分配IP地址,HTTP服务用于提供镜像文件和PXE服务器的kfs文件,TFTP服务用于文件传输。具体的步骤包括创建一个新的虚拟机,并确保所搭建的服务已经开启。如果虚拟机可以自动跳转至安装步骤,则说明PXE部署已经成功,可以进行系统批量部署了。在部署过程中,可能会遇到找不到服务的情况,这时需要检查httpd、dhcpd和tftp服务是否已经开启。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [PXE 批量部署服务器 操作手册](https://blog.csdn.net/m0_58798050/article/details/125353286)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [在centos 7.6部署pxe(网络自动化引导),进行系统批量部署](https://blog.csdn.net/C888_8888_888/article/details/125364200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [PXE高效批量网络装机](https://blog.csdn.net/qq_44239779/article/details/125952728)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值