如何利用Cobbler进行批量安装
小樊
43
2025-12-06 04:58:38
Cobbler批量安装实操指南
一 架构与准备
- 组件与原理:Cobbler 集成 PXE/DHCP/TFTP/HTTP,集中管理镜像与 Kickstart/Preseed 应答文件,实现无人值守批量装机。
- 基础环境(示例):Cobbler 服务器 CentOS 7/8,IP 192.168.52.202;客户端支持 PXE 启动;同一二层网段内避免其它 DHCP 干扰。
- 安装依赖与启动服务:
- 安装:yum -y install cobbler cobbler-web pykickstart httpd dhcp xinetd tftp-server
- 启动:systemctl enable --now cobblerd httpd xinetd
- 防火墙与 SELinux(测试环境常用做法):
- 放行端口:firewall-cmd --permanent --add-service=http;firewall-cmd --permanent --add-port=69/udp;firewall-cmd --reload
- SELinux:setenforce 0;sed -i ‘s/^SELINUX=.*/SELINUX=permissive/’ /etc/selinux/config
- 初始化检查与修复:
- cobbler check
- 常见修复:cobbler get-loaders;yum -y install syslinux;确保 /var/lib/cobbler/loaders 包含 pxelinux.0、menu.c32 等。
二 核心配置
- 主配置 /etc/cobbler/settings(关键项):
- server 与 next_server:均设为 192.168.52.202
- manage_dhcp:设为 1(由 Cobbler 托管 DHCP)
- default_password_crypted:设置默认 root 加密口令
- 生成示例:openssl passwd -1 ‘YourPassword’(将结果填入)
- DHCP 模板 /etc/cobbler/dhcp.template(按现场网段修改):
- subnet 192.168.52.0 netmask 255.255.255.0 {
- option routers 192.168.52.1;
- option domain-name-servers 223.5.5.5, 8.8.8.8;
- range dynamic-bootp 192.168.52.100 192.168.52.200;
- default-lease-time 21600; max-lease-time 43200;
- next-server $next_server; filename “pxelinux.0”; }
- TFTP 启用:编辑 /etc/xinetd.d/tftp,将 disable = yes 改为 disable = no,并 systemctl restart xinetd
- 导入发行版镜像(示例为 CentOS 7/8 ISO 挂载点 /mnt/iso):
- cobbler import --path=/mnt/iso --name=centos7 --arch=x86_64
- 导入后镜像位于 /var/www/cobbler/ks_mirror/,可用 cobbler distro list 查看
- 创建 Kickstart(示例 /var/lib/cobbler/kickstarts/centos7.ks):
- 关键项:rootpw --iscrypted $default_password_crypted;url --url=$tree;bootloader --location=mbr;zerombr;clearpart --all --initlabel
- 分区示例:part /boot --fstype xfs --size 1024;part swap --size 16384;part / --fstype xfs --size 1 --grow
- 网络示例:network --bootproto=dhcp --device=eth0 --onboot=on
- 安全与服务:firewall --disabled;selinux --disabled;%packages 按需添加 @base @core;%post 可禁用 postfix 等
- 绑定应答文件到 Profile 并同步:
- cobbler profile edit --name=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks
- cobbler sync(使 DHCP/TFTP/HTTP 配置生效)
三 批量装机流程
- 方式 A 按 MAC 精确装机(推荐用于生产)
- 添加系统对象:cobbler system add --name=host01 --mac=AA:BB:CC:DD:EE:FF --profile=centos7-x86_64 --ip-address=192.168.52.101 --subnet=255.255.255.0 --gateway=192.168.52.1 --interface=eth0 --static=1 --hostname=host01 --name-servers=223.5.5.5,8.8.8.8
- 同步:cobbler sync
- 客户端设置 PXE 启动,上电后将自动获取 IP、下载引导并安装
- 方式 B 按 Profile 批量装机(同网段裸机)
- 客户端 PXE 启动后,在菜单选择对应 Profile(如 centos7-x86_64),将按该 Profile 的 Kickstart 自动安装
- 方式 C 重装与替换(已装系统)
- 安装 koan:yum -y install koan
- 查看可用镜像:koan --list=profiles --server=192.168.52.202
- 指定重装:koan --replace-self --server=192.168.52.202 --profile=centos7-x86_64;reboot
四 常见问题与排错
- 端口与服务:确认 DHCP 67/68、TFTP 69/UDP、HTTP 80 未被占用;firewall-cmd --list-ports;ss -lunpt | grep -E ‘69|80’
- 引导文件缺失:cobbler check 提示 loader 缺失时执行 cobbler get-loaders;或安装 syslinux 并确保 pxelinux.0、menu.c32 到位
- DHCP 冲突:同一网段仅保留一个 DHCP;若由 Cobbler 托管,请关闭路由器/其它 DHCP 服务
- 镜像与路径:导入后检查 /var/www/cobbler/ks_mirror/ 是否生成对应目录;Kickstart 中 url 使用 $tree 变量
- 同步与生效:每次修改 Profile/System/DHCP 模板后执行 cobbler sync;变更后建议重启 cobblerd、httpd、xinetd
- 验证顺序:cobbler check → cobbler distro list / profile list → cobbler system list → 客户端 PXE 启动日志(TFTP/HTTP)