温馨提示×

Cobbler如何简化CentOS系统安装

小樊
45
2025-11-08 00:18:11
栏目: 智能运维

Cobbler简化CentOS系统安装的核心原理
Cobbler通过整合PXE网络启动、Kickstart自动化脚本、DHCP/TFTP/HTTP服务,将传统手动安装的繁琐步骤(如刻录镜像、配置启动项、逐台输入参数)转化为自动化流程。其本质是将操作系统镜像、安装配置(如分区、软件包选择)预先存储在服务器端,客户端通过PXE启动时自动获取这些资源并完成安装,无需人工干预。

1. 环境准备:关闭安全机制并安装依赖
为避免防火墙、SELinux阻碍服务通信,需提前关闭或禁用:

systemctl stop firewalld && systemctl disable firewalld  # 关闭防火墙
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  # 禁用SELinux

安装Cobbler及关联服务(DHCP用于动态分配IP、TFTP用于传输启动文件、HTTP用于托管镜像、pykickstart用于管理Kickstart脚本):

yum -y install epel-release  # 添加EPEL源(包含Cobbler等软件包)
yum -y install cobbler cobbler-web dhcp tftp-server httpd xinetd pykickstart  # 安装核心组件

2. 配置Cobbler基础参数:建立服务关联
编辑Cobbler主配置文件/etc/cobbler/settings,设置服务器自身IP(server字段)和TFTP服务器IP(next_server字段),确保客户端能访问到启动文件:

cobbler setting edit --name=server --value=192.168.1.100  # 替换为服务器实际IP
cobbler setting edit --name=next_server --value=192.168.1.100  # 通常与server一致

开启Cobbler的DHCP管理功能(若使用Cobbler内置DHCP,需设置manage_dhcp=1),避免单独配置DHCP服务器的麻烦:

cobbler setting edit --name=manage_dhcp --value=1

同步配置使修改生效:

cobbler sync

3. 导入CentOS镜像:构建安装源
将CentOS ISO镜像上传至服务器(如/opt目录),使用Cobbler的import命令将其转换为可部署的安装源:

cobbler import --path=/opt/CentOS-7-x86_64-DVD-2009.iso --name=centos7 --arch=x86_64

此命令会自动:

  • 将ISO挂载并复制到Cobbler的镜像目录(/var/www/cobbler/ks_mirror/centos7);
  • 生成对应的Kickstart模板(/var/lib/cobbler/kickstarts/centos7.ks);
  • 创建TFTP所需的启动文件(如pxelinux.0vmlinuzinitrd.img)。

4. 配置Kickstart文件:定义自动化安装规则
Kickstart文件是自动化安装的核心,需包含分区方案、软件包选择、密码设置、网络配置等内容。可通过修改导入的模板(如/var/lib/cobbler/kickstarts/centos7.ks)定制:

cat > /var/lib/cobbler/kickstarts/centos7.ks << 'EOL'
# 安装源设置(指向Cobbler镜像目录)
installurl --url="http://192.168.1.100/cobbler/ks_mirror/centos7"

# 系统分区(清除所有分区并创建根分区、交换分区)
clearpart --all --initlabel
part / --fstype ext4 --size 10240  # 根分区10GB
part swap --size 2048             # 交换分区2GB

# 软件包选择(安装基础系统)
%packages
@base
@core
vim
wget
%end

# 密码设置(加密形式,可通过`openssl passwd -1`生成)
rootpw --iscrypted $1$random_salt$hashed_password

# 禁用防火墙(简化部署,生产环境需开启)
firewall --disabled

# 禁用SELinux(简化部署,生产环境需开启)
selinux --disabled
EOL

保存后,需将密码替换为实际加密值(可通过openssl passwd -1生成)。

5. 启用PXE启动:关联系统与启动文件
创建Cobbler系统配置,将镜像与Kickstart文件绑定,并启用网络启动:

cobbler system add --name=my_centos7 --profile=centos7 --netboot-enabled=true

其中:

  • --name:自定义系统名称(用于识别);
  • --profile:关联之前导入的镜像名称(centos7);
  • --netboot-enabled=true:允许客户端通过网络启动。

同步配置使修改生效:

cobbler sync

6. 客户端部署:一键自动化安装
客户端需满足:

  • 支持PXE网络启动(进入BIOS/UEFI设置,将“PXE启动”设为第一优先级);
  • 连接至与Cobbler服务器同一网络的网段。

客户端重启后,自动从Cobbler服务器获取启动文件,加载Kickstart脚本,按照预设规则完成CentOS系统安装(全程无需人工输入)。

注意事项

  • 若网络中存在其他DHCP服务器,需确保Cobbler的DHCP配置(subnetrangenext-server)不冲突;
  • 生产环境中,建议开启防火墙(开放TFTP端口69、HTTP端口80)和SELinux(设为permissive模式),并通过加密方式保护Kickstart文件中的密码;
  • 可通过Cobbler Web界面(http://服务器IP/cobbler_web)管理镜像、系统和部署状态,提升可视化程度。

0