Cobbler如何实现远程系统更新
小樊
40
2025-12-25 21:49:46
Cobbler实现远程系统更新的可行路径
核心思路
- Cobbler 的定位是自动化安装与配置,并非通用的“在线包更新”引擎。因此,远程“更新”通常有三种落地方式:
- 基于镜像的“重装/重建”更新:用新版镜像生成新的 Distro/Profile,让目标主机在下次 PXE 启动时自动重装到新版本(适合跨小版本或跨大版本升级)。
- 就地“包更新”:保持现有系统在线,通过 Kickstart %post 或远程执行(如 Ansible/Salt/SSH)调用 yum/dnf/apt 完成升级,Cobbler提供仓库与引导能力,但不直接替你执行包管理。
- 半自动重装:客户端安装 Koan,按需选择新 Profile 执行重装,适合临时、分批升级。
方案一 镜像重建更新(推荐用于跨版本升级)
- 在 Cobbler Server 导入新版镜像并生成新的 Distro/Profile(示例为 CentOS 7):
- 挂载 ISO 并导入:
- mount -o loop /path/to/CentOS-7-x86_64.iso /mnt
- cobbler import --path=/mnt --name=CentOS-7-u9 --arch=x86_64
- 查看并基于新 Distro 创建或调整 Profile(可复用现有 Kickstart,必要时更新版本变量):
- cobbler distro list
- cobbler profile list
- cobbler profile add --name=CentOS-7-u9-x86_64 --distro=CentOS-7-u9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7-upgrade.ks
- 同步配置并重启相关服务:
- cobbler sync
- systemctl restart cobblerd httpd tftp
- 在目标主机上触发重装(两种常见方式):
- PXE 菜单选择新 Profile 启动,或临时调整 BIOS/启动顺序为 PXE 优先,完成安装后改回硬盘启动。
- 客户端安装 Koan 并指定新 Profile 执行重装:
- koan --server=<Cobbler_IP> --profile=CentOS-7-u9-x86_64 --display
- koan --server=<Cobbler_IP> -r --profile=CentOS-7-u9-x86_64 && reboot
- 说明:此路径本质是“重建系统”,最稳妥可靠;适合需要同时变更系统基线、分区或内核的场景。
方案二 就地包更新(适合日常补丁与小版本升级)
- 使用 Cobbler 管理软件仓库 并在 Kickstart %post 或远程脚本中执行更新:
- 定义/同步更新源(示例):
- cobbler repo add --name=updates-base --mirror=http://mirror.centos.org/centos/7/updates/x86_64/ --mirror-locally=1 --priority=99
- cobbler reposync
- 在 Kickstart 的 %post 中调用更新(示例):
- %post
- yum --disablerepo=‘*’ --enablerepo=‘updates-base’ update -y
- reboot
- 或者不做镜像,直接在远程通过 Ansible/Salt/SSH 执行:
- ansible all -m yum -a “name=* state=latest”
- ansible all -m command -a “reboot”
- 说明:就地更新速度快、影响可控,但不改变系统基线;建议先在测试环境验证并更新回滚预案。
方案三 半自动重装与分批滚动升级
- 结合 Koan 与 Cobbler Profile,按批次将主机从旧 Profile 切换到新 Profile,实现可控的滚动升级:
- 列出可用 Profile:
- koan --server=<Cobbler_IP> --list=profiles
- 查看目标主机当前配置:
- koan --server=<Cobbler_IP> --display --system=
- 执行重装并重启:
- koan --server=<Cobbler_IP> -r --profile= && reboot
- 说明:适合需要人工审批、分批执行的升级窗口,降低一次性风险。
关键配置与注意事项
- 基础配置要点(/etc/cobbler/settings):
- 正确设置 server 与 next_server(TFTP 地址),确保客户端能获取引导文件与安装源。
- 按需启用 manage_dhcp / manage_tftp,并使用 cobbler sync 使配置生效。
- 建议开启 pxe_just_once=1,避免重复误装。
- 仓库与镜像:
- 使用 cobbler repo add … && cobbler reposync 管理更新源,确保 /var/www/cobbler/repo_mirror 有充足空间与带宽。
- 日志与排错:
- 关注 /var/log/cobbler/cobbler.log 与 /var/log/cobbler/install.log,定位导入、同步、引导与安装阶段的问题。
- 风险提示:
- 跨版本重建会变更系统与数据布局,务必做好备份与回滚方案,并在非生产环境充分验证。