温馨提示×

cobbler如何实现自动化安装

小樊
55
2025-09-20 04:18:54
栏目: 编程语言

Cobbler实现自动化安装的核心流程

1. 环境准备

在开始配置前,需完成基础环境设置,确保服务器具备网络连通性和服务运行条件:

  • 关闭防火墙与SELinux:避免防火墙拦截PXE、DHCP等服务请求,禁用SELinux防止权限问题。
    systemctl stop firewalld && systemctl disable firewalld
    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    
  • 安装必要软件包:Cobbler依赖httpd(Web服务)、dhcp(DHCP服务)、tftp-server(TFTP服务)、pykickstart(Kickstart文件支持)等组件。
    yum -y install epel-release cobbler cobbler-web dhcp tftp-server httpd xinetd pykickstart
    

2. 配置Cobbler基础参数

Cobbler的核心配置文件为/etc/cobbler/settings,需调整以下关键参数以匹配网络环境:

  • 设置服务器与Next服务器地址server指向Cobbler服务器本机IP,next_server指向TFTP服务器IP(通常与Cobbler服务器同一IP)。
  • 启用动态配置:允许通过cobbler setting edit命令动态修改配置。
    sed -ri '/allow_dynamic_settings:/c\allow_dynamic_settings: 1' /etc/cobbler/settings
    systemctl restart cobblerd
    
  • 验证配置有效性:运行cobbler check命令检查环境是否满足要求(如DHCP、TFTP服务是否开启),并根据提示修复问题(如启动httpdxinetd服务)。

3. 导入操作系统镜像

Cobbler通过导入操作系统ISO镜像生成安装源,供客户端下载:

  • 挂载ISO镜像:将ISO文件挂载至临时目录(如/mnt)。
    mkdir /mnt/centos7 && mount -o loop /path/to/CentOS-7-x86_64.iso /mnt/centos7
    
  • 导入镜像:使用cobbler import命令将镜像导入至Cobbler仓库,指定名称(如centos7)和架构(如x86_64)。
    cobbler import --path=/mnt/centos7 --name=centos7 --arch=x86_64
    
    导入完成后,Cobbler会在/var/www/cobbler/ks_mirror/centos7目录下生成安装源文件。

4. 创建Kickstart自动化安装文件

Kickstart文件是自动化安装的核心,定义了系统分区、用户密码、软件包等配置:

  • 生成默认Kickstart文件:使用cobbler ksvalidator命令生成模板,或手动创建(如/var/lib/cobbler/kickstarts/centos7.ks)。
    cat > /var/lib/cobbler/kickstarts/centos7.ks << 'EOL'
    install
    url --url="http://$server/cobbler/ks_mirror/centos7"
    lang en_US.UTF-8
    keyboard us
    network --bootproto=dhcp --device=eth0 --onboot=yes
    rootpw --iscrypted $1$root$afc2RZysD6SOx07LLBnwB0  # 替换为加密后的root密码
    firewall --disabled
    selinux --disabled
    timezone Asia/Shanghai
    bootloader --location=mbr
    clearpart --all --initlabel
    part / --fstype=xfs --size=1 --grow
    part swap --size=2048
    %post
    echo "System installed successfully!" > /etc/motd
    %end
    EOL
    
  • 加密root密码:使用openssl passwd -1生成加密密码,替换上述文件中的$1$root$afc2RZysD6SOx07LLBnwB0

5. 配置DHCP服务(可选:由Cobbler管理)

若Cobbler负责管理DHCP,需编辑/etc/cobbler/dhcp.template文件,设置网段、网关、DNS及PXE启动参数:

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 $next_server;  # 指向Cobbler服务器IP
}

修改完成后,同步Cobbler配置以应用DHCP设置:

cobbler sync

6. 创建系统配置并关联Kickstart

通过cobbler system add命令创建具体的系统配置,关联导入的镜像与Kickstart文件:

cobbler system add \
  --name=myhost \          # 系统名称(自定义)
  --profile=centos7 \      # 关联的profile名称(与导入镜像名称一致)
  --mac=XX:XX:XX:XX:XX:XX \ # 客户端网卡MAC地址(必填,用于PXE识别)
  --ip-address=192.168.1.100 \ # 静态IP(可选,若用DHCP则无需设置)
  --subnet=255.255.255.0 \ # 子网掩码(可选)
  --gateway=192.168.1.1 \  # 网关(可选)
  --hostname=myhost.example.com \ # 主机名(可选)
  --kickstart=/var/lib/cobbler/kickstarts/centos7.ks  # 关联的Kickstart文件路径

设置完成后,启用系统的PXE启动并发布配置:

cobbler system edit --name=myhost --netboot-enabled=true
cobbler system bootentry publish --name=myhost

7. 同步配置并启动服务

所有配置完成后,执行cobbler sync命令将配置同步至数据目录(如/var/www/cobbler/var/lib/tftpboot),确保DHCP、TFTP服务获取最新配置:

cobbler sync

启动并设置Cobbler及相关服务开机自启:

systemctl enable cobblerd httpd dhcp xinetd
systemctl start cobblerd httpd dhcp xinetd

8. 客户端自动安装

将客户端计算机设置为PXE启动优先(进入BIOS/UEFI调整启动顺序),启动后客户端将自动:

  1. 从Cobbler服务器获取IP地址(通过DHCP);
  2. 下载PXE引导文件(pxelinux.0)并启动;
  3. 根据配置加载Kickstart文件(ks.cfg);
  4. 按照Kickstart文件的指令自动完成系统安装(无需人工干预)。

通过以上步骤,Cobbler可实现Linux系统的批量、无人值守自动化安装,显著提升部署效率,适用于数据中心、测试环境等需要频繁部署的场景。

0