在 CentOS 上使用 Cobbler 集成 Git,通常不是“Cobbler 原生支持 Git”,而是把 Cobbler 的配置文件(kickstart、snippets、profiles、systems 等)用 Git 管理起来,或者在 Cobbler 自动化流程中调用 Git。下面按常见场景给你一个清晰思路。
Cobbler 的核心配置其实都在文件里,非常适合用 Git 管理。
常见需要纳入 Git 的目录:
/var/lib/cobbler/
/var/lib/cobbler/kickstarts/
/var/lib/cobbler/snippets/
/etc/cobbler/
⚠️ 注意:/var/lib/cobbler/ 里有些是运行时数据(如 config/ 的二进制结构),建议只 Git 管理:
cobbler list / cobbler dumpcd /var/lib/cobbler/kickstarts
git init
git add .
git commit -m "init cobbler kickstarts"
同理对 snippets:
cd /var/lib/cobbler/snippets
git init
git add .
git commit -m "init cobbler snippets"
git remote add origin git@git.example.com:cobbler/kickstarts.git
git push -u origin master
✅ 好处:
Cobbler 支持导出配置:
cobbler sync
cobbler list > cobbler-list.txt
可以写个脚本每天/每次变更后执行:
#!/bin/bash
cd /opt/cobbler-git
cobbler list > cobbler-list.txt
git add .
git commit -m "auto commit $(date)"
git push
典型架构:
Git Repo (kickstart/snippets)
↓ push
CI (GitLab CI / Jenkins)
↓ 校验
Cobbler Server (pull & cobbler sync)
示例(简单 pull 模式):
#!/bin/bash
cd /var/lib/cobbler/kickstarts
git pull
cobbler sync
如果你是想 在系统安装阶段用 Git,可以在 kickstart 中:
%post
yum install -y git
git clone https://git.example.com/configs/client.git /opt/config
%end
⚠️ 需要网络可用,且 repo 公开或带 token。
❌ 直接 Git 整个 /var/lib/cobbler/config/
❌ 用 Git 替代 cobbler sync
✅ 最佳实践
kickstarts + snippets如果你愿意,可以告诉我:
我可以直接给你一套 可落地的目录结构 + 脚本。