温馨提示×

如何通过Ubuntu Cobbler批量安装系统

小樊
41
2025-12-09 07:16:25
栏目: 智能运维

通过 Ubuntu Cobbler 批量安装系统的实操指南

一 环境准备与组件安装

  • 准备一台可长期运行的服务器,建议至少 2 核 CPU、4 GB 内存、100 GB 磁盘,与待装机处于同一二层网络,并规划好 PXE 网段、网关、DNS
  • 在 Ubuntu 主机上安装必要组件(含 DHCP/TFTP/HTTP 与 Ubuntu 镜像支持):
    • 安装软件包:sudo apt-get update && sudo apt-get install -y cobbler cobbler-web dhcp3-server tftpd-hpa xinetd debmirror
    • 启用并启动服务:sudo systemctl enable --now cobblerd httpd isc-dhcp-server xinetd tftpd-hpa
    • 验证端口与连通:ss -lntp | egrep ‘:(80|67|69|80)’; curl -I http://127.0.0.1/cobbler
  • 如计划由 Cobbler 托管 DHCP,后续在 /etc/cobbler/settings 中将 manage_dhcp: 1;否则请单独配置外部 DHCP。上述安装与基础验证步骤可参考在 Ubuntu 上部署 Cobbler 的官方常用做法。

二 配置 Cobbler 核心参数

  • 基本参数(/etc/cobbler/settings):
    • 设置本机 PXE/服务地址:next_server 与 server 均填 服务器 IP
    • 启用托管服务:manage_dhcp 1(如由 Cobbler 管理 DHCP)
    • 设置默认 root 密码(preseed 会引用):生成密文 openssl passwd -1 ‘YourPassword’ 并填入 default_password_crypted
    • 可选:开启动态设置 allow_dynamic_settings: 1(便于通过 CLI/GUI 即时生效)
  • 启动引导文件与仓库支持:
    • 下载网络引导加载器:sudo cobbler get-loaders
    • 安装并修正 Ubuntu 镜像仓库工具:sudo apt-get install -y debmirror;编辑 /etc/debmirror.conf,注释掉 @dists@arches 行,避免导入受限发行版/架构
  • 校验与同步:
    • 执行 sudo cobbler check,按提示逐项修复(常见为 TFTP、DHCP、权限、引导文件等)
    • 执行 sudo cobbler sync 使配置生效到 /var/lib/tftpboot 等目录
  • 上述步骤中的 get-loaders、debmirror 配置与 check/sync 流程为 Ubuntu 场景的要点。

三 导入 Ubuntu 镜像并创建安装条目

  • 方式 A(ISO 导入,最简便,适合快速上手)
    1. 挂载 ISO:sudo mount -o loop /path/ubuntu-20.04.iso /mnt
    2. 导入镜像:sudo cobbler import --name ubuntu20 --path /mnt --arch x86_64
    3. 查看与同步:cobbler distro list; cobbler profile list; cobbler sync
    4. 说明:import 会自动创建 distro/profile,并生成对应的 HTTP 镜像目录与菜单项
  • 方式 B(镜像目录或网络源,适合离线/内网源)
    1. 准备镜像目录(本地或内网 apt 镜像),确保包含 dists/ 与 pool/ 结构
    2. 导入:sudo cobbler import --name ubuntu20 --path /data/ubuntu-mirror --arch x86_64
    3. 同步:cobbler sync
  • 以上两种方式均为 Cobbler 官方常用导入手段;ISO 方式更直观,目录/网络源方式便于复用与内网加速。

四 配置自动化应答 Preseed 与 Profile

  • 准备 Preseed(示例路径:/var/lib/cobbler/templates/ubuntu.seed),关键项示例:
    • 基础与账户
      • d-i debian-installer/locale string en_US
      • d-i keyboard-configuration/xkb-keymap select us
      • d-i time/zone string Asia/Shanghai
      • d-i clock-setup/utc boolean true
      • d-i clock-setup/ntp boolean true
      • d-i clock-setup/ntp-server string ntp1.aliyun.com
      • d-i passwd/root-login boolean true
      • d-i passwd/root-password-crypted password $1$UC7P6KDm$ZPHERzXSYRLSocbsx7nDT/ # 与 default_password_crypted 一致
      • d-i passwd/user-fullname string Ubuntu User
      • d-i passwd/username string ubuntu
      • d-i passwd/user-password-crypted password $1$UC7P6KDm$ZPHERzXSYRLSocbsx7nDT/
      • d-i user-setup/allow-password-weak boolean true
    • 安装源(使用 Cobbler 变量)
      • d-i mirror/country string manual
      • d-i mirror/http/hostname string $http_server
      • d-i mirror/http/directory string $install_source_directory
    • 分区(示例:全盘 LVM,可按需调整)
      • d-i partman-auto/method string lvm
      • d-i partman-lvm/device_remove_lvm boolean true
      • d-i partman-auto/purge_lvm boolean true
      • d-i partman-auto/choose_recipe select atomic
      • d-i partman-partitioning/confirm_write_new_label boolean true
      • d-i partman/confirm boolean true
      • d-i partman/confirm_nooverwrite boolean true
    • 包选择与引导
      • tasksel tasksel/first multiselect standard, ubuntu-server
      • d-i pkgsel/include string openssh-server vim htop
      • d-i finish-install/reboot_in_progress note
  • 将 preseed 绑定到 Profile 并启用自动安装
    • 方式 1(import 时直接指定):sudo cobbler import --name ubuntu20 --path /mnt --arch x86_64 --autoinstall /var/lib/cobbler/templates/ubuntu.seed
    • 方式 2(为已存在 profile 绑定):sudo cobbler profile edit --name ubuntu20-x86_64 --kickstart /var/lib/cobbler/templates/ubuntu.seed
    • 同步:cobbler sync
  • 说明:Preseed 中 $http_server/$install_source_directory 等变量由 Cobbler 自动注入;分区与软件包可按业务定制。

五 批量装机与常见问题处理

  • 批量装机
    • 客户端 BIOS 设置 Network PXE 优先,同一二层网段启动后会进入 Cobbler 菜单,选择 ubuntu20-x86_64 即自动安装
    • 如需按主机定制(主机名、IP、分区等),使用 cobbler system add 创建主机条目并绑定对应 profile,再 cobbler sync
  • 常见问题速查
    • 菜单无条目或引导失败:cobbler check;确认 import 成功、profile 存在、cobbler sync 已执行
    • DHCP 获取不到地址或超时:确认 next-server 与 filename “pxelinux.0” 正确;如使用外部 AD/DHCP,适当增大 dhcp_timeout
    • 导入 Ubuntu 镜像失败:安装并修正 debmirror.conf(注释 @dists/@arches),再重新 import
    • Web 访问异常:确认 httpd 运行且 /etc/apache2/conf.d/wsgi.conf 已加载 mod_wsgi
    • 需要立即生效:启用 allow_dynamic_settings: 1 后用 CLI/GUI 修改,再 cobbler sync
  • 以上要点与排错方法覆盖菜单、DHCP、debmirror、WSGI 与动态设置等高频问题。

0