PXE高效批量网络装机

PXE的优点

规模化:同时装配多台服务器

自动化:安装系统,配置各种服务

远程实现:不需要光盘,U盘等安装介质

PXE

预启动执行环境,在操作系统之前运行

服务端

运行DHCP服务,用来分配地址、定位引导程序

运行TFTP服务,提供引导程序下载

配置静态IP

复制代码
nmcli con mod ens33 connection.autoconnect yes ipv4.add 192.168.27.131/24 ipv4.gateway 192.168.27.2 ipv4.dns 192.168.27.2 ipv4.method man

nmcli con up ens33 

配置基础环境

1.关闭防火墙
2.获取sceLinux的状态

getenforce

3.挂载光盘
复制代码
mkdir /media/cdrom         //创建挂载点
mount /dev/cdrom /media/cdrom        //挂载光盘
4.下载并配置共享软件
复制代码
yum -y install vsftpd

1.将这些文件复制到FTP服务器上,以便通过网络进行分发或访问

复制代码
mkdir /var/ftp/centos7
cp -r /media/cdrom/* /var/ftp/centos7/

2.启动vsftpd服务,设置开机自启动

复制代码
systemctl start vsftpd
systemctl enable vsftpd

验证方式

在此电脑文件搜索栏中输入 ftp://共享的机器IP地(192.168.207.131)/

5.安装tftp-server服务(TFTP-Server是一个基于UDP协议实现的简单文件传输服务器,具有多线程支持、配置简单、适用场景广泛等特点)
复制代码
yum -y install tftp-server

1.修改文件中的 vi /etc/xinetd.d/tftp

2.启动服务设置为开机自启动

复制代码
systemctl start tftp
systemctl enable tftp
6.复制镜像文件中的内核(vmlinuz)与初始化镜像(initrd.img)到 server_args 的文件地址中
复制代码
cd /media/cdrom/images/pxeboot/   //文件所在镜像文件中的位置
cp vmlinuz initrd.img /var/lib/tftpboot/
7.将PXE启动所需的pxelinux.0文件复制到TFTP服务器的根目录下,以便通过网络进行启动时使用

/usr/share/syslinux/目录通常包含与SYSLINUX相关的文件,SYSLINUX是一个开源的引导加载程序,用于从FAT文件系统启动Linux。pxelinux.0是SYSLINUX的一个组件,用于PXE(Preboot Execution Environment)启动。

这是目标目录的路径。/var/lib/tftpboot/通常用作TFTP(Trivial File Transfer Protocol)服务器的根目录,用于存放可供TFTP客户端下载的文件。TFTP是一个简单的文件传输协议,通常用于网络启动环境中,如PXE启动

下载引导程序安装包

复制代码
yum -y install syslinux

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
8.部署DHCP服务

1.下载服务软件包

复制代码
yum -y install dhcp

2.复制模板配置文件过去

复制代码
cp /usr/share/doc/dhcp-4.2.5//dhcpd.conf.example /etc/dhcp/dhcpd.conf 

3.修改复制的模板配置文件,找到部署DHCP服务,配置为

复制代码
subnet 192.168.27.0 netmask 255.255.255.0 {
  range 192.168.27.20 192.168.27.30;        //IP地址范围
  option routers 192.168.27.2;            //网段
  next-server 192.168.27.131;            //来源IP地址
  filename "pxelinux.0";
}

4.开启服务,设置为开机自启动

复制代码
systemctl start dhcpd
systemctl enable dhcpd
9.配置启动菜单
复制代码
mkdir /var/lib/tftpboot/pxelinux.cfg
vi /var/lib/tftpboot/pxelinux.cfg/default

2.添加如图信息

复制代码
default auto
prompt 1
label auto
    kernel vmlinuz
    append initrd=initrd.img method=ftp://192.168.27.131/centos7
label linux text
    kernel vmlinuz
    append text initrd=initrd.img method=ftp://192.168.27.131/centos7
label linux rescue
    kernel vmlinuz
    append rescue initrd=initrd.img method=ftp://192.168.27.131/centos7
10.测试,新建虚拟机配置2C4G

1.取消vm自带的DHCP服务分配

2.走到如图时,直接回车

11.配置无人值守

1.下载

复制代码
yum -y install system-config-kickstart
复制代码
 system-config-kickstart 

3.等待启动之后,根据弹框图示

4.图示仅供参考

5.

添加网络设备

1.添加一个根目录文件

​​​​​​​ ​​​​​​​

2.添加一个boot

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​

3.添加一个swap

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​

编辑安装后的脚本

echo 'test' > /tmp/test.txt

rm -f /etc/yum.repos.d/*

echo '[kgc]

name=kgc

baseurl=ftp://192.168.207.131/centos7

enabled=1

gpgcheck=0' > /etc/yum.repos.d/kgc.repo

保存

使用vi 编辑ks.cfg 应答文件,在尾部添加以下代码

复制代码
%packages 
@^minimal 
%end

复制应答文件到 var/ftp/

使用vi编辑

删除已编辑的信息,修改为

复制代码
default auto
prompt 0
label auto
    kernel vmlinuz
    append initrd=initrd.img method=ftp://192.168.27.131/centos7 ks=ftp://192.168.27.131/ks.cfg

开机,等待自动安装。ls查看root目录下是否有脚本创建的文件text.txt

相关推荐
学习编程的gas5 分钟前
Linux基本指令(三)
linux·运维·服务器
电鱼智能的电小鱼7 分钟前
无人机巡检智能边缘计算终端技术方案‌‌——基于EFISH-SCB-RK3588工控机/SAIL-RK3588核心板的国产化替代方案‌
网络·人工智能·嵌入式硬件·算法·机器人·无人机·边缘计算
mrbone119 分钟前
Linux-linux和windows创建新进程的区别以及posix_spawn
linux·运维·windows·多进程·fork
u01090535911 分钟前
内网穿透之Linux版客户端安装(神卓互联)
linux·运维·服务器
Dovis(誓平步青云)12 分钟前
华为云Flexus+DeepSeek征文|Flexus云服务器单机部署+CCE容器高可用部署快速搭建生产级的生成式AI应用
服务器·华为云·测评·dify-llm·cce·flexus
weixin_4786897638 分钟前
【TCP/IP和OSI模型以及区别——理论汇总】
网络·网络协议·tcp/ip
陌陌6231 小时前
使用TypeScript构建一个最简单的MCP服务器
服务器·javascript·typescript
天天摸鱼的java工程师1 小时前
凌晨四点,掘金签到 bug 现场抓包,开发同学速来认领!
服务器·前端·后端
conkl1 小时前
Kali Linux 安全工具解析
linux·网络·安全·kali
链上Sniper1 小时前
智能合约安全漏洞解析:从 Reentrancy 到 Integer Overflow
开发语言·网络·架构·区块链·php·智能合约