Cobbler 系统镜像管理实操指南
在自动化运维领域,Cobbler 是一个绕不开的得力工具。它把系统部署的繁琐流程变得井井有条,但要想真正玩转它,还得从理解其核心骨架开始。
一 核心概念与目录
上手之前,先得搞清楚几个关键对象:Distro(发行版)、Profile(配置集)、System(主机)、Kickstart(应答文件)以及镜像仓库(Repo)。整个镜像管理的核心流程,其实就是一条清晰的流水线:导入 ISO 生成 Distro → 创建或调整 Profile 并绑定 Kickstart → 同步配置 → 最后客户端通过 PXE 引导完成安装。
接下来,熟悉一下它的“工作间”——那些常用的目录和文件:
- 配置目录:核心配置文件都藏在
/etc/cobbler/下,比如settings(主设置)、dhcp.template(DHCP模板)、tftpd.template(TFTP模板)。 - 数据目录:
/var/lib/cobbler/kickstarts/:存放着各种 Kickstart 模板。/var/www/cobbler/ks_mirror/:导入的镜像内容就放在这里。/var/www/cobbler/images/:这里则是引导文件的家。
- 日志目录:想看看发生了什么?去
/var/log/cobbler/下翻看cobbler.log和install.log准没错。
至于操作命令,记住这个命令族就够用了:cobbler import|distro|profile|system|repo|sync|check|list|report|get-loaders。
二 环境准备与初始化
万事开头难,先把环境搭起来。以常见的 RHEL/CentOS 系为例,安装命令很简单:
yum install -y cobbler cobbler-web dhcp tftp-server pykickstart httpd
安装完成后,记得启动 httpd 和 cobblerd 服务。如果你用的是 Ubuntu/Debian,对应的包名可能是 cobbler cobbler-web dhcp3-server tftpd-hpa xinetd。
接下来是基础配置,关键在 /etc/cobbler/settings 这个文件:
- 找到
server和next_server这两个参数,分别设置为 Cobbler 服务器地址和 TFTP 服务器地址,确保它们是客户端能访问的 IP 或主机名。 - 根据你的网络环境,决定是否开启
manage_dhcp和manage_tftpd。如果打算让 Cobbler 管理 DHCP,还需要编辑/etc/cobbler/dhcp.template模板文件,配置好子网、地址池、网关、DNS,并确认filename “pxelinux.0”和next-server指向正确。
配置妥当后,让服务跑起来:启动 httpd、cobblerd、xinetd(或 tftp)、dhcpd。然后,执行 cobbler check 命令来一次全面体检,它会告诉你哪里还需要调整。
最后一步很关键:执行 cobbler get-loaders。这个命令会拉取必要的网络引导加载器(如 pxelinux、grub 等),没有它们,PXE 启动就无从谈起。
三 导入与管理镜像
环境就绪,现在可以导入系统镜像了。最推荐的方式是直接导入 ISO 文件来生成 Distro。
- 导入操作:你可以先将 ISO 文件挂载到某个目录(比如
/mnt/iso/),然后执行导入命令:
当然,直接指向 ISO 所在目录也行。导入成功后,Cobbler 会自动在cobbler import --path=/mnt/iso/CentOS-7-x86_64 --name=CentOS-7-x86_64 --arch=x86_64/var/www/cobbler/ks_mirror/下创建对应的镜像目录,并生成默认的 Distro 和 Profile。
导入后,别忘了查看与校验:
- 列出对象:
cobbler distro list,cobbler profile list - 查看详情:
cobbler distro report --name=CentOS-7-x86_64,cobbler profile report --name=CentOS-7-x86_64
默认配置可能不符合你的需求,这时就需要关联 Kickstart 文件或定制内核参数:
- 编辑 Profile 来指定 Kickstart 模板:
cobbler profile edit --name=CentOS-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks - 如果需要传递特殊的内核参数,可以这样追加:
cobbler profile edit --name=CentOS-7-x86_64 --kopts=“ksdevice=bootif”
记住一个黄金法则:任何配置变更后,都必须执行 cobbler sync 命令,这样才能让改动(如 DHCP 配置、TFTP 文件、PXE 启动菜单)真正生效。
四 常用镜像管理操作
日常管理中,你可能会遇到这些场景:
- 重命名或复制:
- 复制一个 Distro:
cobbler distro copy --name=CentOS-7-x86_64 --newname=CentOS-7-x86_64-copy - 重命名一个 Distro:
cobbler distro rename --name=CentOS-7-x86_64 --newname=CentOS-7
- 复制一个 Distro:
- 删除镜像(请谨慎操作):
- 删除顺序很重要:先删除依赖该 Distro 的 Profile:
cobbler profile remove --name=CentOS-7-x86_64 - 再删除 Distro 本身:
cobbler distro remove --name=CentOS-7-x86_64 - 最后,别忘了
cobbler sync。
- 删除顺序很重要:先删除依赖该 Distro 的 Profile:
- 指定 PXE 菜单的默认启动项:
- 可以编辑 Profile,启用菜单并设置为默认:
cobbler profile edit --name=CentOS-7-x86_64 --enable-menu=yes --default=true
- 可以编辑 Profile,启用菜单并设置为默认:
- 离线导入与仓库镜像(高级可选):
- 如果你有本地的安装文件目录,可以直接导入作为源:
cobbler import --path=/data/centos7-dvd --name=CentOS-7-local - 管理外部软件源并同步到本地:
cobbler repo add --name=base --mirror=https://mirror.example.com/centos/7/os/x86_64/ --mirror-locally=1 --priority=99,然后执行cobbler reposync进行同步。
- 如果你有本地的安装文件目录,可以直接导入作为源:
五 客户端安装与重装
一切配置妥当,就到了收获的时候。
- 全新安装:最简单。只需在客户机的 BIOS 中设置从 PXE 启动,重启后,它就会自动获取到 Cobbler 服务器提供的 PXE 菜单。选择你预先配置好的 Profile,剩下的全自动:通过 TFTP 加载引导程序,然后根据 Kickstart 文件完成无人值守安装。
- 原地重装或替换系统:这个功能非常实用。假设你想给一台已运行的服务器重装系统:
- 先在目标主机上安装
koan客户端:yum install -y koan。 - 查看 Cobbler 服务器上有哪些可用的配置:
koan --list=profiles --server=192.0.2.10(将IP换成你的Cobbler服务器地址)。 - 指定要重装的 Profile:
koan --replace-self --server=192.0.2.10 --profile=CentOS-7-x86_64。 - 执行
reboot。重启后,机器会自动进入网络安装流程,并用新系统替换掉旧的。
- 先在目标主机上安装
至此,一套完整的 Cobbler 镜像管理流程就走通了。从环境搭建、镜像导入、配置定制到客户端部署,每一步都环环相扣。多上手操作几次,你就能感受到这种自动化带来的效率提升。
