教程前言
Kickstart 是红帽系自动化部署工具,通过 ks.cfg 应答文件,预先填写系统安装过程所有选项,批量自动化安装 CentOS 系统;省去手动点击界面,适合服务器批量装机,企业机房批量部署必备技术。
本次环境:CentOS‑7.9,搭建HTTP+TFTP+DHCP+Kickstart完整无人值守装机架构,全程命令可直接复制执行。
整体架构
- 服务器:部署 DHCP(分配 IP)+ TFTP(传输引导文件)+ HTTP(存放系统镜像与 ks 应答文件)+ Kickstart 配置文件。
- 客户端:PXE 网卡启动,自动获取 IP,下载引导文件,读取 ks.cfg 文件全自动安装系统,无需人工干预。
环境规划
角色 | IP 地址 | 系统 | 软件包 | 主机名 |
PXE 服务端 | [192.168.30.10](192.168.30.10) | CentOS7.9 | dhcp、tftp‑server、httpd、syslinux、system‑config‑kickstart | pxe‑server |
装机客户端 | PXE 自动获取 IP | CentOS7.9 | 无 | 客户端主机 |
前置硬性条件:关闭防火墙、关闭 selinux,服务器与客户端同网段。 |
一、环境初始化(服务端执行)
1.1 关闭防火墙与安全机制
bash |
1.2 安装全部依赖软件包
bash |
1.3 设置服务开机自启
bash |
二、分步部署各服务(结构化实战)
2.1 DHCP 服务配置(分配 IP,下发 PXE 引导文件名称)
- 复制模板文件
bash |
- 修改 dhcp 配置文件vim /etc/dhcp/dhcpd.conf,清空原有内容,写入下面配置
conf |
- 启动 dhcp 服务
bash |
2.2 TFTP 服务配置(传输 PXE 引导文件)
TFTP 默认根目录:/var/lib/tftpboot/
- 开启 tftp 服务配置,修改文件vim /etc/xinetd.d/tftp,将 disable 参数改为 no
conf |
- 拷贝引导文件 syslinux 提供的 pxelinux.0 文件到 tftp 目录
bash |
- 复制内核文件 vmlinuz 与初始化镜像 initrd.img(从 CentOS‑7.9 镜像内提取)
bash |
- 创建 pxelinux.cfg 文件夹,编写启动菜单文件 default
bash |
菜单文件内容:
conf |
ks=http://192.168.30.10/ks.cfg:客户端安装时下载 kickstart 应答文件。 |
- 重启 tftp 服务
bash |
2.3 HTTP 服务配置(共享系统安装源 + ks.cfg 应答文件)
- 创建网页根目录存放系统文件,挂载镜像到 http 站点目录
bash |
- 启动 http 服务,测试访问http://192.168.30.10/centos7
bash |
三、核心:Kickstart 应答文件 ks.cfg 制作(两种方式实战)
方式 1:图形界面生成(零基础推荐,system‑config‑kickstart)
- 终端输入命令调出图形配置窗口
bash |
依次填写参数:
1)基础设置:语言中文、时区 Asia/Shanghai,设置 root 密码,取消安装后重启;
2)安装方式:选择 HTTP 安装,URL 填写:http://192.168.30.10/centos7;
3)引导装载程序:安装 GRUB 引导;
4)分区方案:自定义分区(/boot 500M,swap 2G,/ 剩余全部空间);
5)网络配置:开启网卡,DHCP 获取地址;
6)防火墙与 SELinux:全部关闭;
7)软件包选择:勾选最小化安装;
8)后期脚本:可以写入 yum 源更换命令。
文件导出保存为 ks.cfg,复制到网站目录:
bash |
方式 2:手动编写 ks.cfg 文件(生产常用,直接复制使用)
新建文件vim /var/www/html/ks.cfg,完整模板:
cfg |
赋予文件读取权限:
bash |
四、整套服务校验(必做检查项)
bash |
全部服务 running,文件可以正常访问即部署完成。
五、客户端 PXE 无人装机实战测试流程
- 新建虚拟机,启动模式改为网卡 PXE 优先启动;
- 客户端自动获取 DHCP 分配 IP;
- 下载 vmlinuz 内核和 initrd 镜像文件;
- 读取 ks.cfg 文件,自动分区、安装软件包、执行后置脚本;
- 全程无任何手动操作,系统自动部署完毕重启;
成功标准:客户端自动完成 CentOS7‑9 系统安装,不需要人工操作。
六、常见报错排查清单
- 客户端获取不到 IP:dhcp 配置网段错误,dhcp 服务未启动。
- 无法下载引导文件:tftp 目录文件缺失,selinux 未关闭。
- 找不到 ks 文件:http 服务未开启,ks.cfg 路径 IP 写错。
- 分区失败:磁盘没有清空,clearpart 参数未开启。
七、Kickstart 核心功能总结(结构化要点)
- 应答自动化:预先定义安装全部参数,跳过图形界面交互;
- 磁盘分区自动化:自动清空磁盘,按照脚本规划分区格式;
- 网络批量部署:配合 PXE‑DHCP‑TFTP‑HTTP,机房几十上百台服务器批量装机;
- 软件包定制:脚本选定安装组件,统一软件环境;
- 后置脚本 % post:系统安装完成之后自动执行脚本,配置 yum 源、关闭安全策略、批量部署初始化环境;
- 版本统一管控:所有服务器系统版本、分区方案、基础配置完全一致,降低运维差异故障。