目录
4.3 安装并配置 EPEL 源(Cobbler 所在仓库)
一、文章概述

在企业运维、实验室环境或批量服务器交付场景中,手工安装操作系统效率极低且不可控。
Cobbler 作为一套成熟的 PXE 自动化装机管理平台,可以实现服务器的 批量、无人值守、标准化部署。
本文将从零开始,完整演示在 CentOS 7.9 环境下搭建一套 可直接投入使用的 Cobbler 自动化安装系统,内容全部经过实测,确保可复现。
二、环境说明
| 项目 | 说明 |
|---|---|
| 操作系统 | CentOS Linux release 7.9.2009 (Core) |
| Cobbler 版本 | 2.8+(EPEL 源安装) |
| 网络模式 | 局域网 / 桥接网络 |
| 适用场景 | 批量部署、实验环境、运维自动化 |
三、部署前准备:关闭安全限制(实验环境)
Cobbler 涉及 DHCP、TFTP、HTTP 等多个网络服务,为避免权限与端口干扰,实验环境建议直接关闭防火墙与 SELinux。
# 关闭并禁用 firewalld
systemctl stop firewalld
systemctl disable firewalld
# 临时关闭
SELinux setenforce 0
# 永久关闭 SELinux(重启生效)
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
四、配置CentOS 7.9 软件源
由于 CentOS 7 已停止维护,官方仓库已迁移至 vault,否则会出现大量 yum 报错。
4.1 备份原有仓库
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
4.2 配置阿里云 CentOS Vault 源
cat > /etc/yum.repos.d/CentOS-Base.repo <<EOF
[base]
name=CentOS-\$releasever - Base
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/os/\$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7
enabled=1
[updates]
name=CentOS-\$releasever - Updates
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/updates/\$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7
enabled=1
[extras]
name=CentOS-\$releasever - Extras
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/extras/\$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7
enabled=1
EOF
4.3 安装并配置 EPEL 源(Cobbler 所在仓库)
cat > /etc/yum.repos.d/epel.repo <<EOF
[epel]
name=Extra Packages for Enterprise Linux 7 - \$basearch
baseurl=https://mirrors.aliyun.com/epel/7/\$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - \$basearch - Debug
baseurl=https://mirrors.aliyun.com/epel/7/\$basearch/debug
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
[epel-source]
name=Extra Packages for Enterprise Linux 7 - \$basearch - Source
baseurl=https://mirrors.aliyun.com/epel/7/SRPMS
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
EOF
4.4 清理缓存并测试
yum clean all
yum makecache
若出现 DNS 解析错误:
echo "nameserver 223.5.5.5" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
chattr +i /etc/resolv.conf #保证内容不可修改
五、安装 Cobbler 及相关组件
yum install -y cobbler cobbler-web httpd dhcp tftp-server xinetd rsync pykickstart fence-agents
fence-agents非必需,但可消除cobbler check警告,推荐安装。
六、Cobbler 核心配置
6.1 获取服务器 IP
IP=$(ip route get 8.8.8.8 | awk '{print $7; exit}')
echo "Cobbler Server IP: $IP"
6.2 配置 /etc/cobbler/settings
# root 密码密文(示例:123456),执行生成密码的命令后得到的结果
PASSWD_CRYPTED='$1$Nrt/tXCR$BrRthh4tFphGyCunrGWzi/'
sed -i "s|^default_password_crypted.*|default_password_crypted: \"$PASSWD_CRYPTED\"|g" /etc/cobbler/settings
sed -i "s|^next_server.*|next_server: $IP|g" /etc/cobbler/settings
sed -i "s|^server.*|server: $IP|g" /etc/cobbler/settings
sed -i 's|^manage_dhcp.*|manage_dhcp: 1|g' /etc/cobbler/settings
sed -i 's|^manage_tftpd.*|manage_tftpd: 1|g' /etc/cobbler/settings
生成自定义密码密文:
openssl passwd -1
七、DHCP 服务配置
GATEWAY=$(ip route show default | awk '{print $3}')
cat > /etc/cobbler/dhcp.template <<EOF
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers $GATEWAY;
option domain-name-servers 223.5.5.5;
range dynamic-bootp 192.168.1.101 192.168.1.200;
default-lease-time 7200;
max-lease-time 7200;
next-server \$next_server;
filename "pxelinux.0";
}
EOF
注意避开 Cobbler 服务器自身 IP。
八、启动并同步服务
systemctl enable --now httpd dhcpd xinetd cobblerd rsyncd
cobbler get-loaders
cobbler sync
九、导入 CentOS 7.9 ISO 镜像
mount /dev/cdrom /mnt
cobbler import --name=CentOS7.9 --path=/mnt --arch=x86_64
cobbler sync
如下图为完成的界面:

导入过程可能持续 5–15分钟,属正常现象。如果不放心可以另外开一个终端
# 查看是否有 rsync 或 cp 进程(Cobbler 用 rsync 复制文件)
ps aux | grep -E 'rsync|cobbler'
# 查看磁盘写入(观察是否持续写入)
iotop -o
十、验证 Cobbler 服务
10.1 服务状态
systemctl is-active httpd dhcpd xinetd cobblerd rsyncd

10.2 浏览器Web访问
http://192.168.1.100/cobbler/ks_mirror/

10.3 PXE 菜单确认
cat /var/lib/tftpboot/pxelinux.cfg/default

十一、客户端 PXE 启动测试
启动后应看到 Cobbler 菜单,选择 CentOS7.9-x86_64 即可安装。
新建虚拟机后在启动时按F2键加入BIOS模式选择Network为首选,保存退出。

如图选择第二项回车之后便会开始自动安装:

如图已经安装成功了,自动分配了192.168.1.101的IP地址:

十二、常见问题与解决方案
问题 1:DNS 解析失败
✔️ 配置 /etc/resolv.conf 并锁定

问题 2:TFTP 未启用,disable行yes改为no
sed -i 's/disable\s\+=\s\+yes/disable = no/' /etc/xinetd.d/tftp
systemctl restart xinetd

问题 3:DHCP 冲突
-
关闭路由器 DHCP(推荐)
-
或使用现有 DHCP 模式
问题 4:导入 ISO 卡住
# 按 Ctrl+C 中断当前命令(如果还能响应)
# 或强制终止 cobblerd(谨慎!)
pkill -f cobblerd
systemctl restart cobblerd
# 清理残留
rm -rf /var/www/cobbler/ks_mirror/Centos7.9
umount /mnt
mount /dev/cdrom /mnt
# 重新导入(加 --verbose 看进度)
cobbler import --name=Centos7.9 --path=/mnt --arch=x86_64 --verbose
十三、总结
至此,一套 完整、可扩展、企业级的 Cobbler 自动化安装平台 已部署完成。
无论是 1 台还是多台服务器,只需 PXE 启动,即可完成标准化交付。
如果你希望 完全无人值守(不点任何按钮):
# 使用默认 KS 模板(密码为 cobbler)
cobbler profile edit --name=Centos7.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/sample_end.ks
# 同步生效
cobbler sync
1577

被折叠的 条评论
为什么被折叠?



