温馨提示×

Cobbler如何实现CentOS系统的批量部署

小樊
33
2025-11-08 00:27:21
栏目: 智能运维

Cobbler实现CentOS系统批量部署的完整流程

一、环境准备

  1. 基础环境要求

    • Cobbler服务器需与所有客户端处于同一局域网,且局域网内仅Cobbler服务器提供DHCP服务(避免多DHCP冲突)。
    • 关闭SELinux及防火墙(或放行必要端口):
      sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config && setenforce 0  # 关闭SELinux
      systemctl stop firewalld && systemctl disable firewalld  # 关闭防火墙
      
    • 安装epel-release(提供额外软件包):
      yum install -y epel-release
      
  2. 安装Cobbler及依赖
    Cobbler依赖tftp、dhcp、httpd等服务,通过以下命令安装:

    yum install -y cobbler cobbler-web dhcp tftp-server xinetd httpd pykickstart
    
  3. 启动核心服务并设置开机自启

    systemctl enable --now httpd cobblerd xinetd dhcpd  # 启动服务并设置开机自启
    
  4. 配置Cobbler基础参数
    编辑/etc/cobbler/settings,修改以下关键参数:

    • server:设置为Cobbler服务器的IP地址(如192.168.1.100);
    • next_server:设置为TFTP服务器的IP地址(通常与server一致);
    • manage_dhcp:若Cobbler管理DHCP则设为1(否则需手动配置DHCP,见后续步骤)。
      保存后同步配置:
    cobbler sync
    
  5. 检查配置完整性
    运行cobbler check,根据提示修复问题(如开启/etc/xinetd.d/tftpdisable=no、下载PXE引导文件cobbler get-loaders等),直至无错误提示。

二、导入CentOS镜像

  1. 挂载CentOS ISO镜像
    将CentOS ISO文件上传至服务器(如/root/CentOS-7-x86_64-Minimal.iso),创建挂载目录并挂载:

    mkdir -p /mnt/centos7
    mount -o loop /root/CentOS-7-x86_64-Minimal.iso /mnt/centos7
    
  2. 导入镜像到Cobbler
    使用cobbler import命令导入镜像,生成对应的distro(系统镜像)和profile(安装配置模板):

    cobbler import --name=centos7 --arch=x86_64 --path=/mnt/centos7
    
    • --name:自定义镜像名称(如centos7);
    • --arch:系统架构(x86_64i386);
    • --path:镜像挂载路径。
      导入完成后,可通过cobbler distro list查看生成的distro(如centos7-x86_64)。

三、创建Kickstart文件(自动化安装模板)

Kickstart文件定义了系统安装的自动化参数(分区、用户、软件包等),需放置在/var/lib/cobbler/kickstarts/目录下。

  1. 生成基础Kickstart文件
    使用system-config-kickstart工具生成图形化模板(需安装system-config-kickstart):

    yum install -y system-config-kickstart
    system-config-kickstart  # 图形化配置后保存为`centos7.ks`
    

    或手动创建(示例):

    cat > /var/lib/cobbler/kickstarts/centos7.ks <<EOF
    #platform=x86, AMD64, or Intel EM64T
    #version=DEVEL
    install
    url --url=\$tree  # 指向Cobbler的HTTP镜像路径(自动填充)
    lang en_US.UTF-8
    keyboard us
    network --onboot yes --device eth0 --bootproto dhcp  # 自动获取IP
    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  # 根分区10GB
    part swap --size=2048  # 交换分区2GB
    %packages
    @^minimal
    vim-enhanced
    net-tools
    %end
    EOF
    
  2. 验证Kickstart语法
    使用ksvalidator工具检查文件合法性:

    ksvalidator /var/lib/cobbler/kickstarts/centos7.ks
    

四、关联Profile与Kickstart文件

Profile是Cobbler中连接distro(系统镜像)与kickstart(自动化配置)的桥梁,通过以下命令创建:

cobbler profile add --name=centos7-base --distro=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks
  • --name:Profile名称(如centos7-base);
  • --distro:之前导入的distro名称(如centos7-x86_64);
  • --kickstart:Kickstart文件路径。

创建后可查看Profile列表:

cobbler profile list

五、配置DHCP(可选,若Cobbler管理DHCP)

manage_dhcp设为1,需编辑/etc/cobbler/dhcp.template,配置DHCP参数:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.1.100 192.168.1.200;  # 动态IP范围
    option routers 192.168.1.1;  # 网关
    option domain-name-servers 8.8.8.8, 8.8.4.4;  # DNS
    filename "pxelinux.0";  # PXE引导文件
    next-server 192.168.1.100;  # Cobbler服务器IP
}

保存后同步配置:

cobbler sync

六、客户端批量部署

  1. 客户端设置
    将客户端的BIOS/UEFI启动模式设置为网络启动(PXE),优先从网络启动。

  2. 自动安装流程
    客户端启动后,通过PXE获取Cobbler服务器的IP,加载pxelinux.0引导文件,读取对应的Profile,自动下载CentOS镜像并通过Kickstart文件完成无人值守安装。

  3. 验证部署结果
    安装完成后,检查客户端系统版本、分区、用户及软件包是否符合Kickstart文件的配置。

注意事项

  • 镜像选择:导入的CentOS镜像需与客户端架构一致(如x86_64);
  • 密码加密:Kickstart中的rootpw需使用openssl passwd -6生成加密字符串(如$6$salt$encrypted_password);
  • 网络要求:客户端与Cobbler服务器需在同一网段,或通过路由器配置DHCP中继;
  • 批量扩展:可通过脚本批量创建Profile(如循环生成不同配置的Profile),实现多版本/多环境的批量部署。

0