CentOS 环境下使用 Cobbler 部署应用的落地方案
一 核心概念与适用场景
- Cobbler 是面向 CentOS/RHEL 的自动化装机与配置管理工具,集中管理 DHCP、DNS、TFTP、HTTP 等服务,通过 PXE 网络启动与 Kickstart 自动应答文件实现无人值守安装与批量部署。适合数据中心、实验室与大规模集群的“标准化系统交付”。
二 部署流程总览
- 安装软件包与启用服务:安装 cobbler cobbler-web tftp-server dhcp httpd xinetd,启动 cobblerd、httpd(必要时启用 rsyncd)。
- 配置核心参数:编辑 /etc/cobbler/settings,设置 server 与 next_server 为本机 PXE 网段可达的 IP;按需开启 manage_dhcp/manage_dns。
- 配置 DHCP 与 TFTP:DHCP 需下发 next-server 与 filename “pxelinux.0”;TFTP 由 xinetd 托管并启用。
- 导入发行版镜像:挂载 ISO 后执行 cobbler import 生成 distro/profile。
- 准备 Kickstart:在 /var/lib/cobbler/kickstarts/ 放置 ks 文件,关联到 profile。
- 同步与启动:执行 cobbler sync 使配置生效;客户端 BIOS 设为 PXE 首启,选择相应 profile 自动安装。
三 关键配置与命令示例
- 安装与启动
- 安装:yum -y install cobbler cobbler-web tftp-server dhcp httpd xinetd
- 启动:systemctl enable --now cobblerd httpd;必要时 systemctl enable --now rsyncd
- 核心配置
- /etc/cobbler/settings
- server=192.168.182.10
- next_server=192.168.182.10
- 可按需开启 manage_dhcp / manage_dns
- DHCP(示例 /etc/dhcp/dhcpd.conf)
- subnet 192.168.182.0 netmask 255.255.255.0 {
- range 192.168.182.150 192.168.182.155
- default-lease-time 600; max-lease-time 7200
- filename “pxelinux.0”; next-server 192.168.182.10
- option routers 192.168.182.1; option domain-name-servers 8.8.8.8
- }
- TFTP(/etc/xinetd.d/tftp)
- 将 disable = yes 改为 disable = no
- 镜像导入与校验
- 挂载 ISO:mount -o loop /path/to/CentOS-7-x86_64.iso /mnt/centos
- 导入:cobbler import --path=/mnt/centos --name=CentOS7 --arch=x86_64
- 校验:cobbler distro list;cobbler profile list;cobbler report
- Kickstart 示例(/var/lib/cobbler/kickstarts/centos7-base.ks)
- install
- url --url=$tree
- lang en_US
- keyboard us
- timezone Asia/Shanghai
- auth --enableshadow --passalgo sha512
- rootpw --iscrypted $default_password_crypted
- firewall --disabled
- selinux --disabled
- bootloader --location=mbr
- clearpart --all --initlabel
- part /boot --fstype=ext4 --size=1024
- part / --fstype=ext4 --size=10240 --grow
- %packages
- 关联与同步
- 关联:cobbler profile edit --name=CentOS7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7-base.ks
- 同步:cobbler sync
- 批量主机
- cobbler system add --name=web01 --mac=08:00:27:xx:xx:xx --profile=CentOS7-x86_64
- cobbler system list;cobbler system report --name=web01
- 服务端口(防火墙放行)
- TCP 80(HTTP)、UDP 69(TFTP)、TCP 25150–25151(Cobbler)
四 应用部署与镜像管理
- 本地镜像源与内网加速
- 导入后系统可从 http://<cobbler_ip>/cobbler/ks_mirror// 安装软件包;如需内网加速,先挂载本地 ISO 或内网仓库,再执行 cobbler import;多仓库可用 cobbler reposync 同步到本地 /var/www/cobbler/repo_mirror/,并在 ks 中用 repo --name=<repo_name> 指定。
- 在 Kickstart 中注入“应用安装”
- 方式一:%packages 段安装所需 RPM(适合基础环境与应用依赖)
- 方式二:%post 段执行脚本(适合复杂部署、配置与拉取外部包)
- %post
- yum install -y -q epel-release
- yum install -y -q docker-ce
- systemctl enable --now docker
- %end
- 镜像与目录要点
- 发行版与镜像:/var/www/cobbler/ks_mirror/、/var/www/cobbler/images/
- 引导与加载器:/var/lib/cobbler/loaders/(含 pxelinux.0 等)
- 日志:/var/log/cobbler/cobbler.log、/var/log/cobbler/install.log
五 故障排查与最佳实践
- 配置检查与引导文件
- 执行 cobbler check,按提示修正;若缺少网络引导文件,运行 cobbler get-loaders 下载常用 loader(如 pxelinux.0、menu.c32)。
- 日志与抓包定位
- 查看 /var/log/cobbler/;必要时抓包:tcpdump -i port tftp or port 69
- 同步与生效
- 每次修改 distro/profile/system 或 DHCP/TFTP 后务必执行 cobbler sync,使配置下发到各服务与 PXE 菜单。
- 安全与网络
- 生产环境不建议直接关闭 SELinux 与防火墙;按需放行 69/80/25150–25151 端口,并限制 DHCP 作用域与 PXE 网段。
- 密码与加固
- 修改 /etc/cobbler/settings 中的 default_password_crypted,可用命令生成:openssl passwd -1 -salt ‘rand’ ‘YourPass’。