温馨提示×

ubuntu cobbler如何设置DHCP服务

小樊
45
2025-12-13 06:44:27
栏目: 智能运维

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 相关日志

0