温馨提示×

如何利用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 管理网与业务网。

0