温馨提示×

如何通过Cobbler实现CentOS批量安装

小樊
36
2025-12-27 08:43:29
栏目: 智能运维

通过 Cobbler 批量安装 CentOS 的完整流程

一 环境准备与安装

  • 网络与角色
    • 确保 Cobbler 服务器与所有待装客户端处于同一二层网络,且由 Cobbler 统一提供 DHCP(避免多 DHCP 冲突)。
  • 关闭 SELinux 与防火墙(或放行必要端口)
    • 临时关闭:setenforce 0
    • 永久关闭:sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    • 防火墙:systemctl stop firewalld && systemctl disable firewalld
  • 安装 EPEL 与 Cobbler 依赖
    • yum install -y epel-release
    • yum install -y cobbler cobbler-web dhcp tftp-server xinetd httpd pykickstart
  • 启动核心服务
    • systemctl enable --now httpd cobblerd xinetd dhcpd
  • 基础配置与自检
    • 编辑 /etc/cobbler/settings:设置 servernext_server 为 Cobbler 服务器 IP(两者通常一致)。
    • 执行 cobbler check,按提示修复(如启用 TFTP、获取引导文件等),最后 cobbler sync 使配置生效。

二 导入 CentOS 镜像

  • 挂载 ISO
    • mkdir -p /mnt/centos7
    • mount -o loop /root/CentOS-7-x86_64-Minimal.iso /mnt/centos7
  • 导入镜像(自动生成 distro 与 profile)
    • cobbler import --name=centos7 --arch=x86_64 --path=/mnt/centos7
    • 查看:cobbler distro list(如输出 centos7-x86_64)。

三 创建 Kickstart 自动化模板

  • 生成或编辑 Kickstart
    • 安装工具:yum install -y system-config-kickstart
    • 图形化生成后保存为:/var/lib/cobbler/kickstarts/centos7.ks
    • 示例(可按需调整分区、包组与网络):
      #platform=x86, AMD64, or Intel EM64T
      install
      url --url=$tree
      lang en_US.UTF-8
      keyboard us
      network --onboot yes --device eth0 --bootproto dhcp
      rootpw --iscrypted $6$your_encrypted_password   # 用 openssl passwd -6 生成
      firewall --disabled
      selinux --disabled
      timezone Asia/Shanghai
      bootloader --location=mbr
      zerombr
      clearpart --all --initlabel
      part / --fstype="xfs" --size=10240
      part swap --size=2048
      %packages
      @^minimal
      vim-enhanced
      net-tools
      %end
      
  • 语法校验
    • ksvalidator /var/lib/cobbler/kickstarts/centos7.ks

四 关联 Profile 与 Kickstart 并配置 DHCP

  • 创建 Profile(连接 distro 与 kickstart)
    • cobbler profile add --name=centos7-base --distro=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks
    • 查看:cobbler profile list
  • 配置 DHCP(两种方式,二选一)
    • 方式 A(Cobbler 托管 DHCP)
      • 编辑 /etc/cobbler/dhcp.template
        subnet 192.168.1.0 netmask 255.255.255.0 {
            range dynamic-bootp 192.168.1.100 192.168.1.200;
            option routers 192.168.1.1;
            option domain-name-servers 8.8.8.8, 8.8.4.4;
            filename "pxelinux.0";
            next-server 192.168.1.100;
        }
        
      • 同步:cobbler sync
    • 方式 B(外部 DHCP)
      • 在现有 DHCP 配置中加入:filename "pxelinux.0"; next-server <Cobbler_IP>;,并重启 DHCP 服务。

五 客户端批量部署与验证

  • 客户端设置
    • 在 BIOS/UEFI 中将启动顺序设为 Network/PXE 优先
  • 自动安装
    • 客户端 PXE 启动后自动获取 IP、加载 pxelinux.0、匹配对应 Profile,并通过 Kickstart 无人值守安装。
  • 验证
    • 登录检查系统版本、分区、用户与软件包是否符合预期;如需扩展,可批量创建多个 Profile 以适配不同环境或版本。

六 常见问题与优化建议

  • 架构一致:导入镜像的 arch(如 x86_64)需与客户端一致。
  • 密码安全:Kickstart 中 rootpw 使用 openssl passwd -6 生成加密串,避免明文。
  • 网络要求:客户端与服务器需同网段,跨网段需配置 DHCP 中继
  • 服务端口:确保 HTTP 80/TFTP 69 等端口未被占用并放通(生产环境建议精细化放行而非直接关闭防火墙)。
  • 引导文件:确认 pxelinux.0next-server 配置正确,变更后执行 cobbler sync 同步。

0