温馨提示×

如何通过Cobbler批量安装系统

小樊
36
2025-12-20 01:36:11
栏目: 编程语言

Cobbler批量安装系统实操指南

一 环境准备与组件安装

  • 建议准备一台与待装机同二层网络的服务器,安装常用组件:Cobbler、DHCP、TFTP、HTTPD、xinetd、rsync、pykickstart;若需部署 Ubuntu/Debian,额外安装 debmirror。在 CentOS 7 上可用 EPEL 源安装:
    • 安装组件:yum install -y cobbler cobbler-web dhcp tftp-server httpd pykickstart rsync xinetd debmirror
    • 启动服务并设置开机自启:systemctl enable --now cobblerd httpd xinetd
    • 加载 PXE 引导文件:cobbler get-loaders
    • 说明:Cobbler 可集中管理 PXE、DHCP、DNS、TFTP、rsync 等,用于无人值守批量装机。

二 核心配置

  • 修改关键配置(/etc/cobbler/settings),将地址替换为实际环境值:
    • server 与 next_server:指向 Cobbler 服务器地址(如 10.0.0.5
    • manage_dhcp:设为 1(由 Cobbler 管理 DHCP)
    • default_password_crypted:设置装机后 root 的默认密码(见下一节)
    • 示例(命令行一键替换):
      • sed -ri ‘s/^(next_server:).*/\1 10.0.0.5/’ /etc/cobbler/settings
      • sed -ri ‘s/^(server:).*/\1 10.0.0.5/’ /etc/cobbler/settings
      • sed -ri ‘s/^(manage_dhcp:).*/\1 1/’ /etc/cobbler/settings
  • 配置 DHCP 模板(/etc/cobbler/dhcp.template),按网段调整:
    • subnet 10.0.0.0 netmask 255.255.255.0 {
    • option routers 10.0.0.2;
    • option domain-name-servers 114.114.114.114;
    • range dynamic-bootp 10.0.0.100 10.0.0.200;
    • filename “/pxelinux.0”;
    • next-server $next_server;
    • }
  • 启用 TFTP 与 rsync(/etc/xinetd.d/tftp、/etc/xinetd.d/rsync):将 disable = yes 改为 disable = no,然后重启 xinetd
  • 防火墙与 SELinux(测试环境常用做法):
    • 关闭防火墙:systemctl stop firewalld && systemctl disable firewalld
    • 关闭 SELinux:setenforce 0 并 sed -i ‘s/^SELINUX=.*/SELINUX=disabled/’ /etc/selinux/config
  • 检查并同步配置:
    • cobbler check(逐项修复告警)
    • cobbler sync(使 DHCP/TFTP 等模板生效)

三 导入镜像与创建安装配置

  • 导入发行版镜像(ISO 或挂载目录):
    • 挂载 ISO:mount -o loop /path/to.iso /mnt
    • 导入:cobbler import --path=/mnt --name=CentOS-7-x86_64 --arch=x86_64
    • 导入后镜像位于:/var/www/cobbler/ks_mirror/-/
  • 创建 Kickstart(RHEL/CentOS 使用 ks.cfg,Ubuntu 使用 preseed/seed):
    • 示例 CentOS Kickstart(/var/lib/cobbler/kickstarts/centos7.ks):
      • install
      • url --url=“http://$server/cobbler/ks_mirror/CentOS-7-x86_64”
      • rootpw --iscrypted $default_password_crypted
      • firewall --disabled
      • selinux --disabled
      • timezone Asia/Shanghai
      • bootloader --location=mbr --driveorder=sda --append=“crashkernel=auto”
      • clearpart --all --initlabel
      • autopart
      • %packages
      • @core
      • %end
    • 创建 Profile 绑定 Distro 与 Kickstart:
      • cobbler profile add --name=CentOS-7-x86_64-base --distro=CentOS-7-x86_64-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks
  • Ubuntu 预置文件(preseed/seed)常用项(示例片段):
    • d-i debian-installer/locale string en_US
    • d-i console-setup/ask_detect boolean false
    • d-i keyboard-configuration/layoutcode string us
    • 更多可按需添加(分区、镜像源、用户等)

四 批量装机与无人值守

  • 方式一(推荐)按主机记录全自动装机:
    • 添加 system(使用待装机的 MAC 实现零人工选择):
      • cobbler system add --name=node01 --profile=CentOS-7-x86_64-base
        –interface=eth0 --mac=52:54:00:xx:xx:xx
        –ip-address=10.0.0.11 --netmask=255.255.255.0 --gateway=10.0.0.2
        –static=1 --dns-name=node01.example.com
    • 同步并装机:cobbler sync;客户端从 PXE 启动后将自动获取 IP、加载引导并安装
  • 方式二 通过引导菜单选择 Profile:
    • cobbler sync 后,客户端 PXE 启动进入菜单,选择相应 Profile 即可自动安装
  • 防止重复重装(可选):在 /etc/cobbler/settings 中将 pxe_just_once: 1,装机完成后自动禁用 PXE 引导

五 常见问题与排错要点

  • cobbler check 报错或 tftp 超时:确保已执行 cobbler get-loaders;检查 /etc/xinetd.d/tftp 的 disable=no 与 xinetd 已启动;必要时 cobbler sync 再次同步
  • DHCP 不分配地址或找不到启动文件:核对 /etc/cobbler/dhcp.template 的网段、网关、DNS、range 与 next-server=$next_server;执行 cobbler sync 使配置下发
  • 导入镜像后 ks 路径不可用:确认镜像已导入至 /var/www/cobbler/ks_mirror/,并在 Kickstart 中使用 $server 变量(如 http://$server/…);必要时 cobbler distro edit 调整 –ksmeta(如 tree=http://@@http_server@@/cobbler/links/…)
  • Ubuntu/Debian 导入失败:安装 debmirror 并在 /etc/debmirror.conf 中注释 @dists@arches 相关行
  • Web 界面或 API 异常:确认 httpd 已启动且加载 mod_wsgi(/etc/httpd/conf.d/wsgi.conf 中 LoadModule 未被注释)

0