利用 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。