Ubuntu 上 Cobbler 启用与管理 DHCP 的完整步骤
一 环境准备与基础配置
- 安装必要组件(含 DHCP 服务与 TFTP):sudo apt-get update && sudo apt-get install -y cobbler cobbler-web isc-dhcp-server tftp-server xinetd
- 修改 Cobbler 主配置 /etc/cobbler/settings,确保以下关键项为本机地址(示例以 192.168.1.10 为例):
- server: 192.168.1.10
- next_server: 192.168.1.10
- manage_dhcp: 1
- 可选:设置 root 默认密码(示例使用明文 000000,生产请更换为强密码)
- 生成密文:openssl passwd -1 ‘000000’
- 将输出填入:default_password_crypted: <生成的密文>
- 启动依赖服务并设置开机自启:sudo systemctl enable --now cobblerd tftp xinetd
- 获取 PXE 引导文件:sudo cobbler get-loaders
- 自检并修正配置:sudo cobbler check(按提示逐项处理)
二 配置 DHCP 服务
- 编辑 DHCP 模板 /etc/cobbler/dhcp.template,按实际网络填写(示例网段 192.168.1.0/24):
- 注意:将 $next_server 保留为模板变量,Cobbler 会自动替换为 next_server 的值
- 建议加入 allow booting; allow bootp; 以允许网络启动请求
- 示例片段:
- subnet 192.168.1.0 netmask 255.255.255.0 {
- option routers 192.168.1.1;
- option domain-name-servers 8.8.8.8, 8.8.4.4;
- option subnet-mask 255.255.255.0;
- range dynamic-bootp 192.168.1.100 192.168.1.200;
- default-lease-time 21600;
- max-lease-time 43200;
- next-server $next_server;
- filename “pxelinux.0”;
- allow booting;
- allow bootp;
- }
- 使配置生效:sudo cobbler sync(会生成 /var/lib/cobbler/dhcp.cfg 并写入 isc-dhcp-server 配置)
- 重启 DHCP 服务:sudo systemctl restart isc-dhcp-server && sudo systemctl enable isc-dhcp-server
- 验证 DHCP 运行状态:sudo systemctl status isc-dhcp-server;查看租约:cat /var/lib/dhcp/dhcpd.leases
三 仅由 Cobbler 管理 DHCP 与已有 DHCP 的两种方案
- 方案 A(推荐):由 Cobbler 全权管理 DHCP
- 保持 manage_dhcp: 1
- 通过 cobbler sync 自动生成并应用 DHCP 配置
- 注意:运行 cobbler sync 可能会覆盖现有 /etc/dhcp/dhcpd.conf,操作前请备份
- 方案 B:由外部 DHCP 服务器提供服务
- 将 manage_dhcp 设为 0
- 在现有 DHCP 配置中为每个 PXE 网段添加关键选项:
- next-server <Cobbler_IP>
- filename “pxelinux.0”
- allow booting; allow bootp;
- 示例:
- subnet 192.168.1.0 netmask 255.255.255.0 {
- option routers 192.168.1.1;
- option domain-name-servers 8.8.8.8, 8.8.4.4;
- range 192.168.1.100 192.168.1.200;
- next-server 192.168.1.10;
- filename “/pxelinux.0”;
- allow booting;
- allow bootp;
- }
四 防火墙与网络连通性检查
- 放行必要服务与端口(示例为 firewalld):
- sudo firewall-cmd --zone=public --add-service=tftp --permanent
- sudo firewall-cmd --zone=public --add-service=http --permanent
- sudo firewall-cmd --zone=public --add-port=25150-25151/tcp --permanent
- sudo firewall-cmd --reload
- 客户端验证步骤:
- 在目标主机 BIOS 中设置 PXE 启动优先
- 观察是否获取到 192.168.1.100–200 范围内的 IP
- 是否能进入 Cobbler PXE 菜单并选择要安装的系统配置
五 常见问题与排查要点
- 同一二层网络存在多个 DHCP 会导致冲突,确保仅保留 一个 DHCP 服务(或按方案 B 正确对接)
- 客户端拿不到启动文件或卡菜单:核对 next-server 与 filename 是否正确,next-server 应为 Cobbler 主机 IP,filename 为 “pxelinux.0”
- 导入镜像或引导失败:执行 cobbler check、cobbler sync,并确认已运行 cobbler get-loaders 获取引导程序
- 变更后未生效:执行 cobbler sync 并重启 isc-dhcp-server;必要时检查 /var/log/cobbler/cobbler.log 与 /var/log/syslog 的 DHCP 相关日志