温馨提示×

怎样集成pxe与debian cobbler

小樊
46
2026-10-18 11:04:11
栏目: 智能运维

下面给你一个从原理到落地的说明,讲清楚 如何把 PXE 启动与 Debian + Cobbler 集成,适合做自动化装机环境。


一、整体架构理解

PXE + Cobbler 的关系:

客户端 (PXE)
   ↓
DHCP (分配 IP + 指向 TFTP)
   ↓
TFTP (pxelinux.0 / grub)
   ↓
Cobbler (提供 kickstart / preseed + 镜像)
   ↓
HTTP/FTP/NFS (系统安装源)

Cobbler 本身不是 PXE 服务,它只是:

  • 管理 DHCP / TFTP / DNS 配置
  • 管理 distro / profile / system
  • 生成 PXE 启动菜单
  • 提供 kickstart(RHEL)或 preseed(Debian)

二、环境准备(Debian 服务端)

1. 系统要求

  • Debian 11 / 12(推荐)
  • 静态 IP
  • 关闭冲突服务(如自建 dhcpd)

2. 安装 Cobbler

apt update
apt install cobbler cobbler-web tftp tftp-hpa xinetd \
            dhcp-server apache2 -y

Debian 下 Cobbler 依赖 tftpd-hpa,不要用 atftpd


三、Cobbler 基础配置

1. 修改 Cobbler 配置

vi /etc/cobbler/settings.yaml

关键项:

server: 192.168.1.10
next_server: 192.168.1.10
manage_dhcp: true
manage_tftpd: true

2. 启动服务

systemctl enable --now cobblerd
systemctl enable --now apache2
systemctl enable --now tftpd-hpa

3. 检查配置

cobbler check
cobbler sync

四、配置 PXE 所需服务

1. DHCP(由 Cobbler 管理)

编辑:

/etc/cobbler/dhcp.template

示例:

subnet 192.168.1.0 netmask 255.255.255.0 {
     option routers 192.168.1.1;
     option domain-name-servers 192.168.1.1;
     range 192.168.1.100 192.168.1.200;
     filename "pxelinux.0";
     next-server 192.168.1.10;
}

应用:

cobbler sync

五、导入 Debian 镜像(核心)

1. 挂载 ISO

mount -o loop debian-12-amd64-DVD-1.iso /mnt

2. 导入到 Cobbler

cobbler import \
  --name=debian12 \
  --arch=x86_64 \
  --path=/mnt

完成后:

cobbler distro list

六、Debian 的 Preseed(相当于 KS)

1. 创建 preseed 文件

/var/lib/cobbler/preseed/debian12.seed

示例(简化):

d-i debian-installer/locale string en_US
d-i keyboard-configuration/xkb-keymap select us
d-i netcfg/get_hostname string debian
d-i mirror/country string manual
d-i mirror/http/hostname string 192.168.1.10
d-i mirror/http/directory string /cobbler/ks_mirror/debian12
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select atomic
d-i passwd/root-password password cobbler
d-i passwd/root-password-again password cobbler
d-i grub-installer/bootdev string /dev/sda

2. 关联 profile

cobbler profile edit \
  --name=debian12-x86_64 \
  --kickstart=/var/lib/cobbler/preseed/debian12.seed

七、PXE 启动流程验证

1. 客户端设置

  • BIOS / UEFI → Network Boot
  • 获取 IP(DHCP)
  • 加载 pxelinux.0
  • 显示 Cobbler 菜单

2. 选择 Debian 自动安装


八、UEFI 支持(重要)

如果是 UEFI:

cobbler profile edit --name=debian12-x86_64 \
  --boot-loader=grub

Cobbler 会自动生成:

/var/lib/tftpboot/grub/grub.cfg

九、常见问题

1. 卡在 TFTP

  • 检查 tftpd-hpa 是否运行
  • 防火墙放行 69/UDP

2. 安装源 404

cobbler sync
ls /var/www/cobbler/ks_mirror/

3. 多网卡

preseed 中明确指定:

d-i netcfg/choose_interface select eth0

十、总结一句话

PXE 负责“启动”,Cobbler 负责“管理”,Debian 用 preseed 实现全自动安装。

如果你愿意,我可以:

  • 给你一个 完整 Debian 12 preseed
  • 或帮你做 UEFI + Secure Boot
  • 或写成 一步一步的脚本版

你现在是做 实验室 / 生产环境 / 云镜像 哪种?

0 踩