温馨提示×

Cobbler在Ubuntu中怎样实现自动化部署

小樊
36
2026-01-09 15:59:54
栏目: 智能运维

在 Ubuntu 上使用 Cobbler 实现自动化部署

一 架构与前置条件

  • 组件与职责:Cobbler 负责整合 DHCP/TFTP/HTTP、镜像与应答文件;客户端通过 PXE 启动,自动获取安装源与 preseed(Kickstart) 完成无人值守安装。
  • 网络与服务:准备一个网段(如 192.168.1.0/24)、网关(如 192.168.1.1)、DNS(如 8.8.8.8),并规划 Cobbler 服务器 IP(如 192.168.1.2) 作为 next-server;确保客户端 BIOS 开启 PXE 启动
  • 工具与权限:安装必要组件(含 cobbler/cobbler-web、tftpd-hpa、xinetd、isc-dhcp-server、debmirror),以 root 或具备 sudo 权限执行;如启用防火墙,放行 TFTP(69/udp)HTTP(80/tcp)Cobbler API(25150–25151/tcp)

二 安装与基础配置

  • 安装软件包
    • Ubuntu 20.04/22.04 示例:
      • sudo apt-get update
      • sudo apt-get install -y cobbler cobbler-web tftpd-hpa xinetd isc-dhcp-server debmirror
  • 启动服务与获取引导文件
    • sudo systemctl enable --now cobblerd
    • sudo cobbler get-loaders
  • 基础校验与修正
    • sudo cobbler check(按提示修正,例如设置 servernext_server、开启 TFTP、修正 debmirror 配置等)
  • 关键配置项(/etc/cobbler/settings)
    • server:Cobbler 服务器地址(如 192.168.1.2
    • next_server:同 server(用于 DHCP filename/next-server 的自动下发)
    • manage_dhcp:是否由 Cobbler 管理 DHCP(1=托管,0=由外部 DHCP 管理)
    • 其他:如默认 default_kickstart、时区/语言等按需调整。

三 网络与 PXE 配置

  • 方案 A:由 Cobbler 托管 DHCP(简单、一体化)
    • 编辑模板:/etc/cobbler/dhcp.template,示例如下(按实际网段修改):
      • 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.168.4.4;
        • filename “pxelinux.0”;
        • next-server 192.168.1.2;
        • }
    • 应用并重启:
      • sudo cobbler sync
      • sudo systemctl restart isc-dhcp-server
  • 方案 B:使用现有 DHCP(不托管)
    • 在现有 DHCP 配置中加入:
      • allow booting; allow bootp;
      • filename “pxelinux.0”;
      • next-server <Cobbler_IP>;
    • 注意:若使用 Cobbler 的 DHCP 模板,运行 cobbler sync 可能覆盖现有 dhcpd.conf,务必先备份。
  • TFTP 启用
    • 编辑 /etc/xinetd.d/tftp,将 disable = yes 改为 disable = no
    • sudo systemctl enable --now tftp xinetd
  • 防火墙放行(如启用 firewalld)
    • sudo firewall-cmd --permanent --add-service=tftp
    • sudo firewall-cmd --permanent --add-service=http
    • sudo firewall-cmd --permanent --add-port=25150-25151/tcp
    • sudo firewall-cmd --reload。

四 导入镜像与创建 Profile

  • 导入 Ubuntu 镜像
    • 方式 1(ISO 挂载导入,推荐):
      • sudo mount -o loop /path/to/ubuntu-20.04.iso /mnt
      • sudo cobbler import --path=/mnt --name ubuntu-20.04 --breed ubuntu --os-version focal
    • 方式 2(在线镜像,较慢):
      • sudo cobbler import --path=/var/www/html/ubuntu-mirror/ --name ubuntu-20.04 --breed ubuntu --os-version focal
    • 导入后可用 cobbler distro list / cobbler profile list 查看。
  • 创建应答文件(preseed/seed)
    • 示例(保存到 /var/lib/cobbler/kickstarts/ubuntu-20.04.seed):
      • d-i debian-installer/locale string en_US.UTF-8
      • d-i keyboard-configuration/layoutcode string us
      • d-i netcfg/choose_interface select auto
      • d-i netcfg/get_nameservers string 8.8.8.8
      • d-i netcfg/get_ipaddress string 192.168.1.101
      • d-i netcfg/get_netmask string 255.255.255.0
      • d-i netcfg/get_gateway string 192.168.1.1
      • d-i netcfg/confirm_static boolean true
      • d-i mirror/country string manual
      • d-i mirror/http/hostname string $server
      • d-i mirror/http/directory string /ks_mirror/ubuntu-20.04
      • d-i mirror/http/proxy string
      • d-i clock-setup/utc boolean true
      • d-i time/zone string Asia/Shanghai
      • d-i partman-auto/method string regular
      • 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
      • d-i pkgsel/include string openssh-server
      • d-i pkgsel/upgrade select none
      • d-i grub-installer/only_debian boolean true
      • d-i grub-installer/with_other_os boolean true
      • d-i finish-install/reboot_in_progress note
  • 创建 Profile 并关联应答文件
    • sudo cobbler profile add --name ubuntu-20.04-profile --distro ubuntu-20.04-x86_64 --kickstart /var/lib/cobbler/kickstarts/ubuntu-20.04.seed
  • 同步配置
    • sudo cobbler sync(每次变更后执行,使 DHCP/TFTP/HTTP 生效)。

五 部署与验证

  • 注册主机(按 MAC 精确装机,可选)
    • sudo cobbler system add --name host01 --profile ubuntu-20.04-profile --mac AA:BB:CC:DD:EE:FF --netboot-enabled true
    • 如需批量自动分配,可不预先注册,由 DHCP 动态分配后按 Profile 自动安装。
  • 客户端装机
    • 目标主机 BIOS 设置 PXE 第一启动,上电后将自动获取 IP/DNS、下载 pxelinux.0 与安装内核/initrd,读取 preseed 完成无人值守安装。
  • 常用排错与验证
    • 查看服务与配置:systemctl status cobblerd tftp xinetd isc-dhcp-server;cat /etc/cobbler/settings | egrep ‘server|next_server|manage_dhcp’
    • 校验与同步:sudo cobbler check;sudo cobbler sync
    • 查看导入结果:cobbler distro list;cobbler profile list;cobbler system list
    • 日志定位:/var/log/cobbler/、/var/log/syslog(DHCP/TFTP 相关)。

0