Ubuntu 环境下 Cobbler 数据迁移方案
一、迁移目标与总体思路
- 迁移对象包含:Cobbler 的配置与数据库(distros、profiles、systems、repos、kickstarts)、导入的发行版镜像与引导文件、以及可选管理的 DHCP 配置模板。
- 推荐路径:在新服务器上搭建同版本 Cobbler,先迁移配置与镜像,再校验一致性,最后切换生产流量。Cobbler 的核心配置集中在 /etc/cobbler/,数据目录集中在 /var/lib/cobbler/ 与 /var/www/cobbler/,迁移即对这些目录与数据库进行一致性拷贝与导入。
二、迁移准备与注意事项
- 版本一致:尽量保持 Cobbler 版本、操作系统版本一致,避免数据库/模板不兼容。
- 网络与地址:记录旧环境的 server、next_server、DHCP 网段/范围/网关/DNS 等,新环境按实际调整,避免 PXE 引导失败。
- 服务依赖:确保新环境已安装并启用 cobblerd、tftpd-hpa(xinetd)、httpd、isc-dhcp-server(如管理 DHCP),并可通过 cobbler check 自检。
- 空间与权限:预估镜像与仓库数据量,保证 /var/www/cobbler 与数据库所在分区充足;拷贝时保持 属主/属组与权限一致(常见为 root:cobbler,权限 0755/0644)。
三、迁移步骤
- 步骤1 旧环境备份
- 配置与数据库:打包 /etc/cobbler/ 与 /var/lib/cobbler/config/(包含 distros、profiles、systems、repos 等元数据)。
- 镜像与引导:打包 /var/www/cobbler/ks_mirror/、/var/www/cobbler/images/、/var/www/cobbler/repo_mirror/(如存在)。
- 可选 DHCP:备份 /etc/cobbler/dhcp.template 与当前生效的 /etc/dhcp/dhcpd.conf。
- 日志与校验:简要备份 /var/log/cobbler/ 便于排错;记录关键命令输出(如 cobbler distro list、profile list、system list)。
- 步骤2 新环境部署与自检
- 安装组件:sudo apt install -y cobbler cobbler-web dhcp3-server tftpd-hpa xinetd
- 启动服务:sudo systemctl enable --now cobblerd;如启用 Web 界面,启动 Apache(sudo systemctl enable --now apache2)。
- 基础配置:编辑 /etc/cobbler/settings,设置 server 与 next_server 为本机 IP;按需设置 default_password_crypted(如 openssl passwd -6);运行 cobbler check 逐项修复(常见为引导加载器、TFTP、DHCP 模板等)。
- TFTP 与 DHCP:启用 xinetd 下的 TFTP(/etc/xinetd.d/tftp 中 disable=no),并按网络规划配置 /etc/cobbler/dhcp.template。
- 步骤3 迁移配置与镜像
- 配置与数据库:将旧环境的 /etc/cobbler/ 与 /var/lib/cobbler/config/ 覆盖到新环境对应路径,保持权限一致。
- 镜像与引导:将 ks_mirror、images、repo_mirror 整体拷贝至新环境 /var/www/cobbler/ 对应目录。
- 引导加载器:如 /var/lib/cobbler/loaders/ 缺失,执行 cobbler get-loaders 补齐 PXE 所需引导文件。
- 步骤4 导入与校验
- 同步到服务:执行 sudo cobbler sync,使 TFTP、DHCP、Apache 等加载最新配置与镜像。
- 校验清单:
- 发行版:cobbler distro list(应看到旧环境导入的 distros)
- 配置集:cobbler profile list
- 系统记录:cobbler system list
- 仓库:cobbler repo list(如存在)
- Web 界面:登录 Cobbler Web 检查条目完整性与参数。
四、常见故障与修复
- PXE 启动失败(找不到引导文件或 next-server 错误)
- 检查 /etc/cobbler/settings 中 next_server 是否为新服务器 IP;确认 /var/lib/tftpboot 下存在 pxelinux.0 等引导文件(缺失则 cobbler get-loaders)。
- 若管理 DHCP,核对 /etc/cobbler/dhcp.template 中 subnet/range/routers/dns/filename/next-server 是否正确,执行 cobbler sync 后重启 isc-dhcp-server。
- 导入的镜像或条目不可见
- 确认 /var/www/cobbler/ks_mirror 与 /var/lib/cobbler/config 已正确覆盖,且属主/权限正确;执行 cobbler sync 刷新;必要时用 cobbler distro report 查看详情。
- 服务启动失败或自检报错
- 使用 cobbler check 定位问题;常见为 TFTP 未启用、DHCP 模板/服务未就位、Web 依赖(如 Apache)未启动、或默认密码未设置。