搭建PXE网络装机服务器(实验详解)
创始人
2025-01-21 09:03:28
0

概述

PXE(Preboot Execution Environment)是一种计算机网络协议,它允许计算机通过网络从远程服务器启动和安装操作系统,而无需使用本地存储设备。PXE网络装机是一种常见的自动化操作系统部署方式,特别适用于大规模计算机系统管理、服务器集群部署、虚拟化环境以及无人值守的安装场景。

优点

  1. 集中管理: 通过PXE网络装机,管理员可以集中管理操作系统镜像、引导加载器和安装文件。这样可以确保所有部署的系统都使用相同的标准配置,减少了配置不一致性和混乱。

  2. 快速部署: 使用PXE网络装机,可以快速部署大量的计算机系统。无需为每台计算机手动插入安装介质,节省了大量时间。

  3. 减少硬件需求: 由于PXE网络装机使用网络进行安装,不需要物理介质(如光盘或USB驱动器),从而节省了硬件成本和资源。

搭建需要满足的需求

若要搭建 PXE 网络体系,必须满足以下几个前提条件:
客户端:
1.客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。
服务端:
2.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
3.服务器要通过 TFTP服务(简单文件传输协议)来提供系统内核和引导镜像文件的下载

搭建 PXE 远程安装服务器

1.安装TFTP服务

yum -y install tftp-server xinetd

 2.修改TFTP服务的配置文件并启动

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 } 

 设置后启动服务

systemctl start tftp systemctl enable tftp systemctl start xinetd systemctl enable xinetd

安装并且启动DHCP服务

1.安装DHCP

yum -y install dhcp

 2.修改DHCP配置文件并启动服务

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf.bak  vim /etc/dhcp/dhcpd.conf next-server 192.168.42.140; filename "pxelinux.0";  option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org;  default-lease-time 600; max-lease-time 7200;  log-facility local7;  subnet 192.168.122.1 netmask 255.255.255.255 { }  subnet 192.168.42.0 netmask 255.255.255.0 {   range 192.168.42.88 192.168.42.188;   option routers 192.168.42.140; }

 修改完成文件后保存退出,启动dhcp服务

systemctl start dhcpd

准备 Linux 内核、初始化镜像文件

打开虚拟机设置连接光盘镜像

df -Th | grep /dev/sr0    #查看是否连接成功 mount /dev/sr0 /mnt       #挂载光盘镜像 cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/	#复制 Linux系统的内核文件 到TFTP根目录下 cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/ #复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下

 准备 PXE 引导程序

yum -y install syslinux									#PXE引导程序由软件包 syslinux 提供 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/	#复制 PXE引导程序 到TFTP根目录下 

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

yum -y install vsftpd mkdir /var/ftp/centos7 cp -rf /mnt/* /var/ftp/centos7/ systemctl start vsftpd

 配置启动菜单文件

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

mkdir /var/lib/tftpboot/pxelinux.cfg  #需要在ftfpboot目录下创建pxelinux.cfg  vim /var/lib/tftpboot/pxelinux.cfg/default  #在pxelinux.cfg目录下创建default并编辑配置文件 default auto prompt 0  label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.42.140/centos7 ks=ftp://192.168.42.140/ks.cfg #图形安装(默认)引导入口  label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.42.140/centos7 #文本安装引导入口  label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.42.140/centos7 #救援模式引导入口

 关闭防火墙,验证 PXE 网络安装

systemctl stop firewalld && systemctl disable firewalld setenforce 0

以上 PXE 网络安装已经部署完成,如果要实现自动化安装请继续往下看

自动化安装linux系统

1.安装 system-config-kickstart 工具

yum install -y system-config-kickstart

2.打开“Kickstart 配置程序”窗口

通过桌面菜单“应用程序”-->“系统工具”-->“Kickstart” 打开

 3.配置kickstart选项

/bin/bash rm -rf /etc/yum.repos.d/* echo ‘[local] name=local baseurl=ftp://192.168.42.140/centos7 enabled=1 gpgcheck=0’ > /etc/yum.repos.d/local.repo

 4.保存配置文件 

点击左上角文件然后保存到/root下

保存完成后将 /root/ks.cfg 复制到 /var/ftp/

然后配置需要安装的软件包

cp /root/ks.cfg /var/ftp/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 chrony kexec-tools  %end %anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty %end

 然后修改 TFTP 配置文件,添加以下内容

label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.42.140/centos7 ks=ftp://192.168.42.140/ks.cfg #添加 ks 引导参数以指定 ks.cfg 应答文件的 URL 路径

修改文件权限 

chmod 777 /root/ks.cfg chmod 777 /var/ftp/ks.cfg

 

5.验证无人值守安装

当客户机每次以PXE方式引导时,将自动下载ks.cfg应答配置文件,然后根据其中的设置安装CentOS 7 系统,而无须手工干预。

 然后开启虚拟机会自动安装无需我们做任何事情,直到安装结束

 进登入界面后使用root用户登入,密码是我们Kickstart 配置文件里的密码

相关内容

热门资讯

一分钟内幕!科乐吉林麻将系统发... 一分钟内幕!科乐吉林麻将系统发牌规律,福建大玩家确实真的是有挂,技巧教程(有挂ai代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...