如何利用CentOS Cobbler和PXE启动技术实现高效批量装机操作?

更新于
2026-08-09 10:25:14
2阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

一、使用者痛点概述

在大规模服务器或工作站交付时常见的痛点包括:

  • 手动逐台安装程序耗时且易出错;
  • IP 地址分配混乱导致 DHCP 冲突;话说回来,
  • 每台机器的配置细节不统一。后期维护成本高,
  • 缺少统一的监控与日志,无法快速定位部署失败原因。

使用 CentOS CobblerPXE 启动 可以一次性解决以上问题,自动运行、批量、可视化的装机流程。

如何利用CentOS Cobbler和PXE启动技术实现高效批量装机操作?

二、环境准备

硬件与网络要求

  • 一台运行 CentOS的 Cobbler 服务器,推荐使用千兆以上网络。
  • 目标机器需支持 PXE启动,并能从同一网段获取 IP。话说回来,
  • 确保 TFTP、DHCP、HTTP/HTTPS 服务端口未被防火墙阻断。

程序基础设置

关闭 SELinux 与防火墙:

# setenforce 0
# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# systemctl stop firewalld
# systemctl disable firewalld

三、安装 Cobbler 与相关组件

# yum install -y epel-release
# yum install -y cobbler cobbler-web cobbler-dhcp cobbler-pxe cobbler-pxe-tftp \
cobbler-syslinux cobbler-ksvalidator
# yum install -y dhcp tftp-server httpd xinetd
# systemctl enable --now httpd xinetd tftp
# systemctl enable --now cobblerd

四、导入操作程序镜像

Cobbler 必须先把 ISO 内容导入到本地仓库:

# cobbler import --name=centos7 --path=/data/isos/CentOS-7-x86_64-DVD.iso --arch=x86_64
# cobbler import --name=centos8 --path=/data/isos/CentOS-8-x86_64-BaseOS.iso --arch=x86_64

五、配置 Cobbler 主设置

编辑 /etc/cobbler/settings

# vi /etc/cobbler/settings
server这方面,192.168.10.10 # Cobbler 服务器 IP
next_server: 192.168.10.10 # TFTP/PXE 引导文件所在服务器 IP
manage_dhcp: 1 # 是否让 Cobbler 管理 DHCP
dhcp_template: /etc/cobbler/dhcp.template
default_password_crypted: "$6$randomsalt$..."
pxe_just_once: 0 # 多次 PXE 启动均可获取配置
manage_dns: 0 # 如需 DNS 管理请设为1并配置相应模板
...

六、创建部署 Profile 与 Kickstart 模板

a) 创建基础 Profile

# cobbler profile add --name=centos7-base \
--distro=centos7 \
--kickstart=/var/lib/cobbler/kickstarts/centos7-base.ks \
--enable-menu=yes

b) 编写 Kickstart 示例(保存为 /var/lib/cobbler/kickstarts/centos7-base.ks)

#platform=x86。AMD64,or Intel EM64T
install
url --url="http://192.168.10.10/cobbler/repo_mirror/centos7/x86_64"
lang en_US.UTF-8
keyboard us
network --bootproto=dhcp --device=eth0
rootpw --iscrypted $6$randomsalt$...
firewall --enabled --service=ssh
authconfig --enableshadow --passalgo=sha512
timezone Asia/Shanghai
bootloader --location=mbr
clearpart --all --initlabel
part /boot --fstype="xfs" --size=500
part pv.01 --fstype="lvmpv" --grow # LVM Physical Volume
volgroup vg_root pv.01
logvol / --vgname=vg_root --size=20480 --name=root \
--fstype="xfs"
logvol swap --vgname=vg_root --size=4096 \
--name=swap –-fstype="swap"
%packages
@core
wget curl vim-enhanced net-tools git sudo openssh-server
%end
%post ––log=/root/ks-post.log
yum -y update && yum clean all
echo "Cobbler 自动化部署完成"> /etc/motd
%end

七、配置 DHCP 服务

a) 使用 Cobbler 自带 DHCP

# cobbler sync # 同步所有配置,包括生成 dhcp.template 文件
# systemctl enable ––now cobblerdhcpd.service # 启动并持久化
# firewall-cmd ––add-service=dhcp ––permanent && firewall-cmd ––reload # 若未关闭防火墙时使用

b) 集成已有 DHCP

Cobbler 会在 /etc/dhcp/dhcpd.conf.cobbler_template 中生成需要的子网段配置,复制到原有 DHCP 配置文件后 reload 即可。

八、配置 PXE/TFTP 引导服务

TFTP 根目录默认位于 /var/lib/tftpboot确保以下文件存在:

  • /var/lib/tftpboot/pxelinux.cfg/default
  • /var/lib/tftpboot/pxelinux.cfg/01-xx-xx-xx-xx-xx-xx
  • /var/lib/tftpboot/pxelinux.cfg/menu.centos7
  • /var/lib/tftpboot/pxelinux.cfg/menu.centos8
  • /var/lib/tftpboot/pxelinux.cfg/menu.cobblermenu
  • 关键文件: /var/lib/tftpboot/pxelinux.cfg/default → menu.cobblermenu /var/lib/tftpboot/menu.cobblermenu → 包含所有已发布的 profile 链接。

同步 PXE 配置:

如何利用CentOS Cobbler和PXE启动技术实现高效批量装机操作?
# cobbler sync # 同步 TFTP 引导文件和 HTTP 镜像
# systemctl restart xinetd tftp # 确保服务生效
# ls -l /var/lib/tftpboot | grep pxelinux

九、使用 Web 界面管理与监控

Cobbell 自带的 Web UI 默认监听 :80** 或 **:8080**。访问方式如下:

# firewall-cmd ––add-service=http ––permanent && firewall-cmd ––reload
打开浏览器访问:http://192.168.10.10:80 或 http://192.... :8080
使用者名的观点是,root
密码的观点是,在 /etc/cobbler/users.conf 中定义或使用程序 root 密码。通过 UI 可直观看到已导入的 distro、profile、程序列表还有任务日志。

十、实战测试:批量 PXE 启动装机

  1. 在目标机器 BIOS/UEFI 中开启 “Network/PXE Boot”。其实,
  2. 保存并重启。机器会从 TFTP 拉取 pxelinux.cfg/default → menu.cobblermenu → 您创建的 profile 列表。
  3. \
  4. Select “CentOS 7 – centos7‑base” 并回车,即可进入自动化 Kickstart 安装流程。
  5. Cobbeler 在后台实时记录每台机器的状态,可在 Web UI 或执行 cobbler status 查看。
  6. 使用 cobbler report 输出详细日志,用于排查失败节点。
  7. \ <\/ol>

十一、常见问题及调优建议

\
    \
  • \ PXE 无法获取引导文件:\ 检查 TFTP 服务是否运行 并确认防火墙放行 UDP 69。\
  • \
  • \ Kickstart 报错 “No such file or directory” :\ 确认 url 参数指向正确的 HTTP 镜像方法,且 Apache 已对 /cobbler/repo_mirror 开放访问。不过,\
  • \
  • \ DHC​P IP 冲突或分配不到地址:\ 若使用外部 DHCP。请确保 manage_dhcp = 0 并手动将 Cobbeler 的 MAC 对应条目加入原有 DHCP 范围。\
  • \
  • \ Cobbeler 同步后仍看不到新 profile:\ 执行 cobbler reposync && cobbler sync 强制重新同步;检查 /etc/cobble r/settingsmanage_dnsmanage_dhcp 是否匹配实际需求。\
  • \
  • \ SElinux 报错 TFTP 权限:\ 若不想禁用 SELinux,可执行 setsebool -P tftp_home_dir on 并为 /var/lib/tftpboot 添加相应上下文 .\
  • \ <\/ul>\

十二、与收益

\

通过上述步骤。你已经实现了一个基于 CentOS Cobbeler + PXE 的完整批量装机程序,主要收益包括:

\
    \
  • 单次操作即可部署数十甚至上百台机器,大幅降低人力成本;老实说,<\/ li>\
  • Kickstart 脚本统一硬盘分区、软件源与安全基线。提高程序一致性,<\/ li>\
  • 统一管理 IP 分配与引导文件,避免手工配置导致的冲突与错误;<\/ li> \ \
  • Web UI+CLI 双管齐下可视化监控部署进度,也方便脚本化调用;按理说,<\/ li> \ \
  • 后续扩容只需新增 Profile 或修改 Kickstart。无需重新编写安装手册,<\/ li> \ <\/ul> \

    如果你的业务正面临“装机慢”“配置乱”“运维难”这些痛点。不妨立即搭建上述网站,让自动化成为日常运营的一部分吧!老实说,<\/p>

标签:CentOS

一、使用者痛点概述

在大规模服务器或工作站交付时常见的痛点包括:

  • 手动逐台安装程序耗时且易出错;
  • IP 地址分配混乱导致 DHCP 冲突;话说回来,
  • 每台机器的配置细节不统一。后期维护成本高,
  • 缺少统一的监控与日志,无法快速定位部署失败原因。

使用 CentOS CobblerPXE 启动 可以一次性解决以上问题,自动运行、批量、可视化的装机流程。

如何利用CentOS Cobbler和PXE启动技术实现高效批量装机操作?

二、环境准备

硬件与网络要求

  • 一台运行 CentOS的 Cobbler 服务器,推荐使用千兆以上网络。
  • 目标机器需支持 PXE启动,并能从同一网段获取 IP。话说回来,
  • 确保 TFTP、DHCP、HTTP/HTTPS 服务端口未被防火墙阻断。

程序基础设置

关闭 SELinux 与防火墙:

# setenforce 0
# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# systemctl stop firewalld
# systemctl disable firewalld

三、安装 Cobbler 与相关组件

# yum install -y epel-release
# yum install -y cobbler cobbler-web cobbler-dhcp cobbler-pxe cobbler-pxe-tftp \
cobbler-syslinux cobbler-ksvalidator
# yum install -y dhcp tftp-server httpd xinetd
# systemctl enable --now httpd xinetd tftp
# systemctl enable --now cobblerd

四、导入操作程序镜像

Cobbler 必须先把 ISO 内容导入到本地仓库:

# cobbler import --name=centos7 --path=/data/isos/CentOS-7-x86_64-DVD.iso --arch=x86_64
# cobbler import --name=centos8 --path=/data/isos/CentOS-8-x86_64-BaseOS.iso --arch=x86_64

五、配置 Cobbler 主设置

编辑 /etc/cobbler/settings

# vi /etc/cobbler/settings
server这方面,192.168.10.10 # Cobbler 服务器 IP
next_server: 192.168.10.10 # TFTP/PXE 引导文件所在服务器 IP
manage_dhcp: 1 # 是否让 Cobbler 管理 DHCP
dhcp_template: /etc/cobbler/dhcp.template
default_password_crypted: "$6$randomsalt$..."
pxe_just_once: 0 # 多次 PXE 启动均可获取配置
manage_dns: 0 # 如需 DNS 管理请设为1并配置相应模板
...

六、创建部署 Profile 与 Kickstart 模板

a) 创建基础 Profile

# cobbler profile add --name=centos7-base \
--distro=centos7 \
--kickstart=/var/lib/cobbler/kickstarts/centos7-base.ks \
--enable-menu=yes

b) 编写 Kickstart 示例(保存为 /var/lib/cobbler/kickstarts/centos7-base.ks)

#platform=x86。AMD64,or Intel EM64T
install
url --url="http://192.168.10.10/cobbler/repo_mirror/centos7/x86_64"
lang en_US.UTF-8
keyboard us
network --bootproto=dhcp --device=eth0
rootpw --iscrypted $6$randomsalt$...
firewall --enabled --service=ssh
authconfig --enableshadow --passalgo=sha512
timezone Asia/Shanghai
bootloader --location=mbr
clearpart --all --initlabel
part /boot --fstype="xfs" --size=500
part pv.01 --fstype="lvmpv" --grow # LVM Physical Volume
volgroup vg_root pv.01
logvol / --vgname=vg_root --size=20480 --name=root \
--fstype="xfs"
logvol swap --vgname=vg_root --size=4096 \
--name=swap –-fstype="swap"
%packages
@core
wget curl vim-enhanced net-tools git sudo openssh-server
%end
%post ––log=/root/ks-post.log
yum -y update && yum clean all
echo "Cobbler 自动化部署完成"> /etc/motd
%end

七、配置 DHCP 服务

a) 使用 Cobbler 自带 DHCP

# cobbler sync # 同步所有配置,包括生成 dhcp.template 文件
# systemctl enable ––now cobblerdhcpd.service # 启动并持久化
# firewall-cmd ––add-service=dhcp ––permanent && firewall-cmd ––reload # 若未关闭防火墙时使用

b) 集成已有 DHCP

Cobbler 会在 /etc/dhcp/dhcpd.conf.cobbler_template 中生成需要的子网段配置,复制到原有 DHCP 配置文件后 reload 即可。

八、配置 PXE/TFTP 引导服务

TFTP 根目录默认位于 /var/lib/tftpboot确保以下文件存在:

  • /var/lib/tftpboot/pxelinux.cfg/default
  • /var/lib/tftpboot/pxelinux.cfg/01-xx-xx-xx-xx-xx-xx
  • /var/lib/tftpboot/pxelinux.cfg/menu.centos7
  • /var/lib/tftpboot/pxelinux.cfg/menu.centos8
  • /var/lib/tftpboot/pxelinux.cfg/menu.cobblermenu
  • 关键文件: /var/lib/tftpboot/pxelinux.cfg/default → menu.cobblermenu /var/lib/tftpboot/menu.cobblermenu → 包含所有已发布的 profile 链接。

同步 PXE 配置:

如何利用CentOS Cobbler和PXE启动技术实现高效批量装机操作?
# cobbler sync # 同步 TFTP 引导文件和 HTTP 镜像
# systemctl restart xinetd tftp # 确保服务生效
# ls -l /var/lib/tftpboot | grep pxelinux

九、使用 Web 界面管理与监控

Cobbell 自带的 Web UI 默认监听 :80** 或 **:8080**。访问方式如下:

# firewall-cmd ––add-service=http ––permanent && firewall-cmd ––reload
打开浏览器访问:http://192.168.10.10:80 或 http://192.... :8080
使用者名的观点是,root
密码的观点是,在 /etc/cobbler/users.conf 中定义或使用程序 root 密码。通过 UI 可直观看到已导入的 distro、profile、程序列表还有任务日志。

十、实战测试:批量 PXE 启动装机

  1. 在目标机器 BIOS/UEFI 中开启 “Network/PXE Boot”。其实,
  2. 保存并重启。机器会从 TFTP 拉取 pxelinux.cfg/default → menu.cobblermenu → 您创建的 profile 列表。
  3. \
  4. Select “CentOS 7 – centos7‑base” 并回车,即可进入自动化 Kickstart 安装流程。
  5. Cobbeler 在后台实时记录每台机器的状态,可在 Web UI 或执行 cobbler status 查看。
  6. 使用 cobbler report 输出详细日志,用于排查失败节点。
  7. \ <\/ol>

十一、常见问题及调优建议

\
    \
  • \ PXE 无法获取引导文件:\ 检查 TFTP 服务是否运行 并确认防火墙放行 UDP 69。\
  • \
  • \ Kickstart 报错 “No such file or directory” :\ 确认 url 参数指向正确的 HTTP 镜像方法,且 Apache 已对 /cobbler/repo_mirror 开放访问。不过,\
  • \
  • \ DHC​P IP 冲突或分配不到地址:\ 若使用外部 DHCP。请确保 manage_dhcp = 0 并手动将 Cobbeler 的 MAC 对应条目加入原有 DHCP 范围。\
  • \
  • \ Cobbeler 同步后仍看不到新 profile:\ 执行 cobbler reposync && cobbler sync 强制重新同步;检查 /etc/cobble r/settingsmanage_dnsmanage_dhcp 是否匹配实际需求。\
  • \
  • \ SElinux 报错 TFTP 权限:\ 若不想禁用 SELinux,可执行 setsebool -P tftp_home_dir on 并为 /var/lib/tftpboot 添加相应上下文 .\
  • \ <\/ul>\

十二、与收益

\

通过上述步骤。你已经实现了一个基于 CentOS Cobbeler + PXE 的完整批量装机程序,主要收益包括:

\
    \
  • 单次操作即可部署数十甚至上百台机器,大幅降低人力成本;老实说,<\/ li>\
  • Kickstart 脚本统一硬盘分区、软件源与安全基线。提高程序一致性,<\/ li>\
  • 统一管理 IP 分配与引导文件,避免手工配置导致的冲突与错误;<\/ li> \ \
  • Web UI+CLI 双管齐下可视化监控部署进度,也方便脚本化调用;按理说,<\/ li> \ \
  • 后续扩容只需新增 Profile 或修改 Kickstart。无需重新编写安装手册,<\/ li> \ <\/ul> \

    如果你的业务正面临“装机慢”“配置乱”“运维难”这些痛点。不妨立即搭建上述网站,让自动化成为日常运营的一部分吧!老实说,<\/p>

标签:CentOS