PXE自动化部署centos7

安装httpd,dhcp,tftp-server,syslinux,system-config-kickstart

在 /var/www/html路径下新建 centos/7/os/x86_64(mkdir /var/www/html/centos/7/os/x86_64 -p)

将centos镜像挂载至mnt目录下,拷贝所有文件至/var/www/html/centos/7/os/x86_64目录下 (cp -rv /mnt/* /var/www/html/centos/7/os/x86_64/)

关闭防火墙,关闭selinux,启动httpd服务,确保网页可以访问到x86_64目录下的所有文件,如图所示

 制作DHCP文件,cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

按如下要求修改dhcpd.conf文件
复制代码
 # option definitions common to all supported networks...
         option domain-name "example.org";
         option domain-name-servers 10.0.6.26;
      子网配置(其中next-server为tftp服务器所在的服务器IP)
      # DHCP server to understand the network topology.
          subnet 10.1.81.0 netmask 255.255.255.0 {
          range 10.1.81.20 10.1.81.28;
          option routers 10.1.81.254;
          next-server 10.1.81.126;
          filename "pxelinux.0";
          }
复制代码

 配置完毕,启动DHCP服务

在客户端使用dhclient -s serverip 命令来测试能否正常从dhcp server自动获取地址
system-config-kickstart文件制作
基本设置,语言,时区,root密码等,勾选text mod后可以使用纯文本界面安装,时区 语言可以等文件制作完毕后手动修改
基本设置,语言,时区,root密码等,勾选text mod后可以使用纯文本界面安装,时区 语言可以等文件制作完毕后手动修改

 选择安装源,路径选择网页访问路径

 选择安装新的启动引导,使用net.ifnames=0将网卡名称从ens33修改为eth0

 自定义分区,按实际需求分配

网络按照实际需求分配

  关闭防火墙和selinux

 选择需要安装的软件包(此处有BUG,需要将yum源的名称改成“development”才能正常显示)

 

 安装前预配置

 安装后执行的命令

  将文件保存至root家目录,命名为ks.cfg

 在%post  %end区域间可以写入安装系统后需要执行的命令

  在/var/www/html下新建ks目录,将制作完毕的ks文件放至/var/www/html/ks目录下,打开网页 确保可以通过网页访问ks文件

 

 

 准备pxe启动相关文件

mkdir /var/lib/tftpboot/pxelinux.cfg/

cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/

cp /var/www/html/centos/7/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/

cp /var/www/html/centos/7/os/x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

最终目录列表如下

/var/lib/tftpboot/
├── initrd.img
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│   └── default
└── vmlinuz

准备启动菜单

复制代码
vi /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32
timeout 600
menu title PXE INSTALL MENU
label auto
menu label ^Auto Install CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://10.1.81.126/ks/ks.cfg
label manual
menu label ^Manual Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.repo=http://10.1.81.126/centos/7/os/x86_64
label local
menu default
menu label ^Boot from local drive
localboot 0xffff
复制代码

启动tftp服务,使用客户端测试tftp

客户端测试

posted @   陈濛  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示