- 首页 >
- 问答 >
-
智能运维 >
- 如何利用Cobbler搭建CentOS测试环境
如何利用Cobbler搭建CentOS测试环境
小樊
41
2025-12-27 08:49:37
环境准备与网络规划
- 准备一台作为 Cobbler 的服务端主机(建议 CentOS 7/8),并准备一台或多台用于安装测试的客户端。
- 网络建议:服务端准备两张网卡,一张用于管理/外网(如 NAT),另一张用于 PXE 测试网段(如 仅主机/VMnet2,示例网段 192.168.3.0/24),并在虚拟化平台中关闭该测试网段的 DHCP,避免与 Cobbler 冲突。
- 基本环境调整:
- 关闭防火墙与 SELinux(测试环境):
- systemctl stop firewalld && systemctl disable firewalld
- setenforce 0 && sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
- 安装 EPEL 源并安装依赖:
- yum install -y epel-release
- yum install -y cobbler cobbler-web httpd dhcp tftp-server xinetd pykickstart syslinux
- 启动核心服务并设置开机自启:
- systemctl enable --now cobblerd httpd xinetd
- 说明:Cobbler 将提供 HTTP(镜像与 Kickstart)、DHCP(可选托管)、TFTP(PXE 引导)等关键服务。
Cobbler核心配置
- 基础参数设置(/etc/cobbler/settings):
- 设置服务器地址与 TFTP 地址(两者通常为同一 IP,示例为 192.168.3.10):
- sed -ri ‘/^server:/c\server: 192.168.3.10’ /etc/cobbler/settings
- sed -ri ‘/^next_server:/c\next_server: 192.168.3.10’ /etc/cobbler/settings
- 设置默认 root 加密密码(示例明文为 123456):
- openssl passwd -1 ‘123456’ # 生成如 $1$… 的哈希
- 将输出写入:default_password_crypted
- 启用 Cobbler 托管 DHCP(测试环境常用):
- cobbler setting edit --name=manage_dhcp --value=1
- DHCP 模板(/etc/cobbler/dhcp.template,按实际网段修改):
- subnet 192.168.3.0 netmask 255.255.255.0 {
- range dynamic-bootp 192.168.3.100 192.168.3.200;
- option routers 192.168.3.1;
- option domain-name-servers 8.8.8.8, 8.8.4.4;
- filename “pxelinux.0”;
- next-server 192.168.3.10;
- }
- TFTP 启用(/etc/xinetd.d/tftp):
- disable = no
- systemctl restart xinetd
- 检查并同步:
- cobbler check(按提示逐项修复)
- cobbler sync(使配置生效)
导入镜像与创建安装模板
- 导入 CentOS ISO(示例为 CentOS 7.9):
- mkdir -p /mnt/iso
- mount -o loop /root/CentOS-7-x86_64-Minimal-2009.iso /mnt/iso
- cobbler import --name=centos7.9 --arch=x86_64 --path=/mnt/iso
- 导入完成后可通过 http://192.168.3.10/cobbler/ks_mirror/centos7.9 访问镜像内容
- 创建 Kickstart 文件(/var/lib/cobbler/kickstarts/centos7.ks,示例要点):
- install
- url --url=“http://192.168.3.10/cobbler/ks_mirror/centos7.9”
- lang en_US.UTF-8
- keyboard us
- rootpw --iscrypted $1$… # 使用上面生成的哈希
- firewall --disabled
- selinux --disabled
- timezone Asia/Shanghai
- bootloader --location=mbr
- clearpart --all --initlabel
- part / --fstype ext4 --size 10240
- part swap --size 2048
- %packages
- @base
- @core
- vim
- net-tools
- %end
- %post
- echo “Install OK” > /etc/motd
- %end
- 将镜像与 Kickstart 关联为 Profile:
- cobbler profile add --name=centos7.9-mini --distro=centos7.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks
- 可选:创建 System 条目用于指定静态 IP(示例):
- cobbler system add --name=test-vm --profile=centos7.9-mini --netboot-enabled=true
- cobbler system edit --name=test-vm --interface=eth0 --mac=00:11:22:AA:BB:CC
–ip-address=192.168.3.150 --netmask=255.255.255.0 --static=1
–gateway=192.168.3.1 --dns-name=test.example.com
- 校验与生效:
- cobbler validateks --profile=centos7.9-mini
- cobbler sync
部署与验证
- 客户端 PXE 启动:在 BIOS/UEFI 中将 Network Boot 设为第一启动项,重启后将自动获取 IP、下载 pxelinux.0 与 Kickstart,完成无人值守安装。
- Web 管理界面:访问 https://192.168.3.10/cobbler_web,默认账号 cobbler/cobbler,可在界面中查看、启动和管理系统部署任务。
- 验证要点:
- 安装完成后检查系统版本、分区、预装软件包是否符合预期(如 root 密码、/etc/motd 内容)。
- 若失败,查看日志:/var/log/cobbler/cobbler.log 与 /var/log/messages。
常见问题与优化
- PXE 无法启动:确认 TFTP 运行(systemctl status xinetd)、/etc/xinetd.d/tftp 中 disable=no,且客户端与服务器在同一二层网段;必要时抓包排查 DHCP Offer/ACK 与 TFTP 文件请求。
- DHCP 冲突:确保虚拟化平台或网络中其他 DHCP 已关闭;Cobbler 托管 DHCP 时由 manage_dhcp=1 与 dhcp.template 统一生成配置。
- Kickstart 语法错误:使用 cobbler validateks 校验;注意 url 指向正确的 ks_mirror 路径,rootpw 使用加密串($1$ 或 $6$)。
- UEFI 启动:确保 syslinux/pxelinux 相关文件完整,必要时补充 UEFI 引导配置;Cobbler 菜单模板位于 /etc/cobbler/pxe/,可按需调整。
- 安全建议(测试环境可忽略):上线前恢复 firewalld/SELinux,限制管理网段访问,修改默认 Web 密码,分离 PXE 管理网与业务网。