温馨提示×

如何利用Cobbler进行Ubuntu集群管理

小樊
39
2026-01-09 16:03:46
栏目: 智能运维

利用 Cobbler 进行 Ubuntu 集群管理

一 架构与准备

  • 角色与网络:部署一台 Cobbler 服务器(同时提供 DHCP/TFTP/HTTP),集群节点设置为 PXE 启动,在同一二层网段。
  • 版本与组件:Cobbler 3.3.x 支持通过导入发行版与 preseed(Debian 系应答文件) 实现无人值守安装;常用组件包含 cobblerd、httpd、tftp、dhcp
  • 安全与便利:准备 root 默认密码的哈希(如 openssl passwd -1),规划 子网、网关、DNS、地址池 与节点 MAC→IP 固定映射(便于按主机名上线)。

二 部署 Cobbler 服务

  • 安装软件(以 RHEL/CentOS/Rocky 为例;Ubuntu 亦可安装 cobbler/cobbler-web 并配合 apt 源):
    • dnf/yum 安装:dnf -y install cobbler dhcp-server(按需补充 httpd、tftp 等)
  • 核心配置(示例为 YAML 配置风格):
    • 设置本机服务地址与引导地址:server: <Cobbler_IP>next_server_v4: <Cobbler_IP>
    • 接管网络服务:manage_dhcp: truemanage_dhcp_v4: truemanage_tftpd: true
    • 避免重复安装:pxe_just_once: true
    • 设置默认 root 密码:default_password_crypted: "<openssl passwd -1 的结果>"
  • 引导加载器与检查:
    • 生成引导文件:cobbler mkloaders
    • 自检并修正:cobbler check
  • 启动服务与同步:
    • 启动:systemctl enable --now cobblerd httpd tftp dhcpd
    • 同步:cobbler sync(每次变更配置后执行)

三 导入 Ubuntu 镜像与创建 Profile

  • 导入发行版:
    • 挂载 ISO:mount -o loop /path/ubuntu-22.04.iso /mnt/iso
    • 导入:cobbler import --name=ubuntu-22.04 --path=/mnt/iso --arch=amd64
  • 准备 preseed(Ubuntu 使用 preseed,而非 kickstart):
    • 建议基于官方示例创建:/var/lib/cobbler/kickstarts/ubuntu-22.04.seed
    • 关键项示例:
      • 语言与键盘:d-i debian-installer/locale string en_USd-i console-setup/ask_detect boolean false
      • 镜像源:在 preseed 中设置 d-i mirror/http/hostnamed-i mirror/http/directory(指向 Cobbler 的 HTTP 根,如 http://<Cobbler_IP>/cobbler/ks_mirror/ubuntu-22.04/
      • 用户与密码:设置 d-i passwd/root-login boolean trued-i passwd/root-password-crypted 或使用 d-i passwd/user-fullnamed-i passwd/usernamed-i passwd/user-password-crypted
      • 分区与包:可按需配置 d-i partman/*pkgsel/include
  • 创建 Profile 绑定 preseed:
    • cobbler profile add --name=ubuntu-22.04-server --distro=ubuntu-22.04-x86_64 --autoinstall=/var/lib/cobbler/kickstarts/ubuntu-22.04.seed
  • 同步:cobbler sync

四 批量上线与主机管理

  • 按 MAC 固定 IP(推荐):在 /etc/cobbler/dhcp.template 的 subnet 内添加 host 段
    • 示例:
      host node01 {
        hardware ethernet 00:50:56:3B:64:2F;
        fixed-address 192.168.8.110;
      }
      host node02 {
        hardware ethernet 00:50:56:23:4A:8E;
        fixed-address 192.168.8.120;
      }
      
    • 同步:cobbler sync
  • 批量新增节点(可选):
    • cobbler system add --name=node01 --hostname=node01 --profile=ubuntu-22.04-server --mac=00:50:56:3B:64:2F --ip-address=192.168.8.110 --netmask=255.255.255.0 --gateway=192.168.8.2 --dns-nameservers=8.8.8.8
    • 同步:cobbler sync
  • 上线流程:节点设置为 PXE 首启,加电后自动获取 IP→下载引导→按 Profile 的 preseed 无人值守安装→安装完成后可按需关闭 PXE 或保留 pxe_just_once: true 防止重装。

五 常用运维与故障排查

  • 常用命令:cobbler checkcobbler listcobbler reportcobbler distro listcobbler profile listcobbler system listcobbler synccobbler reposynccobbler --version
  • 引导菜单与路径核验:
    • 菜单:cat /var/lib/tftpboot/pxelinux.cfg/default
    • 镜像与 KS 路径:导入的发行版位于 /var/www/cobbler/distro_mirror/;HTTP 根通常为 /var/www/cobbler/,preseed 与 ks 模板位于 /var/lib/cobbler/kickstarts//var/lib/cobbler/templates/(版本不同路径可能略有差异)
  • 服务与网络:
    • 确认 cobblerd、httpd、tftp、dhcpd 处于 active (running) 状态
    • 若使用外部 DHCP,确保 next-server 指向 Cobbler 的 TFTP 地址,且 filename "pxelinux.0" 正确
  • 日志与提示:journalctl -u cobblerd -f/var/log/cobbler/ 下的日志文件有助于定位导入、同步、引导失败等问题。

0