CentOS 上 Cobbler 的版本升级与迁移指南
一、升级路径与准备
- 明确目标:是仅做小版本更新(补丁),还是跨大版本迁移(如 CentOS 7 → 8/Stream,或 EPEL 7 → 8/9)。跨大版本不建议就地升级,优先采用并行部署新环境 + 数据迁移的方式,降低风险。
- 准备清单:
- 备份关键数据与配置:/etc/cobbler/(含 settings、distros、profiles、systems、repos、dhcp.template 等)、/var/lib/cobbler/(镜像与 kickstart 存储)、以及自定义的 PXE/GRUB 文件与脚本。
- 记录版本与依赖:执行 cobbler --version、记录 cobbler-web、httpd、tftp-server、xinetd/dhcp 等版本,便于回滚与比对。
- 准备可用的软件源:确保 EPEL 可用(Cobbler 不在 base 源),必要时启用 epel-testing 获取新版(仅测试环境)。
- 变更窗口与回滚方案:选择低峰时段,保留旧环境至少1–2 周以便回滚;准备好回滚脚本与镜像副本。
二、就地小版本升级步骤(同发行版,同大版本)
- 更新软件源并升级相关包:
- 建议先升级 Cobbler 相关组件:sudo yum update cobbler cobbler-web(必要时一并升级 dhcp tftp-server xinetd pykickstart httpd rsync)。
- 重启服务并同步配置:
- 启用并重启:systemctl enable --now cobblerd httpd tftp xinetd;随后执行 cobbler sync 使配置生效。
- 校验结果:
- 执行 cobbler check 排查环境依赖;使用 cobbler version 与 cobbler distros/list 等命令核对版本与对象是否正常。
三、跨大版本迁移或重建(推荐)
- 部署新环境:在新系统(如 CentOS 8/9 或 Stream)上按官方流程安装并初始化 Cobbler,确保 EPEL 已就位,安装 cobbler cobbler-web httpd tftp-server xinetd dhcp rsync 等组件。
- 迁移配置与数据:
- 配置迁移:将旧环境的 /etc/cobbler/ 下除动态生成文件外的配置按需拷贝到新环境,注意 server/next_server 等地址与新环境一致;必要时调整 /etc/cobbler/dhcp.template 网段与网关。
- 镜像迁移:将 /var/lib/cobbler/ 中的镜像与 kickstart 目录整体拷贝至新环境,保持相对路径一致,避免 cobbler import 重复下载。
- 初始化与同步:
- 在新环境执行 cobbler check、cobbler sync;如曾使用 cobbler get-loaders,在新环境再次获取最新引导加载器。
- 验证与切换:
- 使用测试主机 PXE 引导验证 distro/profile/system 是否可用;确认无误后,将生产 PXE/网关指向新 Cobbler 服务器,逐步切换流量。
四、升级后的验证与常见问题
- 验证要点:
- 版本与组件:cobbler --version、服务状态 systemctl status cobblerd httpd tftp。
- 配置一致性:cobbler check 无高危告警;cobbler sync 成功;导入或复制的 distros/profiles/systems 可正常列出与安装。
- 网络引导:PXE 启动可获取 pxelinux.0 或 grub,能进入安装流程。
- 常见问题与处理:
- 引导器缺失:执行 cobbler get-loaders 补齐 pxelinux/grub 文件。
- EPEL 或镜像源不可达:检查 /etc/yum.repos.d/epel.repo 的 baseurl/mirrorlist 配置,必要时临时使用 baseurl 直连镜像站点。
- DHCP 未下发或指向错误:核对 /etc/cobbler/dhcp.template 的 subnet/range/next-server/routers,执行 cobbler sync 后重启 dhcpd/xinetd。