CentOS7.9‑Kickstart 无人值守安装结构化实战教程

发布时间:2026/7/23 23:36:37
CentOS7.9‑Kickstart 无人值守安装结构化实战教程 教程前言Kickstart 是红帽系自动化部署工具通过 ks.cfg 应答文件预先填写系统安装过程所有选项批量自动化安装 CentOS 系统省去手动点击界面适合服务器批量装机企业机房批量部署必备技术。本次环境CentOS‑7.9搭建HTTPTFTPDHCPKickstart完整无人值守装机架构全程命令可直接复制执行。整体架构服务器部署 DHCP分配 IP TFTP传输引导文件 HTTP存放系统镜像与 ks 应答文件 Kickstart 配置文件。客户端PXE 网卡启动自动获取 IP下载引导文件读取 ks.cfg 文件全自动安装系统无需人工干预。环境规划角色IP 地址系统软件包主机名PXE 服务端[192.168.30.10](192.168.30.10)CentOS7.9dhcp、tftp‑server、httpd、syslinux、system‑config‑kickstartpxe‑server装机客户端PXE 自动获取 IPCentOS7.9无客户端主机前置硬性条件关闭防火墙、关闭 selinux服务器与客户端同网段。一、环境初始化服务端执行1.1 关闭防火墙与安全机制bashsystemctl stop firewalldsystemctl disable firewalldsetenforce 0sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config1.2 安装全部依赖软件包bashyum install -y dhcp tftp-server httpd syslinux system-config-kickstart1.3 设置服务开机自启bashsystemctl enable dhcpd httpd tftp.socket二、分步部署各服务结构化实战2.1 DHCP 服务配置分配 IP下发 PXE 引导文件名称复制模板文件bashcp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf修改 dhcp 配置文件vim /etc/dhcp/dhcpd.conf清空原有内容写入下面配置confsubnet 192.168.30.0 netmask 255.255.255.0 {range 192.168.30.100 192.168.30.200;option subnet-mask 255.255.255.0;option routers 192.168.30.10;option domain-name-servers 223.5.5.5;next-server 192.168.30.10; # 指定tftp服务器IPfilename pxelinux.0; # 指定引导文件default-lease-time 600;max-lease-time 7200;}启动 dhcp 服务bashsystemctl start dhcpd2.2 TFTP 服务配置传输 PXE 引导文件TFTP 默认根目录/var/lib/tftpboot/开启 tftp 服务配置修改文件vim /etc/xinetd.d/tftp将 disable 参数改为 noconfdisable noserver_args -s /var/lib/tftpboot拷贝引导文件 syslinux 提供的 pxelinux.0 文件到 tftp 目录bashcp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/复制内核文件 vmlinuz 与初始化镜像 initrd.img从 CentOS‑7.9 镜像内提取bash# 先挂载系统镜像mount /dev/cdrom /mntcp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/创建 pxelinux.cfg 文件夹编写启动菜单文件 defaultbashmkdir -p /var/lib/tftpboot/pxelinux.cfgvim /var/lib/tftpboot/pxelinux.cfg/default菜单文件内容confdefault installprompt 0label installkernel vmlinuzappend initrdinitrd.img kshttp://192.168.30.10/ks.cfgkshttp://192.168.30.10/ks.cfg客户端安装时下载 kickstart 应答文件。重启 tftp 服务bashsystemctl restart tftp.socket2.3 HTTP 服务配置共享系统安装源 ks.cfg 应答文件创建网页根目录存放系统文件挂载镜像到 http 站点目录bashmkdir -p /var/www/html/centos7mount /mnt /var/www/html/centos7启动 http 服务测试访问http://192.168.30.10/centos7bashsystemctl start httpd三、核心Kickstart 应答文件 ks.cfg 制作两种方式实战方式 1图形界面生成零基础推荐system‑config‑kickstart终端输入命令调出图形配置窗口bashsystem-config-kickstart依次填写参数1基础设置语言中文、时区 Asia/Shanghai设置 root 密码取消安装后重启2安装方式选择 HTTP 安装URL 填写http://192.168.30.10/centos73引导装载程序安装 GRUB 引导4分区方案自定义分区/boot 500Mswap 2G/ 剩余全部空间5网络配置开启网卡DHCP 获取地址6防火墙与 SELinux全部关闭7软件包选择勾选最小化安装8后期脚本可以写入 yum 源更换命令。文件导出保存为 ks.cfg复制到网站目录bashcp ~/ks.cfg /var/www/html/方式 2手动编写 ks.cfg 文件生产常用直接复制使用新建文件vim /var/www/html/ks.cfg完整模板cfg#platformx86_64#versionDEVELinstall#安装方式httpurl --urlhttp://192.168.30.10/centos7lang zh_CN.UTF-8keyboard ustimezone Asia/Shanghai --isUtcrootpw --plaintext 123456firewall --disabledselinux --disabledbootloader --locationmbr --driveordersda --appendcrashkernelauto#磁盘分区clearpart --all --initlabelpart /boot --fstypexfs --size500part swap --size2048part / --fstypexfs --grow#网络配置network --bootprotodhcp --deviceeth0 --onbooton#安装包组%packagesminimal-developmentnet-toolsvim-enhanced%end#安装后执行脚本%postsystemctl disable firewalldsed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config%endreboot赋予文件读取权限bashchmod 644 /var/www/html/ks.cfg四、整套服务校验必做检查项bash#检查全部服务状态systemctl status dhcpd httpd tftp.socket#测试ks.cfg文件网页访问curl http://192.168.30.10/ks.cfg#检查tftp文件是否完整ls /var/lib/tftpboot/全部服务 running文件可以正常访问即部署完成。五、客户端 PXE 无人装机实战测试流程新建虚拟机启动模式改为网卡 PXE 优先启动客户端自动获取 DHCP 分配 IP下载 vmlinuz 内核和 initrd 镜像文件读取 ks.cfg 文件自动分区、安装软件包、执行后置脚本全程无任何手动操作系统自动部署完毕重启成功标准客户端自动完成 CentOS7‑9 系统安装不需要人工操作。六、常见报错排查清单客户端获取不到 IPdhcp 配置网段错误dhcp 服务未启动。无法下载引导文件tftp 目录文件缺失selinux 未关闭。找不到 ks 文件http 服务未开启ks.cfg 路径 IP 写错。分区失败磁盘没有清空clearpart 参数未开启。七、Kickstart 核心功能总结结构化要点应答自动化预先定义安装全部参数跳过图形界面交互磁盘分区自动化自动清空磁盘按照脚本规划分区格式网络批量部署配合 PXE‑DHCP‑TFTP‑HTTP机房几十上百台服务器批量装机软件包定制脚本选定安装组件统一软件环境后置脚本 % post系统安装完成之后自动执行脚本配置 yum 源、关闭安全策略、批量部署初始化环境版本统一管控所有服务器系统版本、分区方案、基础配置完全一致降低运维差异故障。