温馨提示×

如何利用Cobbler实现Debian批量安装

小樊
44
2025-11-18 10:08:00
栏目: 智能运维

利用 Cobbler 批量安装 Debian 的完整实践

一 架构与前置准备

  • 网络与服务角色
    • 一台 Cobbler 服务器:提供 DHCP/TFTP/HTTP,承载安装源与引导文件。
    • 待装主机:BIOS 或 UEFI 设置为 PXE 启动,同一二层网段可达 Cobbler 服务器。
  • 基础环境建议
    • 关闭或放行防火墙与 SELinux(测试环境常用做法):
      • systemctl stop firewalld && systemctl disable firewalld
      • sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
    • 安装必要组件(Debian 系):
      • apt-get update && apt-get install -y cobbler cobbler-web dhcp3-server tftpd-hpa xinetd
  • 关键配置项(/etc/cobbler/settings)
    • server:Cobbler 服务器 IP/主机名
    • next_server:PXE 引导指向的 IP(通常与 server 一致)
    • manage_dhcp:是否由 Cobbler 管理 DHCP(生产可设为 no,由独立 DHCP 管理)
    • manage_tftp:建议 yes
    • 修改后执行 cobbler check 进行自检,并 cobbler sync 使配置生效。

二 安装源与引导配置

  • 导入 Debian 镜像
    • 挂载 ISO 并导入(示例):
      • mount -o loop /path/to/debian.iso /mnt
      • cobbler import --path=/mnt --name=debian-server
      • umount /mnt
    • 导入后会在 Web 或 CLI 中生成对应的 distro/profile,可直接用于装机。
  • 引导文件与 DHCP
    • 获取 PXE 引导文件:cobbler get-loaders(确保 pxelinux.0、grub 等就位)
    • DHCP 示例(/etc/dhcp/dhcpd.conf,按实际网段调整):
      • subnet 192.168.1.0 netmask 255.255.255.0 {
        • range 192.168.1.100 192.168.1.200;
        • option routers 192.168.1.1;
        • option domain-name-servers 8.8.8.8, 8.8.4.4;
        • filename “pxelinux.0”;
        • next-server 192.168.1.2;
        • }
    • TFTP 启用(/etc/xinetd.d/tftp):server_args = -s /var/lib/tftpboot
    • 服务启动:
      • systemctl enable --now cobblerd xinetd isc-dhcp-server
    • 每次变更后执行 cobbler sync 同步到 DHCP/TFTP。

三 自动化安装与批量编排

  • 使用 Debian 预置种子文件(preseed)
    • 将自定义 preseed 放到 /var/lib/cobbler/kickstarts/(示例:debian-server.seed),通过 profile 指定:
      • cobbler profile add --name=debian-server --kickstart=/var/lib/cobbler/kickstarts/debian-server.seed
    • 常用字段建议:locale、keyboard、root 密码(hashed)、网络(bootproto=dhcp 或 static)、分区(如清空并初始化)、镜像源、基础软件包。
  • 主机级编排(按 MAC 精确装机)
    • 添加系统对象并指定网络与 PXE:
      • cobbler system add --name=host01 --profile=debian-server --mac=00:11:22:33:44:55
        –ip=192.168.1.101 --subnet=255.255.255.0 --gateway=192.168.1.1
        –hostname=host01.example.com --interface=eth0
      • cobbler system edit --name=host01 --netboot-enabled=true
    • 批量装机流程
      • 将待装主机设置为 PXE 启动,上电或重启后将自动获取 IP、下载引导并安装。
      • 大规模重装可结合 IPMI 批量设置下次启动为 PXE,然后统一重启进入安装:
        • 示例脚本思路:ipmitool chassis bootdev pxe; ipmitool power reset
        • 通过控制台观察安装进度,装完记得将启动项改回磁盘,避免循环重装。

四 生产要点与常见问题

  • DHCP 策略
    • 生产网建议由独立 DHCP 提供服务,Cobbler 的 manage_dhcp 设为 no,避免误发放地址或误引导;仅在内网实验或隔离环境启用 manage_dhcp。
  • 多 DHCP 冲突
    • 同一二层网段若存在其他 DHCP 服务,会造成 IP 冲突/引导失败,需确保仅保留一个权威 DHCP。
  • 引导与架构匹配
    • 确认客户端 x86_64/ARM 与导入镜像架构一致;UEFI 与 BIOS 引导文件不同,必要时同时准备并正确下发引导文件名。
  • 变更生效
    • 任何对 distro/profile/system 的修改,务必执行 cobbler sync 同步到 DHCP/TFTP/HTTP。
  • 镜像与空间
    • 导入的 ISO 与安装文件会存放在 /var/www/cobbler/ks_mirror/,确保磁盘空间充足;必要时清理旧版本镜像与未使用 profile。

0