温馨提示×

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:设置 servernext_server 为本机 IP;按需开启 manage_dhcp(由 Cobbler 管理 DHCP);使用 openssl passwd -1 生成 default_password_crypted 设置 root 默认密码。
    • 启动服务:启动 httpdcobblerd;执行 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_USd-i keyboard-configuration/xkb-keymap select us
    • 主机名与网卡:d-i netcfg/choose_interface select autod-i netcfg/get_hostname string $myhostname
    • 时区与 NTP:d-i time/zone string Asia/Shanghaid-i clock-setup/utc boolean trued-i clock-setup/ntp boolean true
  • 安装源与镜像
    • 使用 Cobbler 变量:d-i mirror/http/hostname string $http_serverd-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/sdad-i partman-auto/method string regulard-i partman-auto/choose_recipe select atomic
    • GRUB:d-i grub-installer/grub2_instead_of_grub_legacy boolean trued-i grub-installer/bootdev string default
  • 用户与软件
    • 账户:d-i passwd/root-login boolean trued-i passwd/root-password-crypted password $default_password_cryptedd-i passwd/make-user boolean false
    • 软件源与安全更新:配置 apt-setup/services-selectapt-setup/security_host/path 指向内网镜像(示例:10.0.0.5 /cobbler/ks_mirror/ubuntu-18.04.5-x86_64);可加入 wget/ssh 等基础包。
  • 脚本钩子
    • 使用 preseed/early_commandpreseed/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|reportcobbler profile/list|reportcobbler system/list|report;变更后务必 cobbler sync

五 常见问题与优化

  • 引导失败
    • 确认 next-serverfilename “pxelinux.0” 正确;检查 TFTP防火墙;执行 cobbler get-loaderscobbler sync
  • 镜像与仓库
    • Ubuntu 导入失败多与 debmirror 配置或网络相关;检查 /etc/debmirror.conf@dists/@arches 与发行版名称;内网建议使用本地镜像并调整 apt-setup/security_host/path
  • 分区与自动化
    • 若需自定义分区,调整 partman 相关项;如需完全无人值守,确保 root 密码分区镜像源 等关键项已预置。
  • 安全建议
    • 生产环境不建议关闭 SELinux/防火墙;为 root 设置强密码,限制 SSH 访问,仅开放必要端口与服务。

0