Debian 环境下 Cobbler 的备份与恢复策略
一 备份范围与优先级
- 配置与数据目录
- 配置:/etc/cobbler/(含 settings、各类 .template、modules.conf、用户与授权等)
- 数据与镜像:/var/lib/cobbler/(含 config/、kickstarts/、distro_signatures.json、loaders/ 等)
- Web 与镜像内容:/var/www/cobbler/(含 ks_mirror/、images/、repo_mirror/ 等)
- 日志:/var/log/cobbler/(便于审计与问题定位)
- 外部依赖与模板
- DHCP 模板:/etc/cobbler/dhcp.template(如使用 Cobbler 管理 DHCP)
- DNS 模板(可选):/etc/cobbler/dnsmasq.template
- PXE/引导文件:/var/lib/tftpboot/(或 /tftpboot/,包含 pxelinux.0、menu.c32 等)
- 说明
- 上述目录结构与内容在主流发行版中一致,Debian 亦同;其中 distro_signatures.json 用于发行版识别,建议纳入备份。
二 备份方案与步骤
- 手动一次性备份(示例)
- 打包配置与关键模板
- tar -czvf cobbler_backup_$(date +%F).tar.gz /etc/cobbler /etc/cobbler/dhcp.template /etc/cobbler/dnsmasq.template
- 备份 PXE 引导文件
- cp -a /var/lib/tftpboot /var/lib/tftpboot_backup_$(date +%F)
- 备份数据与镜像(可选,体量较大)
- tar -czvf cobbler_data_$(date +%F).tar.gz /var/lib/cobbler /var/www/cobbler
- 自动化备份(crontab)
- 0 2 * * * /usr/bin/tar czf /backup/cobbler_$(date +%F).tar.gz /etc/cobbler /etc/cobbler/dhcp.template /etc/cobbler/dnsmasq.template /var/lib/cobbler /var/www/cobbler
- 备份粒度建议
- 日常:配置与模板(轻量、高频)
- 每周/每月:全量数据与镜像(可离线归档)
- 注意事项
- 使用 root 或具备相应权限的用户执行
- 备份介质与存储应与生产环境隔离(如异地/离线)
- 对大目录(如 repo_mirror)可结合 –exclude 与增量策略优化时间与空间
三 恢复步骤与要点
- 恢复配置与模板
- 解压配置包到根目录:tar -xzvf cobbler_backup_YYYY-MM-DD.tar.gz -C /
- 如单独备份了模板或 PXE 目录,按原路径还原:
- cp -a /var/lib/tftpboot_backup_YYYY-MM-DD /var/lib/tftpboot
- 启动依赖服务
- systemctl start cobblerd
- systemctl start apache2
- 如使用 xinetd 管理 TFTP:systemctl start xinetd
- 使配置生效
- cobbler check(先做自检)
- cobbler sync(生成/更新 DHCP、TFTP、PXE 配置并分发)
- 验证
- systemctl status cobblerd(服务健康)
- 在客户端进行 PXE 引导测试,确认 DHCP 分配与 TFTP 下载正常
四 版本升级与迁移场景
- 升级前
- 完整备份(配置、数据、镜像与日志),并在测试环境演练
- 升级中
- 按发行版包管理器执行升级(如 apt),避免直接覆盖配置
- 升级后执行 cobbler check 与 cobbler sync,必要时 cobbler get-loaders 补齐引导程序
- 迁移到新主机
- 在新主机恢复配置与数据后,重点核对 /etc/cobbler/settings 中的 server 与 next_server 是否指向新主机地址,再执行 cobbler sync
五 常见问题与排错清单
- 自检与同步报错
- 执行 cobbler check 修复常见项(如 server/next_server 配置、TFTP/RSYNC 启用、防火墙放行)
- 同步失败可先 cobbler sync 前再次 check,必要时查看 /var/log/cobbler/cobbler.log 与 install.log 定位
- 引导文件缺失
- 若 /var/lib/cobbler/loaders 不完整,执行 cobbler get-loaders 补齐;或确保已安装较新版本的 syslinux 包
- 权限与路径
- 确保 /var/lib/tftpboot 与 /var/www/cobbler 目录属主/属组与权限正确,避免 TFTP/HTTP 访问受限
- 服务联动
- 修改 DHCP 模板后需 cobbler sync 才会下发;如由外部 DHCP 管理,需与其配置保持一致