Cobbler如何实现Ubuntu系统的批量部署
小樊
45
2025-12-21 04:42:51
Cobbler批量部署Ubuntu实操指南
一 架构与前置条件
- 组件与网络:在同一二层网段部署 Cobbler 服务器,启用 DHCP/TFTP/HTTP 服务;客户端以 PXE 启动,从 Cobbler 获取引导文件与安装源。
- 服务器建议:至少 2 核 CPU / 4GB 内存 / 100GB 存储;确保可访问外网以下载安装器与更新(或配置内网镜像源)。
- 安全策略:测试环境可临时关闭 SELinux 与 防火墙;生产环境建议保持开启并通过策略放行相关端口与服务。
二 部署步骤
- 安装软件包
- RHEL/CentOS 系:安装 cobbler cobbler-web dhcp tftp-server httpd pykickstart rsync xinetd,并导入 EPEL 源以获取最新版本。
- Ubuntu 系:安装 cobbler cobbler-web dhcp3-server tftpd-hpa xinetd debmirror。
- 基础配置
- 编辑 /etc/cobbler/settings:设置 server 与 next_server 为本机 IP;按需开启 manage_dhcp(由 Cobbler 管理 DHCP);使用 openssl passwd -1 生成 default_password_crypted 设置 root 默认密码。
- 启动服务:启动 httpd 与 cobblerd;执行 cobbler get-loaders 拉取网络引导加载器。
- 网络与TFTP
- DHCP:编辑 /etc/cobbler/dhcp.template,配置子网、range、网关、filename “pxelinux.0” 与 next-server $next_server;如使用外部 DHCP,可在 DHCP 中指定上述两项并关闭 manage_dhcp。
- TFTP:在 /etc/xinetd.d/tftp 中将 disable = yes 改为 disable = no 并重启 xinetd。
- 镜像与仓库
- Ubuntu 需安装 debmirror;按需调整 /etc/debmirror.conf(注释掉 @dists 与 @arches 行以匹配所需发行版与架构)。
- 导入镜像:使用 debmirror 同步或从 ISO/挂载目录导入,随后用 cobbler import 添加为 Distro(示例:–name ubuntu-20.04 --arch amd64)。
- 校验与同步
- 执行 cobbler check 修正告警;执行 cobbler sync 将配置下发至 DHCP/TFTP/HTTP。
三 Ubuntu预置文件 Preseed 关键项
- 基础本地化与网络
- 语言与键盘:d-i debian-installer/locale string en_US;d-i keyboard-configuration/xkb-keymap select us。
- 主机名与网卡:d-i netcfg/choose_interface select auto;d-i netcfg/get_hostname string $myhostname。
- 时区与 NTP:d-i time/zone string Asia/Shanghai;d-i clock-setup/utc boolean true;d-i clock-setup/ntp boolean true。
- 安装源与镜像
- 使用 Cobbler 变量:d-i mirror/http/hostname string $http_server;d-i mirror/http/directory string $install_source_directory。
- 对于 18.04+ 的 Ubiquity,建议设置 live-installer/net-image 指向 install/filesystem.squashfs(示例:http://$http_server/cobbler/links/$distro_name/install/filesystem.squashfs)。
- 分区与引导
- 自动分区示例:d-i partman-auto/disk string /dev/sda;d-i partman-auto/method string regular;d-i partman-auto/choose_recipe select atomic。
- GRUB:d-i grub-installer/grub2_instead_of_grub_legacy boolean true;d-i grub-installer/bootdev string default。
- 用户与软件
- 账户:d-i passwd/root-login boolean true;d-i passwd/root-password-crypted password $default_password_crypted;d-i passwd/make-user boolean false。
- 软件源与安全更新:配置 apt-setup/services-select 与 apt-setup/security_host/path 指向内网镜像(示例:10.0.0.5 /cobbler/ks_mirror/ubuntu-18.04.5-x86_64);可加入 wget/ssh 等基础包。
- 脚本钩子
- 使用 preseed/early_command 与 preseed/late_command 在装机前后执行自定义脚本(如注入公钥、配置仓库、执行配置管理)。
四 创建Profile与System并批量装机
- 创建 Profile
- 命令示例:cobbler profile add --name ubuntu-20.04-server --distro ubuntu-20.04-x86_64 --kickstart /var/lib/cobbler/kickstarts/ubuntu2004.seed。
- 注册主机(System)
- 按 MAC 注册单个主机:cobbler system add --name node01 --profile ubuntu-20.04-server --interface eth0 --mac AA:BB:CC:DD:EE:FF。
- 批量导入:将主机清单(CSV/MAC 列表)转换为添加命令脚本,循环调用 cobbler system add 批量注册。
- 同步与装机
- 执行 cobbler sync 下发 PXE 菜单与 DHCP 配置;客户端从 PXE 启动,选择相应 Profile 自动安装。
- 常用运维
- 查看与变更:cobbler distro/list|report、cobbler profile/list|report、cobbler system/list|report;变更后务必 cobbler sync。
五 常见问题与优化
- 引导失败
- 确认 next-server 与 filename “pxelinux.0” 正确;检查 TFTP 与 防火墙;执行 cobbler get-loaders 与 cobbler sync。
- 镜像与仓库
- Ubuntu 导入失败多与 debmirror 配置或网络相关;检查 /etc/debmirror.conf 的 @dists/@arches 与发行版名称;内网建议使用本地镜像并调整 apt-setup/security_host/path。
- 分区与自动化
- 若需自定义分区,调整 partman 相关项;如需完全无人值守,确保 root 密码、分区、镜像源 等关键项已预置。
- 安全建议
- 生产环境不建议关闭 SELinux/防火墙;为 root 设置强密码,限制 SSH 访问,仅开放必要端口与服务。